Application des métadonnées du code de location stratégique

Auteur:Je suis désolée., Créé à: 2022-04-13 09:35:06, mis à jour à: 2022-04-13 17:13:27

Application de la stratégie Les métadonnées du code de location

Les amis qui développent sur la plateforme de trading FMZ Quant peuvent souvent avoir de tels besoins:

Lorsque vous élaborez une stratégie de location, vous souhaitez avoir des limites de fonds différentes sur la stratégie et des limites de plate-forme différentes (limiter les plateformes exploitées par la stratégie), ou vous souhaitez limiter la configuration du compte de la plate-forme (spécifier que la stratégie ne peut fonctionner que sur des comptes pré-accordés; lorsque l'utilisateur de la stratégie utilise d'autres comptes, la stratégie est invitée et ne fera plus de transactions ni d'autres opérations).

Il est évident qu'ils ne peuvent pas être codés en dur, car s'ils sont codés en dur, tous les utilisateurs seront soumis à ces limitations, et ils ne peuvent pas contrôler différents privilèges d'utilisation pour différents groupes d'utilisateurs.

Sur la base des scénarios de demande ci-dessus, la plate-forme de négociation quantitative FMZ a étendu une nouvelle fonction:Paramètres de métadonnées du code du registre de location de stratégie.

Lorsque vous créez un code de registre, vous pouvez spécifier une métadonnéeMeta, qui est une chaîne. Remarque: La longueur de Meta ne peut pas dépasser 190 caractères lorsqu'il génère le code de registre.

  • Utiliser les métadonnées du code du registre FMZ pour limiter les stratégies

    Par exemple, je suis un exportateur de développement de stratégie, et j'ai développé une stratégie avec une paire de trading au comptant de BTC_USDT.QuoteCurrency, à savoir l'USDT; après avoir acheté, il détiendra une position auprès duBaseCurrencySi je veux louer cette stratégie, le nom de la stratégie esttest1.

    Comme vous pouvez le voir, les limitations de la stratégie doivent être spécifiquement conçues en combinaison avec la situation spécifique de la stratégie. Cet exemple est une démonstration d'une stratégie au comptant, mais que se passe-t-il si la stratégie est une stratégie à terme? Ensuite, il est nécessaire de limiter les informations de position à terme (selon les données de position renvoyées par GetPosition). Lorsque la stratégie constate que la position dépasse la limite, la logique de placement d'un ordre et d'ouverture d'une position ne sera plus exécutée (d'autres logiques doivent être exécutées normalement, telles que la fermeture d'une position et d'autres opérations).

    Par conséquent, la conception de ces limitations doit être combinée avec la stratégie elle-même; l'exemple n'est qu'une simple instruction, sans la valeur d'utilisation réelle.

    Stratégie Code source:

    function main() {
        // The maximum asset value of the quote currency allowed by the strategy
        var maxBaseCurrency = null
        
        // Obtain the metadata when the register code is created 
        var level = GetMeta()
        
        // Detect the corresponding conditions of Meta
        if (level == "level1") {
            // -1 means no limit 
            maxBaseCurrency = -1       
        } else if (level == "level2") {
            maxBaseCurrency = 10     
        } else if (level == "level3") {
            maxBaseCurrency = 1
        } else {
            maxBaseCurrency = 0.5
        }
        
        while(1) {
            Sleep(1000)
            var ticker = exchange.GetTicker()
            
            // Detect the assets amount 
            var acc = exchange.GetAccount()
            if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) {
                // Stop executing the strategy trading logic
                LogStatus(_D(), "If the position exceeds the usage limits of  register code, the strategy trading logic will no longer be executed!")
                continue
            }
            
            // Other trading logic
            
            // Normally export the information of status bar 
            LogStatus(_D(), "The strategy is operating normally!ticker data:\n", ticker)
        }
    }
    

    Lorsque vous créez le code de registre, trouvez le test de stratégie1 dans la page Strategy et cliquez sur la touche droiteLes actionsle bouton, puis cliquezLocation.

img

CliquezVente interne.

img

Cliquez sur la petite icône wrench, et définissez la métadonnée du code d'enregistrement.

img

Ensuite, vous devez écrire les informations de limitation dans leMétacontrôle, comme plusieurs niveaux d'utilisation de la stratégie conçue dans cet exemple:

  • niveau 1: aucune limite pour le montant de la position;
  • niveau2: limite pour le montant maximal de la position à 10 pièces;
  • niveau3: limite pour le montant maximal de la position à 1 pièce;
  • Meta non défini: lorsqu'il n'est pas défini, la limite par défaut pour le montant maximal de la position est de 0,5 pièce.

img

Tout d'abord, nous avons mislevel1dans le contrôle Meta, et laisser le code de registre créé avoir lelevel1de l'essai1. Après la création du code de registre, le vendeur de stratégie envoie le code de registre à l'acheteur de stratégie.

Par exemple, si j'utilise le code de registre sur un autre compte (comme le compte de l'acheteur) que j'ai, j'aurai le droit d'utiliser le test de stratégie1.

img

  • Comment l'acheteur de la stratégie utilise la stratégie

    En tant qu'acheteur de stratégie, vous devez d'abord ajouter un bot, choisir test1 comme stratégie, et ajouter un objet d'échange au comptant WexApp (WexApp est le bot simulé de FMZ), puis exécuter le bot.

img

Quand vous voyez la stratégie bien exécutée, cela signifielevel1n'a pas de limite pour le montant de la position (le montant de la pièce détenue sur le compte au comptant).

  • Modifier les métadonnées

    Lorsque le code du registre de stratégie est utilisé, si le développeur de stratégie a besoin d'ajuster les métadonnées du code du registre à envoyer, il peut les modifier totalement.

    Dans la page Strategy, c'est dans les dossiers de vente.

    img

    Les métadonnées peuvent être modifiées.

    img

    Nous avons modifié les métadonnées de l'ancien code de registre enlevel3, et l'utilisateur de la stratégie doit redémarrer le bot pour tester.level3limiter le montant maximal de la position à une pièce.

  • Conclusion

    Lorsque vous louez une stratégie, selon différents groupes d'utilisateurs et niveaux de paiement, vous pouvez spécifiquement configurer les métadonnées, pour contrôler la stratégie par niveaux.

    Bien sûr, les exemples mentionnés ci-dessus ne sont que les limitations et les exigences de contrôle les plus courantes.


Plus de