Comment attribuer des données de version différentes à une stratégie louée via les métadonnées du code de location de stratégie

Auteur:Je ne sais pas., Créé à: 2022-11-09 10:34:37, Mis à jour à: 2023-09-20 10:59:17

img

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

Les partenaires qui travaillent en tant que développeurs sur la plateforme de négociation quantitative FMZ peuvent souvent avoir de tels besoins:

Lors de l'élaboration d'une stratégie à louer, vous voudrez peut-être avoir des restrictions de capital différentes pour la stratégie, et des restrictions de change différentes pour le bail de stratégie (l'échange qui limite l'opération de la stratégie), ou des restrictions sur la configuration du compte de change lorsque vous souhaitez louer la stratégie (spécifiez que cette stratégie ne peut fonctionner que sur le compte convenu à l'avance et que l'utilisateur de la stratégie ne fera aucune transaction lorsqu'il utilise d'autres comptes).

Il est évident qu'elles ne peuvent pas être écrites dans le code, car si elles le sont, tous les utilisateurs seraient soumis à ces conditions et il ne serait pas possible de faire des contrôles pour différents groupes d'utilisateurs avec des droits d'utilisation différents.

Sur la base du scénario de demande ci-dessus, la plateforme de négociation quantitative FMZ est étendue avec une nouvelle fonction: paramètres de métadonnées de code d'enregistrement de location de stratégie

Lorsque vous créez un code d'enregistrement, vous pouvez spécifier une métadonnéeMetaAttention: la longueur du méta ne peut dépasser 190 caractères lors de la génération du code d'enregistrement.

· Limiter la stratégie en utilisant les métadonnées du code d'enregistrement FMZ

Par exemple, si je suis une stratégie développer hotshot et j'ai développé une paire de trading au comptant pour BTC_USDT, et il va long seulement (il ya seulement la devise de prixQuoteCurrencyau départ, c'est-à-dire USDT; après l'achat, il y a la monnaie de tradingBaseCurrencyJe veux louer cette stratégie, qui s'appelletest1.

On peut voir que la conception limitée de la stratégie doit être conçue en fonction de la situation spécifique de la stratégie. L'exemple est une démonstration de la stratégie au comptant. Et si la stratégie est une stratégie à terme? Il est alors 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, elle n'exécutera pas la logique d'ouverture de la position (d'autres logiques doivent être exécutées normalement, telles que la fermeture de la position).

Par conséquent, ces conceptions doivent être spécifiques à la stratégie elle-même.

Le code source de la stratégie:

function main() {
    // The maximum asset value of the denominated currency allowed by the strategy
    var maxBaseCurrency = null
    
    //Obtain the metadata when creating the registration code
    var level = GetMeta()
    
    // Detecting the conditions corresponding to Meta
    if (level == "level1") {
        // -1 is not limited
        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 asset values
        var acc = exchange.GetAccount()
        if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) {
            // Stop executing strategic trading logic
            LogStatus(_D(), "Positions exceeding the usage limit of the registration code will no longer execute the strategy trading logic!")
            continue
        }
        
        // Other trading logic
        
        // Output the status bar information normally
        LogStatus(_D(), "The strategy is running properly! ticker data:\n", ticker)
    }
}

Lorsque vous créez un code d'enregistrement, recherchez le test de stratégie1 dans la bibliothèque de stratégies, cliquez sur l'élément d'action à droite, cliquez sur Rent,

img

et cliquez ensuite sur Vente interne.

img

Cliquez sur Little Wrench pour définir les métadonnées du code d'enregistrement.

img

Ensuite, écrivez les informations à qualifier dans le contrôle Meta, comme plusieurs niveaux d'utilisation de stratégie conçus dans cet exemple:

· niveau 1: il n'y a pas de limite au nombre de postes. · niveau 2: Limiter le nombre maximal de positions à 10 pièces. · niveau 3: Limiter le nombre maximal de positions à 1 pièce. · Aucun paramètre Meta: lorsqu'il n'y a pas de paramètre Meta, la limite de position maximale par défaut est de 0,5 pièces.

img

Tout d'abord, nous avons mislevel1pour le contrôle Meta, de sorte que le code d'enregistrement créé a lelevel1niveau de la stratégie de test1. Code d' enregistrement créé:

Purchase address: https://www.fmz.com/m/s/282900
Registration code: 7af0c24404b268812c97b55d073c1867

Le bailleur de stratégie envoie le code d'enregistrement au locataire de stratégie.

· La stratégie d'utilisation pour les locataires stratégiques

Le locataire de stratégie crée un vrai bot, utilise le test de stratégie1, ajoute un objet WexApp Spot Exchange (WexApp est une démo de la plateforme FMZ), exécute-le.

· Modifier les métadonnées

Lorsque le code d'enregistrement de la stratégie a été utilisé, il peut également être modifié si le développeur de la stratégie doit ajuster les métadonnées du code d'enregistrement émis.

Les métadonnées peuvent être modifiées dans la bibliothèque de stratégie, enregistrement de vente.

Nous avons changé les métadonnées du code d'enregistrement précédent enlevel3,

img

l'utilisateur de la stratégie a ensuite redémarré le test.

· Résumé

Lorsque les stratégies de location sont basées sur différents groupes d'utilisateurs et différents niveaux de paiement, les métadonnées sont configurées spécifiquement pour obtenir un contrôle hiérarchique de la stratégie.

Bien sûr, ce qui précède ne répertorie que les exigences de limitation et de contrôle les plus courantes.


Plus de