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.
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 duBaseCurrency
Si 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
CliquezVente interne.
Cliquez sur la petite icône
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:
Tout d'abord, nous avons mislevel1
dans le contrôle Meta, et laisser le code de registre créé avoir lelevel1
de 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.
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.
Quand vous voyez la stratégie bien exécutée, cela signifielevel1
n'a pas de limite pour le montant de la position (le montant de la pièce détenue sur le compte au comptant).
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
Les métadonnées peuvent être modifiées.
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.level3
limiter le montant maximal de la position à une pièce.
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.