Les ressources ont été chargées... Je charge...

Commerce quantitatif de crypto-monnaie pour les débutants - vous rapprocher de la crypto-monnaie quantitative (3)

Auteur:FMZ~Lydia, Créé: 2022-07-29 09:37:22, Mis à jour: 2023-09-21 21:03:55

img

Commerce quantitatif de crypto-monnaie pour les débutants - vous rapprocher de la crypto-monnaie quantitative (3)

Message d'erreur

Dans les articles précédents, nous avons appris que le soi-disant trading programmatique et quantitatif est un programme de script basé sur les données obtenues de l'échange par le biais d'une série de calculs, de jugements et de déclencheurs pour effectuer certaines opérations et exploiter le compte d'échange pour le commerce. Ces actions d'acquisition de données et d'exploitation de comptes sont toutes effectuées via l'interface API de l'échange. En termes simples, le programme de script interagit avec 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 le message d'exception.

Bien sûr, il existe toutes sortes de messages d'erreur dans les systèmes de trading programmatiques et quantitatifs sur le marché, ou dans les programmes développés par nous-mêmes. Ces messages d'erreur ne se limitent pas aux messages d'erreur signalés par l'interface de l'API d'échange. Il existe également des erreurs d'exception d'exécution de programme, des erreurs de configuration, des erreurs de grammaire de programme, etc.

Les messages d'erreur sur la plateforme de négociation quantitative FMZ se répartissent également à peu près en plusieurs catégories:

  • Erreur de grammaire de stratégie Ce type d'erreur est le plus courant, car les débutants ne connaissent pas la programmation et il y a des erreurs grammaticales dans l'écriture du code pendant la phase d'apprentissage et de test.

    img

    Le code a manqué des caractères tels que des parenthèses. Ces erreurs peuvent généralement être vues sur la page d'édition de la stratégie, et la stratégie ne peut pas être exécutée (une erreur sera signalée directement à l'exécution, comme indiqué dans la figure ci-dessous).

    imgDonc, après avoir écrit la stratégie, jetez un coup d'œil habituel sur la page d'édition de la stratégie de la plateforme pour voir s'il y a un XX rouge, si oui, il doit y avoir une erreur évidente.

  • Exceptions du programme en cours d'exécution causées 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 tels messages d'erreur.

    img

    img

    De telles erreurs provoqueront une anomalie du programme et l'arrêt de son exécution.

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

    Sur la plateforme FMZ, la paire de négociation est uniformément définie sous la forme deX_Y, où X représente le nom de la monnaie de négociation et Y représente le nom de la monnaie libellée (la monnaie libellée de la paire de contrats à terme basée sur des devises est généralement exprimée en USD, comme décrit dans les articles précédents), par exemple:BTC_USDT, si j'écris la paire de négociation au hasard, écrire commeBTC-USDT.

    img

    Une erreur est signalée sur le système de backtesting de la plateforme FMZ:

    img

    En outre, une erreur que les débutants rencontrent souvent:

    img

    Ce type d'erreur est dû à la modification du mot de passe sur le compte de la plateforme FMZ, entraînant l'invalidation duAPI KEYdans l'objet d'échange configuré (la clé API de l'utilisateur est configurée sur la plateforme FMZ après avoir été cryptée sur le navigateur), et la stratégie ne peut pas démarrer, une erreur est donc signalée.

  • Une erreur est signalée lors de l'appel d'interface

    Dans les articles précédents, nous avons appris que les interfaces sur la plateforme FMZ sont divisées eninterfaces générant des demandes réseauetinterfaces qui ne génèrent pas de requêtes réseau. L'erreur d'interface ne provoquera pas l'arrêt du programme de stratégie, généralement en raison d'exceptions d'appel d'interface et les données erronées sont renvoyées, la stratégie ne fait pas de tolérance à l'erreur, et l'erreur d'exception de programme causée par les données erronées provoque l'arrêt du programme (le concept de tolérance à l'erreur mentionné dans les articles précédents).

    Voici plusieurs messages d'erreur d'interface qui génèrent des demandes réseau:

    • Temps d'arrêt du réseau

      L'un des messages d'erreur les plus fréquents rencontrés par les débutants est l'utilisation d'équipements de réseau domestiques (leur propre ordinateur ou serveur domestique).

    • Erreur http 429

      L'un des messages d'erreur classiques est que l'interface d'échange est appelée trop fréquemment, dépassant la limite de fréquence de l'échange (mentionnée dans les articles précédents). Certains débutants peuvent dire que je voudrais postuler pourAPI KEYNous devons savoir que la fréquence des limites d'accès à l'interface par les échanges est généralement basée sur les adresses IP. En termes simples, tant que toutes les demandes envoyées à une adresse IP sont comptées sur cette adresse IP, le serveur d'échange refusera l'accès si la demande dépasse la limite.

    • Rapport d'erreur sur les activités de l'interface d'échange

      Le timeout et 429 mentionnés ci-dessus sont des erreurs de réseau. S'il y a un problème sur les affaires de l'interface d'échange, une erreur sera également signalée. Par exemple, si je veux obtenir le prix du marché au comptant, mais que je configure une paire de négociation inexistante. Je l'ai testé dans l'outil de débogage de la plate-forme FMZ, l'outil de débogage est un outil de test très pratique, qui est très approprié pour les tests de bots réels d'appels de fonctions et d'acquisition de données.

      img

      Les résultats de l'exécution de l'outil de débogage, il n'y a pas de différence entre l'exécution de l'outil de débogage et l'exécution du vrai bot.

      Huobi	error	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 trading est invalide (comme on le voit ici)"err-msg":"invalid symbol") et Par exemple, il existe de nombreuses erreurs liées à l'entreprise, telles que la définition du levier lorsque certains échanges ne prennent pas en charge les valeurs de levier avec des parties décimales, à ce moment-là, si la valeur du levier a une partie décimale, cela provoquera également une erreur dans l'appel d'interface.

    Listez un appel d'interface qui ne génère pas de demande réseau

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

      img

      Toutefois, si le paramètre est passé incorrectement ou griffonné, une erreur sera signalée.

      img

    Mais 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 vu à partir du message d'erreur."err-msg":"invalid symbol"Dans l'exemple ci-dessus, la traduction est: err msg: invalide symbole . Il est probablement connu que la paire de trading est définie incorrectement, parce que les symboles anglais sont habituellement utilisés pour représenter le code de trading et la paire de trading. Pour les problèmes courants, il y a un post qui continuera à être collecté pour la requête:https://www.fmz.com/bbs-topic/9158

Système de contre-test

Le système de backtesting est également au centre d'un outil quantitatif. Le système de backtesting peut tester des prototypes de stratégie de manière pratique, des bugs potentiels et des problèmes logiques dans la stratégie de test préliminaire. Le système de backtesting doit être considéré de manière rationnelle. Le système de backtesting peut refléter certains problèmes de la stratégie dans une certaine mesure.

Ce qui suit est une brève description du système de backtesting sur la plateforme FMZ au niveau des différents langages de stratégie pris en charge par FMZ. (Certaines introductions du système de backtesting ont été mentionnées dans les articles précédents)

  • JavaScript

    Le backtesting dans le navigateur utilise des ressources matérielles natives.

  • Python

    Lors du backtesting sur un docker, vous pouvez choisir à quel docker attribuer (soit le docker déployé par vous-même, soit le docker public sur la plate-forme FMZ).

  • C++

    Contrairement aux langages de script, les stratégies C++ doivent être compilées puis exécutées. La stratégie de langage C++ sera compilée d'abord sur la plateforme FMZ (serveur) (s'il y a un problème avec le code, la compilation peut ne pas passer, et un message d'erreur apparaîtra directement).

  • Mon langage

    La mise en œuvre sous-jacente est JavaScript, et le backtesting est également effectué sur le navigateur.

  • Visualisation

    La mise en œuvre sous-jacente est JavaScript, et le backtesting est également effectué sur le navigateur.

Le système de backtesting sur la plateforme de trading FMZ Quant est divisé en deux modes de backtesting (c'est indépendamment du langage de stratégie, c'est le paramètre de backtesting, et le backtesting de stratégie dans toutes les langues est le même).

img

    1. Backtesting au niveau de la simulation En termes simples, le backtesting au niveau de la simulation fait référence aux données de prix de chaque nœud temporel qui sont simulées et générées selon les données de la ligne K.
    A bar in the K-line opens high and closes low, which constitutes a price framework, within which the prices are all in this price frame, so as long as the generated price opens high and closes low in this K-line frame within the range, the simulated price is reasonable.
    

    C'est comme une simulation comme celle-ci:https://www.fmz.comimgBien sûr, lorsque le système de backtesting réel met en œuvre cette simulation, la situation est légèrement plus compliquée que celle illustrée sur la figure. Connaissant ce principe, il est important de noter les inconvénients du backtesting au niveau de la simulation, bien que le backtesting au niveau de la simulation soit très rapide (parce que les prix générés par la simulation ne sont pas des prix réels seconde par seconde publiés un par un).tendance simulée du mouvement des tiques, la stratégie fonctionnera très bien (mais en réalité, le prix peut ne pas être cette tendance, bien que le prix se situe dans le cadre de cette barre de la ligne K). La ligne K utilisée pour générer les données de tick simulées ici est appelée la ligne K inférieure, et la période de cette ligne K est appeléela période inférieure de la ligne K, qui est définie comme indiqué sur la page de définition de la stratégie:

    imgLe 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 le tick simulé.

    Un autre point est que pour les stratégies à haute fréquence, il n'est évidemment pas approprié d'utiliser le backtesting au niveau de la simulation.

    1. Tests arrière au niveau des robots réels Après avoir parlé du backtesting au niveau de la simulation, parlons du backtesting au niveau du bot réel. En termes simples, le backtesting au niveau du bot réel est la libération réelle de données de prix chaque seconde pendant le backtesting. Il permet à la stratégie de retracer le prix par seconde du marché. Ce mode de backtesting vous permet de backtester des stratégies avec une fréquence de trading élevée et d'obtenir un certain degré de valeur de référence. L'inconvénient est que la quantité de données de backtesting au niveau du bot réel est trop grande pour être backtestée dans une grande plage de temps (le temps est généralement inférieur à 1 jour).données fractionnées(les données de transaction tick-by-tick, et les données de profondeur de marché ont également des instantanés seconde par seconde dans le réel bot backtesting, donc la quantité de données de backtesting bot réel est énorme) pour augmenter la plage de backtesting de manière appropriée, comme indiqué dans la figure:

    img

Où se trouve la source de données du système de backtesting de la plate-forme de trading quantique FMZ? Le système de backtesting utilise les données du centre de données de la plate-forme FMZ par défaut. Le centre de données de la plate-forme FMZ collecte automatiquement les données de marché de chaque devise de chaque échange et les fournit au système de backtesting de la plate-forme.

    1. Utiliser les données du centre de données FMZ par défaut Comme nous l'avons mentionné dans les articles précédents:https://www.fmz.com/bbs-topic/9536Les données de backtesting fournies par la plateforme ne prennent en charge qu'un nombre limité de paires de négociation (les données de backtesting de l'ensemble du marché et de toutes les devises sont un chiffre astronomique et il est irréaliste de les collecter toutes.
    1. Utiliser des données de source personnalisées Vous pouvez utiliser les options de la page de backtesting pour définir une source de données personnalisée.

    img

    Il y a aussi quelques notes sur les sources de données personnalisées dans la documentation de l'API FMZ:https://www.fmz.com/api#custom-data-source

Apprendre, tester, réfléchir

Vous ne pouvez pas faire de trading programmatique et quantitatif sansapprentissage, les essais, etla penséeJe suis désolée. Il est vrai que la Commission n'a pas été en mesure d'expliquer à la Commission ce qu'elle a fait.trouver des informationsAlors...Je vais essayer., réfléchir et analyser, si le problème n'est pas résolu, veuillez répéter les actions ci-dessus.

Mais lorsqu'un débutant rencontre des difficultés, il se sentira:

Oups, c'est trop difficile de programmer, de quantifier et d'écrire des stratégies. Après l'avoir regardé pendant longtemps, je suis toujours stupéfaite! Je veux abandonner avant de commencer! - Je ne sais pas.

Commencer sur la plateforme FMZ est en fait très simple. Tout d'abord, vous devez être bon à la recherche d'informations. Il y a beaucoup d'informations disponibles dans la plateforme de trading de stratégie FMZ Quant, la communauté et la bibliothèque.

img

La deuxième est la capacité pratique, qui peut être facilement testée en utilisant le système de backtesting et les outils de débogage. Cela ne signifie pas tester une stratégie complète. En fait, vous pouvez même apprendre les bases des programmes JavaScript sur le système de backtesting FMZ Quant si vous êtes complètement basique.

C'est le site de tutoriel 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 interrogées et apprises ici. Par exemple, je ne sais pas comment utiliser les expressions régulières de JS, que dois-je faire? Bien sûr, recherchez les informations d'abord, et puis essayez de le faire ~

J'en ai vu un exemple:imgJe veux le tester, et je peux 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 backtestingimg

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, " Is it an email address? ", " Answer: ", IsEmail(strEmailAddress1))
    
    var strEmailAddress2 = "123456789@qq.com"
    Log(strEmailAddress2, " Is it an email address? ", " Answer: ", IsEmail(strEmailAddress2))
}

img

Regardez ce qu'est un outil d'apprentissage! Par exemple, je veux apprendre à écrire la logique de boucle du langage JavaScript, et l'essayer:

En boucle à travers 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])
    }
}

img

Vous sentez-vous motivé à apprendre en un instant? En fait, sur FMZ, vous pouvez apprendre les bases de JavaScript sur le système de backtesting tout en regardant le tutoriel JavaScript. La grammaire JavaScript est presque maîtrisée, et en entrant dans la prochaine étape, vous devez utiliser l'interface d'échange pour obtenir des tests de données.outil de débogagede la plateforme FMZ pour effectuer des tests d'interface réels.

Ensuite, il s'agit de réfléchir davantage, de tirer des conclusions d'un cas, de vérifier les tests, d'analyser les comparaisons, etc. Cela permet d'apprendre très rapidement.


Relationnée

Plus de