avatar of 发明者量化-小小梦 发明者量化-小小梦
Suivre Messages privés
4
Suivre
1271
Abonnés

Comment spécifier différentes données de version pour la politique de location via les métadonnées du code de location de la politique

Créé le: 2021-05-20 09:53:15, Mis à jour le: 2024-12-04 21:24:10
comments   0
hits   1470

Comment spécifier différentes données de version pour la politique de location via les métadonnées du code de location de la politique

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

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

Lors de l’élaboration d’une stratégie de location, vous souhaitez définir différentes restrictions de fonds pour la stratégie, définir différentes restrictions d’échange pour la location de stratégie (limiter l’échange de l’opération de stratégie) ou vous souhaitez définir des restrictions sur la configuration du compte d’échange pour la location de stratégie (précisez Cette stratégie ne peut être utilisée qu’avec des comptes qui ont été convenus à l’avance. Lorsque l’utilisateur de la stratégie utilise d’autres comptes, la stratégie invite et n’effectue plus de transactions, etc.).

Ceux-ci ne peuvent évidemment pas être codés en dur dans le code, car s’ils sont codés en dur dans le code. Tous les utilisateurs seront soumis à ces restrictions et il ne sera pas possible de contrôler différentes autorisations d’utilisation pour différents groupes d’utilisateurs.

Sur la base des scénarios de demande ci-dessus, la plateforme de trading quantitative Inventor a étendu de nouvelles fonctions :Paramètres des métadonnées du code d’enregistrement de la police de location

Lors de la création d’un code d’enregistrement, vous pouvez spécifier une métadonnéeMeta, les données sont une chaîne. Remarque : lors de la génération d’un code d’enregistrement, la longueur du méta ne peut pas dépasser 190 caractères.

  • ### Utiliser les métadonnées du registre FMZ pour définir les politiques

Par exemple, je suis un développeur de stratégie. J’ai développé une stratégie pour la paire de trading spot BTC_USDT. La stratégie est longue uniquement (initialement uniquement la devise de cotationQuoteCurrencyAutrement dit, l’USDT. Une fois que vous l’aurez acheté, vous disposerez d’une monnaie d’échange.BaseCurrencyJe souhaite louer cette stratégie, le nom de la stratégie esttest1

On peut constater que la conception des limites de la stratégie doit être spécifiquement conçue en combinaison avec les circonstances spécifiques de la stratégie. Cet exemple est une démonstration d’une stratégie spot. Et si la stratégie était une stratégie à terme ? Il est alors nécessaire de limiter les informations de position à terme (en fonction des données de position renvoyées par GetPosition). Lorsque la stratégie constate que la position dépasse la limite, la logique d’ouverture d’ordre ne sera plus exécutée (d’autres logiques doivent être exécutées normalement, comme la fermeture des positions).

Ces conceptions doivent donc être spécifiques en combinaison avec la stratégie elle-même. Cet exemple n’est qu’un simple exemple illustratif et peut ne pas avoir de valeur pratique.

Code source de la stratégie :

  function main() {
      // 策略允许的计价币最大资产数值
      var maxBaseCurrency = null

      // 获取创建注册码时的元数据
      var level = GetMeta()

      // 检测Meta对应的条件
      if (level == "level1") {
          // -1为不限制
          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()

          // 检测资产数值
          var acc = exchange.GetAccount()
          if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) {
              // 停止执行策略交易逻辑
              LogStatus(_D(), "持仓超过注册码的使用限定,不再执行策略交易逻辑!")
              continue
          }

          // 其它交易逻辑

          // 正常输出状态栏信息
          LogStatus(_D(), "策略正常运行!ticker数据:\n", ticker)
      }
  }

Lors de la création d’un code d’enregistrement, recherchez la politique test1 dans la bibliothèque de politiques et cliquez surÉlément d’action, cliquezvendre

Comment spécifier différentes données de version pour la politique de location via les métadonnées du code de location de la politique

CliquezVente interne

Comment spécifier différentes données de version pour la politique de location via les métadonnées du code de location de la politique

Cliquez sur la « petite clé » pour définir les métadonnées du code d’enregistrement.

Comment spécifier différentes données de version pour la politique de location via les métadonnées du code de location de la politique

Ensuite, écrivez les informations que vous souhaitez limiterMetaLes contrôles, tels que les différentes stratégies conçues dans cet exemple, utilisent des niveaux :

  • Niveau 1 : Aucune limite quant au nombre de postes occupés.
  • Niveau 2 : Le nombre maximum de pièces détenues est limité à 10 pièces.
  • Niveau 3 : Le nombre maximum de pièces détenues est limité à 1 pièce.
  • Ne pas définir Meta : lorsqu’elle n’est pas définie, la limite par défaut du nombre maximum de positions détenues est de 0,5 pièce.

Comment spécifier différentes données de version pour la politique de location via les métadonnées du code de location de la politique

Nous avons d’abord défini le contrôle Metalevel1, afin que le code d’enregistrement créé ait la stratégie test1level1grade. Le code d’enregistrement a été créé :

  购买地址: https://www.fmz.com/m/s/282900
  注册码: 7af0c24404b268812c97b55d073c1867

Le bailleur de stratégie envoie ce code d’enregistrement au locataire de stratégie.

Par exemple, à ce moment, j’utilise ce code d’enregistrement dans mon autre compte (locataire de stratégie) pour obtenir le droit d’utiliser la stratégie test1.

Comment spécifier différentes données de version pour la politique de location via les métadonnées du code de location de la politique

  • ### Les locataires de polices d’assurance utilisent des polices d’assurance

Locataire de stratégie, créez un compte réel, utilisez test1 comme stratégie, ajoutez un objet d’échange spot WexApp (WexApp est un compte simulé sur la plate-forme FMZ) et exécutez le compte réel.

Comment spécifier différentes données de version pour la politique de location via les métadonnées du code de location de la politique

Vous pouvez voir que la stratégie fonctionne normalement, ce qui indiquelevel1Le niveau ne limite pas le nombre de positions détenues (le nombre de pièces détenues sur le compte spot).

  • ### Modifier les métadonnées

Lorsque le code d’enregistrement de la politique a été utilisé, si le développeur de la politique doit ajuster les métadonnées du code d’enregistrement émis, celui-ci peut être modifié.

Dans la bibliothèque de stratégies, vendez des disques.

Comment spécifier différentes données de version pour la politique de location via les métadonnées du code de location de la politique

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

Comment spécifier différentes données de version pour la politique de location via les métadonnées du code de location de la politique

Nous modifions les métadonnées du code d’enregistrement précédent pourlevel3, puis l’utilisateur de stratégie redémarre ici le test en temps réel.

Comment spécifier différentes données de version pour la politique de location via les métadonnées du code de location de la politique

Comme vous pouvez le voir sur l’image ci-dessus,level3La limite de niveau maximale pour détenir est de 1 pièce.

  • ### Aperçu

Lors de la location de politiques en fonction de différents groupes d’utilisateurs et niveaux de paiement, des métadonnées Meta spécifiques sont configurées pour obtenir un contrôle hiérarchique des politiques.

Bien entendu, ce qui précède ne répertorie que les exigences de limitation et de contrôle les plus courantes. Il existe diverses exigences similaires qui peuvent être satisfaites à l’aide de cette fonction.