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

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Créé le: 2021-05-06 11:20:04, Mis à jour le: 2024-12-04 21:27:24
comments   1
hits   3182

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Message d’erreur

Dans les articles précédents, nous avons appris que le trading dit programmé et quantitatif est un programme de script qui effectue certaines opérations sur la base des données obtenues de la bourse après une série de calculs, de jugements et de déclencheurs pour faire fonctionner le compte de bourse pour le trading. Ces actions d’obtention de données et d’exploitation de comptes sont toutes réalisées via l’interface API d’échange. En termes simples, il s’agit de l’interaction entre le programme de script et l’échange. Puisqu’il s’agit d’une interaction, il doit y avoir une interaction normale et une interaction anormale. Lorsqu’une interaction anormale se produit, l’interface renvoie les informations d’exception.

Bien entendu, les systèmes de trading programmés et quantitatifs présents sur le marché, ou les programmes développés par nos soins, comporteront diverses invites et messages d’erreur. Ces messages d’erreur ne se limitent pas aux messages d’erreur signalés par l’interface API d’échange. Il existe également des éléments tels que : des erreurs d’exception d’exécution du programme, des erreurs de configuration, des erreurs de syntaxe du programme, etc.

Sur la plateforme de trading quantitative Inventor, les messages d’erreur peuvent être grossièrement divisés en plusieurs catégories :

  • Erreur de syntaxe de la politique Ce type d’erreur est le plus courant, généralement parce que les novices ne sont pas familiers avec la programmation et qu’il y a des erreurs de syntaxe dans le code écrit pendant la phase d’apprentissage et de test. Par exemple:

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Le code manque de caractères tels que des parenthèses. Ce type d’erreur est généralement visible sur la page d’édition de la politique et la politique ne peut pas être exécutée (une erreur sera signalée directement pendant l’exécution, comme indiqué dans la figure ci-dessous).

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3) Donc, après avoir écrit la stratégie, j’ai l’habitude de jeter un œil à la page d’édition de la stratégie de la plateforme pour voir s’il y a un petit XX rouge. Si c’est le cas, il doit y avoir une erreur évidente.

  • Exception du programme d’exécution causée par le programme de stratégie BUG Il y a un BUG dans le programme. Lorsque le programme est en cours d’exécution, le déclenchement d’une exception provoquera l’arrêt anormal du programme et l’affichage de ce type de message d’erreur.

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

De telles erreurs entraîneront l’échec du programme et son exécution cessera.

  • Erreurs causées par une configuration et des paramètres incorrects

Sur la plateforme FMZ, les paires de trading sont définies de manière uniforme commeX_YDans ce format, X représente le nom de la devise de négociation et Y représente le nom de la devise libellée (la devise libellée des paires de contrats à terme basés sur des devises est généralement exprimée en USD, ce qui a été introduit dans les articles précédents). Par exempleBTC_USDT, si j’écris la paire de trading au hasard,BTC-USDT

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Erreur signalée dans le système de backtesting de la plateforme FMZ :

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Signaler une erreur dans le trading réel :

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

De plus, une erreur courante que rencontrent les débutants :

https://www.fmz.com![Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)](/upload/asset//345be4d2aa663dd2c02cf5b97f95ce03fc0a7378.png)

Ce type d’erreur est provoqué par le changement du mot de passe du compte de la plateforme FMZ, ce qui entraîneAPI KEYNon valide (la CLÉ API de l’utilisateur est cryptée sur le navigateur puis configurée sur la plateforme FMZ), la stratégie ne peut pas être démarrée et une erreur est signalée.

  • Erreur d’appel d’interface

Des erreurs d’appel d’interface sont souvent rencontrées lors de l’exécution de stratégies. Dans les articles précédents, nous avons appris que les interfaces de la plateforme FMZ sont divisées enInterface de génération de requêtes réseauInterface qui ne génère pas de requêtes réseau. Les erreurs d’interface n’entraînent pas l’arrêt du programme de stratégie. Cela est généralement dû à une exception d’appel d’interface, qui renvoie des données incorrectes. La stratégie n’a alors pas de tolérance aux pannes et l’erreur d’exception du programme provoquée par les données incorrectes entraîne l’arrêt du programme. (le concept de tolérance aux pannes a été abordé dans des articles précédents). mentionné).

Voici quelques messages d’erreur d’interface qui génèrent des requêtes réseau :

  • Délai d’expiration du réseau

    Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

    L’un des messages d’erreur que les débutants rencontrent souvent est l’utilisation de périphériques réseau domestiques (leurs propres ordinateurs ou serveurs domestiques). Étant donné que la plupart des échanges sont bloqués, de nombreux échanges sont pratiquement inaccessibles depuis le réseau national et l’interface d’accès signalera un délai d’attente. (mentionné dans les articles précédents)

  • Erreur http 429

    https://www.fmz.com![Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)](/upload/asset//65057d99e2acdf9e237130ae7dc8082d333dc36b.png)

    L’un des messages d’erreur classiques. La raison est que l’interface d’échange est appelée trop fréquemment, dépassant la limite de fréquence de l’échange. (mentionné dans les articles précédents) Certains nouveaux étudiants pourraient dire : « Je vais postuler pour davantage d’échanges. »API KEYOu je peux simplement demander quelques comptes d’échange supplémentaires. Il faut savoir que les échanges limitent généralement la fréquence d’accès des interfaces en fonction des adresses IP. En termes simples, tant que toutes les requêtes envoyées depuis une adresse IP sont comptabilisées sur cette adresse IP, si la limite est dépassée et que cette IP envoie à nouveau une requête , le serveur Exchange refusera l’accès. .

  • Rapport d’erreurs au niveau de l’entreprise de l’interface d’échange

    Le délai d’attente et le 429 mentionnés ci-dessus sont des erreurs au niveau du réseau. Des erreurs seront également signalées si des problèmes surviennent au niveau de l’interface commerciale de la bourse. Par exemple, je souhaite obtenir des cotations au comptant, mais j’ai défini une paire de négociation qui n’existe pas. Je l’ai testé dans l’outil de débogage de la plateforme FMZ. L’outil de débogage est un outil de test très pratique, qui convient parfaitement aux tests en temps réel des appels de fonctions, de l’acquisition de données et d’autres besoins.

    Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

    Il n’y a aucune différence entre les résultats d’exécution de l’outil de débogage et l’exécution réelle. Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

    Huobi	错误	GetTicker: Invalid ticker: {"Info":{"err-code":"invalid-parameter","err-msg":"invalid symbol","status":"error","ts":1620872079355},"High":0,"Low":0,"Sell":0,"Buy":0,"Last":0,"Volume":0,"OpenInterest":0,"Time":0}
    

    Le message d’erreur ici signifie que la paire de transactions n’est pas valide (comme on peut le voir ici)"err-msg":"invalid symbol")。 Par exemple, il existe de nombreuses erreurs commerciales de ce type. Par exemple, lors de la définition de l’effet de levier, certaines bourses ne prennent pas en charge les valeurs d’effet de levier avec des parties décimales. À ce stade, si la valeur de l’effet de levier contient une partie décimale, cela entraînera également une erreur d’appel d’interface.

Répertorier un appel d’interface qui ne génère pas de demande réseau

  • Définir le code du contrat à terme Certaines interfaces ne définissent que certaines variables globales dans le système et ne génèrent pas de requêtes réseau, par exemple :

    Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

    Cependant, des erreurs se produiront si les paramètres sont transmis de manière incorrecte ou écrits de manière aléatoire.

    Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Cependant, quel que soit le type d’erreur, le message d’erreur affiché est l’information clé pour trouver le problème, et le problème peut généralement être identifié à partir du message d’erreur. Vous pouvez utiliser des outils de traduction pour traduire les messages d’erreur et extraire des informations clés. Par exemple, dans l’exemple ci-dessus"err-msg":"invalid symbol", traduction : “err msg” : “Symbole non valide”. Vous savez probablement que les paramètres des paires de trading sont erronés, car les symboles anglais sont généralement utilisés pour représenter les codes de trading et les paires de trading. Nous allons discuter brièvement des informations d’erreur. Il existe un article qui continuera à recueillir les questions courantes pour les requêtes : https://www.fmz.com/bbs-topic/1427

Système de backtesting

Le système de backtesting est également un élément clé d’un outil quantitatif. Le système de backtesting permet de tester facilement les prototypes de stratégie et de tester de manière préliminaire les bugs potentiels et les problèmes logiques de la stratégie. Nous devons être rationnels à propos du système de backtesting. Le système de backtesting peut refléter dans une certaine mesure certains problèmes de la stratégie.

Ci-dessous, nous expliquerons brièvement le système de backtesting sur la plateforme FMZ du point de vue des différents langages de stratégie pris en charge par FMZ. (Certaines introductions au système de backtesting ont été mentionnées dans des articles précédents)

  • JavaScript

Le backtest côté navigateur utilise les ressources matérielles locales.

  • Python

Lors du backtesting sur un dépositaire, vous pouvez choisir à quel dépositaire l’allouer (soit votre propre dépositaire, soit le dépositaire public de la plateforme FMZ). Compte tenu de la lourde charge qui pèse sur les dépositaires publics de la plateforme FMZ, il est recommandé d’utiliser le dépositaire local pour le backtesting (cela sera également plus rapide. Lors du backtesting avec le dépositaire public, lorsqu’il y a trop de tâches qui dépassent la charge, certains backtesting les tâches seront annulées, ce qui entraînera des retards dans les tests rétrospectifs). (interruption de la mesure).

  • C++

Contrairement aux langages de script, les politiques C++ doivent être compilées avant de pouvoir être exécutées. La stratégie du langage C++ sera d’abord compilée sur la plateforme FMZ (serveur) (en cas de problème avec le code, la compilation peut échouer et un message d’erreur apparaîtra). Après compilation, backtest sur la plateforme FMZ (serveur).

  • Langue Mai

L’implémentation sous-jacente est JavaScript, et le backtesting est également effectué côté navigateur.

  • Visualisation

L’implémentation sous-jacente est JavaScript, et le backtesting est également effectué côté navigateur.

Le système de backtesting de la plateforme de trading quantitative Inventor dispose de deux modes de backtesting (celui-ci ne fait pas de distinction entre les langages de stratégie, celui-ci correspond aux paramètres de backtesting, et le backtesting de stratégie dans différents langages est le même).

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Pour obtenir des instructions sur le système de backtesting, veuillez vous référer aux informations du didacticiel de la plateforme :

https://www.fmz.com/bbs-topic/4158#%E7%AD%96%E7%95%A5%E5%9B%9E%E6%B5%8B

  • 1. Backtesting au niveau de la simulation Pour faire simple, le backtesting au niveau de la simulation consiste à simuler et à générer des données de prix pour chaque nœud temporel en fonction des données de la ligne K.
  K线中一根柱子不是有高开低收么,构成了一个价格框架,在这个K线代表的时间范围内,价格都在这个价格框架内,所以只要生成的价格在这个K线高开低收框架范围内,这个模拟出来的价格就是合理的。

Tout comme la simulation de la figure : https://www.fmz.com![Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)](/upload/asset//35c54e14e29601352720d51f75e2d7674415f92e.png) Bien entendu, lorsque le système de backtesting réel implémente cette simulation, la situation est légèrement plus compliquée que celle illustrée dans la figure. Nous n’entrerons pas dans les détails ici. Il suffit de comprendre le mécanisme de backtesting au niveau de la simulation. Connaissant ce principe, nous devons prêter attention aux inconvénients du backtesting au niveau de la simulation, bien que le backtesting au niveau de la simulation soit très rapide (car les prix générés par la simulation ne sont pas les prix réels publiés un par un seconde par seconde). Mais si la stratégie convientTendance de changement de tick simuléeCela permettra à la stratégie de fonctionner très bien (mais dans des situations réelles, le prix peut ne pas évoluer de cette manière, bien que le prix soit dans le cadre de cette colonne K-line). La ligne K utilisée pour générer des données de ticks simulées est appelée ligne K sous-jacente et la période de cette ligne K est appeléeCycle K-line inférieur, définissez-le comme indiqué dans la page de configuration de la stratégie :

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3) Le réglage de 1 minute ici signifie que les données de la ligne K avec une période de 1 minute sont utilisées comme source de données pour générer des ticks simulés.

Un autre point est que pour les stratégies à haute fréquence, il n’est évidemment pas approprié d’utiliser des backtestings au niveau de la simulation. Toutefois, pour les stratégies de tendance, l’utilisation de backtesting au niveau de la simulation peut toujours refléter dans une certaine mesure la performance de la stratégie.

  • 2. Backtesting en temps réel Après avoir parlé du backtesting au niveau de la simulation, parlons du backtesting au niveau du temps réel. En termes simples, le backtesting en temps réel signifie publier des données de prix réelles seconde par seconde pendant le backtesting. Laissez la stratégie suivre le prix à chaque seconde sur le marché. Dans ce mode de backtesting, certaines stratégies avec une fréquence de trading élevée peuvent être backtestées et un certain degré de valeur de référence peut être obtenu. L’inconvénient est que la quantité de données de backtesting en temps réel est trop importante pour être backtestée sur une période plus longue (généralement inférieure à 1 jour). Vous pouvez fermerDonnées de tiques, réduire le niveau de données de profondeur (données de transaction, les données de profondeur du marché ont également des instantanés seconde par seconde dans le backtest en temps réel, donc la quantité de données de backtest en temps réel est énorme), pour augmenter de manière appropriée la plage de backtest, comme montré dans la figure:

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

D’où proviennent les données du système de backtesting de la plateforme de trading quantitative Inventor ? Le système de backtesting utilise par défaut les données du centre de données de la plateforme FMZ. Le centre de données de la plateforme FMZ collecte automatiquement les données de marché de chaque devise de chaque bourse et les fournit au système de backtesting de la plateforme.

    1. Utiliser les données du centre de données FMZ par défaut Mentionné dans les articles précédents : https://www.fmz.com/bbs-topic/6857#%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93% E5%B9% B3%E5%8F%B0 Les données de backtesting fournies par la plateforme ne prennent en charge que des paires de trading limitées (les données de backtesting pour l’ensemble du marché et toutes les devises sont un nombre astronomique, et il n’est pas réaliste de les collecter toutes. La plateforme collecte les données de marché des principales bourses et des principales devises) .
    1. Utiliser des données de source de données personnalisées Vous pouvez utiliser les options de la page de backtesting pour définir une source de données personnalisée. En termes simples, si vous disposez de données provenant d’un certain échange, vous pouvez les fournir au système de backtesting de la plateforme FMZ pour un backtesting conformément aux exigences de format du FMZ plate-forme.

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

La documentation de l’API FMZ contient également quelques instructions sur les sources de données personnalisées : https://www.fmz.com/api#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90

Il existe également quelques solutions dans la bibliothèque FMZ : Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Les débutants intéressés peuvent l’étudier et s’y référer.

Apprendre, tester, réfléchir

Le trading programmatique et quantitatif sont indissociablesétudetestpense。 On ne peut pas penser aux problèmes dans le vide, ce serait inefficace. La manière la plus efficace de résoudre et de réfléchir aux problèmes estTrouver des informations,AlorsEssayez-le vous-mêmeAnalyse de la penséeSi le problème n’est pas résolu, veuillez répéter les étapes ci-dessus.

Mais généralement, lorsqu’un débutant rencontre un problème, il ressent :

« Oh~ La programmation, la quantification et la rédaction de stratégies sont trop difficiles. » « Je l’observe depuis longtemps, mais je suis toujours confus ! » « Je n’ai pas encore commencé et j’ai envie d’abandonner ! » ….

Il est en fait très simple de démarrer sur la plateforme FMZ. Tout d’abord, vous devez être capable de trouver des informations. De nombreuses informations sont disponibles pour référence dans la plateforme de trading quantitatif Inventor Strategy Plaza, la communauté et la bibliothèque.

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Ensuite, il y a la capacité pratique. L’utilisation du système de backtesting et des outils de débogage peut faciliter les tests. Cela ne signifie pas qu’il faut tester une stratégie complète. En fait, si vous n’avez absolument aucune connaissance de base, vous pouvez même apprendre les bases de la programmation JavaScript sur le système de backtesting quantitatif FMZ.

Il s’agit du site Web de didacticiel où j’apprends souvent JS : https://www.runoob.com/js/js-loop-for.html Il ne se limite pas à JS, toutes sortes de connaissances informatiques peuvent être recherchées et apprises ici. Par exemple, je ne sais pas comment utiliser l’expression régulière de JS, que dois-je faire ? Bien sûr, vérifiez d’abord les informations, puis essayez-les~

J’ai vu un exemple comme celui-ci : Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3) Je veux le tester, et je peux même utiliser le système de backtesting de la plateforme FMZ pour tester et apprendre.

Mettre en place un échange aléatoire sur le système de backtest Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Testez le code suivant :

function IsEmail(str) {
    var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
    return reg.test(str);
}

function main() {
    var strEmailAddress1 = "13512345678"
    Log(strEmailAddress1, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress1))
    
    var strEmailAddress2 = "[email protected]"
    Log(strEmailAddress2, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress2))
}

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Regardez, quel formidable outil d’apprentissage ! Par exemple, je veux apprendre à écrire une logique de boucle en JavaScript, alors essayons :

Parcourez les éléments d’une variable de tableau dans l’ordre dans lequel ils apparaissent dans le tableau :

function main() {
    var arr = [{coinName: "BTC", price: 10000}, {coinName: "LTC", price: 100}, {coinName: "ETH", price: 2000}, {coinName: "ETC", price: 500}]
    for (var i = 0 ; i < arr.length ; i++) {
        Log(arr[i])
    }
}

Débutants dans le trading quantitatif dans les cercles de crypto-monnaie, veuillez jeter un œil à ceci - Vous rapprocher du trading quantitatif dans les cercles de crypto-monnaie (partie 3)

Vous sentez-vous motivé à étudier instantanément ? En fait, sur FMZ, vous pouvez regarder le didacticiel JavaScript tout en apprenant les bases de JavaScript sur le système de backtesting. La syntaxe JavaScript est presque maîtrisée. Pour passer à l’étape suivante, vous devez utiliser l’interface d’échange pour obtenir des données à tester. Vous pouvez également utiliser la plateforme FMZOutils de débogageEffectuer des tests d’interface réels.

Il faut alors réfléchir davantage, tirer des conclusions à partir d’un exemple, tester et vérifier, comparer et analyser, etc. De cette façon, vous pouvez démarrer très rapidement.