Avec le développement du trading quantitatif des actifs blockchain, de plus en plus de traders d'actifs blockchain ont reconnu l'outil du trading quantitatif. Mais en tant que débutant dans ce cercle, il ou elle peut être très confus au sujet de nombreux concepts, et confus par divers termes, logiciels, informations, etc. Cet article vous mènera à comprendre et à vous familiariser avec des concepts courants, et à apprendre diverses informations utiles dans la transaction quantitative des actifs blockchain à partir de divers aspects. Cet article résume d'abord les concepts de base, puis donne des exemples sur la plateforme de trading quantique FMZ correspondant à ces concepts de base.
Tout d'abord, nous devons comprendre le concept d'échanges. Nous devons échanger les actifs blockchain pour la spéculation, l'investissement, etc. Chacun d'entre eux doit être fait sur un échange. Il existe actuellement de nombreux échanges: senior, émergent, grand et petit. En ce qui concerne l'échange pour mener des échanges programmatiques et quantitatifs, il est nécessaire de filtrer les informations par vous-même en fonction de diverses informations.
Compte de change Le compte de change, est un compte enregistré et ouvert sur ce marché.sous-comptesLa création, le mécanisme et l'utilisation des applications de sous-compte pour chaque échange sont différents. Vous devez donc vérifier les informations spécifiquement sur le site Web de l'échange ou consulter le service client de l'échange.
Après vous être connecté avec un compte sur le site Web de l'échange, vous pouvez généralement voir que l'endroit où les actifs blockchain peuvent être stockés est divisé en plusieurs
Interface API avec le système d'échange
Beaucoup d'utilisateurs qui n'ont pas utilisé cette fonction d'échange peuvent se demander: REST
interface de protocole etWebSocket
Il est également possible d'utiliser les services deFIX
Ce sont juste pour la compréhension, la plupart du temps, nous utilisons leREST
Ces documents d'interface peuvent généralement être trouvés dans le lien avec le motAppareils électroniquesIl est parfois nécessaire de vérifier ces documents pour certaines informations d'erreur d'interface. Les systèmes API de chaque échange sont assez différents, vous devez donc vérifier la documentation pour des problèmes spécifiques. Si vous n'êtes pas un développeur de stratégie, ceux-ci sont juste pour la compréhension.
Clé API du compte
L'API KEY du compte doit être comprise avec soin, car elle est liée à la sécurité des actifs blockchain stockés dans votre échange.
Ce qui précède dit que l'interface API est un canal, alors la clé API peut être compris comme lepasseEn raison du canal d'accès, vous ne pouvez pas autoriser l'accès à tout programme, ce qui est très dangereux. Par conséquent, une vérification est requise, et la clé API est utilisée pour vérifier l'identité.
Habituellement, la clé API d'un échange est créée dans le coin supérieur droit de la page d'échange, sur la page de gestion de compte (il peut également y avoir un échange placé ailleurs sur la page Web, trouvez le lien avec le mot clé access key
, et la deuxième chaîne est généralement appeléesecret key
Il existe également des bourses dont la clé API contient d'autres informations, par exemple les interfaces OKEX V5 et V3 ont unPassPhrase
, qui est également une chaîne (une chaîne qui doit être définie par vous-même pour renforcer la vérification de sécurité).
Lors de la définition de l'API KEY, il est généralement nécessaire de définir les autorisations de cette API KEY, en général, il existe des autorisations telles que
Objets d'échange Le concept d'objet d'échange est le concept de la plateforme de négociation quantitative FMZ (FMZ.COMEn termes simples, il se réfère à un objet formé par l'encapsulation de l'interface d'échange. Cet objet est l'échange dans le code de stratégie FMZ, qui appelle la fonction exchange.GetTicker, en fait, il appelle l'interface pour accéder aux données du marché des changes. Voir la documentation de l'API FMZ pour plus de détails:https://www.fmz.com/api#exchangeComme l'objet d'échange à terme et l'objet d'échange au comptant définis sur FMZ sont différents types d'objets d'échange, ils sont distingués (l'objet d'échange à terme a plusieurs fonctions de plus que l'objet d'échange au comptant, telles que la définition de la fonction de levier, la requête de la fonction de position, etc., consultez la documentation pour plus de détails). Prenons l'exchange Binance par exemple, vous pouvez le voir lors de la configuration sur FMZ:Il y a aussi 2 Huobi.
Si la stratégie est d'opérer sur des objets d'échange de futures, ajoutez des futures, et si vous voulez opérer au comptant, ajoutez le comptant.
Sur la plateforme FMZ, l'échange est un objet d'échange, qui représente un compte d'échange.https://www.fmz.com/api#exchanges
Le marché de trading mentionné ici fait référence à un bot de trading spécifique (imaginez une page de trading), généralement l'échange a plusieurs secteurs, tels quenégociation de devises, négociation à effet de levier en devises, négociation de contrats etc.
Paires de négociation
Ce que nous appelons habituellement une paire de trading est simplement ce que nous achetons et vendons, par exemple, nous allons au marché pour acheter du chou.
Les tachesÉchange de devises, négociation à effet de levier en devises, ils sont classés comme des opérations au comptant.paire de négociationdécrire le marché sur lequel elle est négociée.
Prenant l'utilisation de la plateforme de trading FMZ Quant par exemple, si vous voulez faire une paire de trading de BTC à USDT, la monnaie de trading est BTC, et la monnaie de dénomination est USDT.
Nous utilisons la fonction de la plateforme FMZexchange.SetCurrency("BTC_USDT")
pour passer de la paire de négociation en cours à:BTC_USDT
- Je ne sais pas.
PourSetCurrency
Pour ceux qui ne comprennent pas, voir:https://www.fmz.com/api#exchange.setcurrency..- Je ne sais pas.
Pourexchange
Pour ceux qui ne comprennent pas, voir:https://www.fmz.com/api#exchange
Contrats (futures et options)
Il y a une grande différence entre le commerce des contrats et le commerce au comptant.currency-based contracts
etUSDT-based contracts
. Pour le trading programmatique et le trading quantitatif, il est nécessaire de déterminer non seulement la paire de transactions, mais aussi le contrat. Par exemple, si nous voulons négocier la monnaie BTC, il existe de nombreux contrats de devises BTC, y compris les contrats trimestriels (livraison due chaque trimestre), les contrats hebdomadaires (livraison due le vendredi de chaque semaine), les contrats perpétuels (non-livraison) et ainsi de suite. Si une seule paire de transactions est utilisée pour l'identification, quel type de contrat est-il? Par conséquent, un code de contrat spécifique est nécessaire pour décrire et déterminer.
De cette façon, lorsque nous décrivons le marché du contrat sur lequel nous allons négocier, nous devons décrire la devise (paire de négociation) et le contrat (code du contrat) dont il s'agit.
Contrats fondés sur la monnaie
Les contrats qui utilisent la devise comme marge (comme les contrats basés sur la devise BTC, qui utilisent BTC comme marge, et le profit est également BTC), le profit est la devise. Habituellement, la devise de la paire de négociation du contrat à marge de devise est exprimée en USD (pas besoin d'entrer dans les détails, la plupart des échanges utilisent cette expression).BTC's currency-based quarterly contract
le marché.
Sur la plateforme de trading de FMZ Quant,exchange.SetCurrency("BTC_USD")
définit la paire de négociation, puisexchange.SetContractType("quarter")
La variété de négociation actuelle est ainsiBTC's currency-based quarterly contract
.
Contrats basés sur l'USDT
Les contrats qui utilisent USDT comme marge (tels que les contrats basés sur BTCBTC's USDT-based perpetual contract
le marché.
Sur la plateforme de trading de FMZ Quant,exchange.SetCurrency("BTC_USDT")
définit la paire de négociation, puisexchange.SetContractType("swap")
La variété de négociation actuelle estBTC's USDT-based perpetual contract
.
Les ordres À quoi ce commandement se réfère- t- il spécifiquement? Un ordre est l'ordre que nous soumettons à l'échange lorsque nous achetons ou vendons sur l'échange. Les ordres sont divisés en ordres de marché, ordres de limite, ordres conditionnels, etc. Les attributs les plus basiques d'un ordre sont: l'objet de l'ordre (en termes simples, quoi acheter ou vendre), la quantité de l'ordre (combien acheter ou vendre) et le prix de l'ordre (à quel prix acheter ou vendre). Si l'ordre suivant ne détermine que la quantité à acheter et à vendre et ce qu'il faut acheter ou vendre, peu importe la quantité d'argent, un tel ordre est appelé un ordre de marché. Bien sûr, il existe également des ordres conditionnels (ordres stop-loss, ordres de glacier, etc.), qui sont liés à l'échange.
Les taches La liste des prix du marché des ordres au comptant doit généralement prêter attention aux ordres d'achat. La quantité d'ordre de la liste des prix du marché des ordres au comptant n'est pas le nombre de devises, mais le montant. Parce que l'ordre du marché ne détermine pas le prix, seul le montant peut être utilisé pour déterminer la quantité à acheter. La quantité de l'ordre de vente du marché est le nombre de devises, car même si le prix est incertain, le nombre de devises à vendre peut être déterminé.
Les contrats La quantité d'ordre d'un contrat est spéciale, généralement le nombre de contrats. L'interface d'ordre de contrat de l'échange est essentiellement le nombre de contrats, et il n'y a pas d'interface qui prend le nombre de devises comme quantité d'ordre. En général, la quantité d'ordre est le nombre de contrats, qu'il s'agisse d'un ordre de marché ou d'un ordre limite.
Qu'est-ce que le commandant, le commandant? Un ordre de prise est un ordre qui fournit de la liquidité, en termes simples, cela signifie que le prix d'achat du marché actuel est de 10 et le prix de vente est de 11. à ce moment-là, je place un ordre d'achat avec un prix d'achat de 9, ou un ordre de vente avec un prix de vente de 12, à ce moment-là, j'ai fourni un ordre pour la profondeur du disque, et cet ordre est le fabricant. encore cet exemple, si je place un ordre d'achat à un prix de 11, à ce moment-là mon ordre sera rempli avec un ordre de vente à un prix de 11 sur le marché. et je prends un ordre du marché, cet ordre d'achat que j'ai placé à ce moment-là était l'ordre de prise.
Par exemple, les fonctions de commandeexchange.Sell
etexchange.Buy
Lors de la passation d'un ordre, la classification de l'ordre en tant que preneur ou fabricant dépend du prix de l'ordre et du marché à ce moment-là, et si notre ordre fournit de la liquidité ou la réduit.
Lorsque le prix est passé en -1 sur la plate-forme de trading FMZ Quant, il est de placer un ordre de marché, notez que le montant de l'ordre de l'ordre de marché au comptant est le montant, alors l'ordre de marché est certainement une réduction de la liquidité, et il doit être un ordre de preneur.
Mandat d'ordre conditionnel d'échange
Beaucoup d'échanges prennent également en charge les ordres conditionnels, tels queiceberg order
, stop-loss order
, take-profit order
, post_only: only maker order
, fok: complete the deal or cancel immediately
, ioc: deal immediately and cancel the remaining
, etc.
Ces ordonnances peuvent utiliser leexchange.IO
La fonctionnalité FMZ Quant Trading Platform permet d'accéder directement à l'interface des ordres de change pour spécifier les paramètres (spécifier les ordres conditionnels à passer) pour passer un ordre.exchange.IO
fonction, veuillez consulter la documentation de l'API FMZ:https://www.fmz.com/api#exchange.io…
Une plateforme de trading quantitative peut être considérée comme un outil de trading quantitatif, il peut s'agir d'un système logiciel en ligne, d'un site Web, d'un programme exécutable local, ou même d'un projet open source sur Github.
Plateforme de négociation quantitative FMZ FMZ Quant Trading Platform est un système distribué en ligne. Pour une connaissance initiale de la plateforme et des tutoriels, veuillez vous référer à:https://www.fmz.com/bbs-topic/9090
Systèmes de backtesting pour les plateformes de négociation quantitatives C'est quoi un système de backtesting? En termes simples, le système de backtesting est de rejouer les données historiques d'une certaine variété de trading, et de laisser une certaine stratégie être incluse dans la lecture, et d'obtenir les performances de trading de cette stratégie lors de la simulation de la lecture des données historiques. Système de backtesting sur la plateforme de négociation quantitative FMZ:
Nom | Le type | Définition |
---|---|---|
Bitfinex | Objets de change au comptant | Prise en charge de paires de négociation limitées, telles que: BTC_USD, ETH_USD, LTC_USD, etc. Notez que la devise libellée de la paire de négociation est le USD, qui est libellé en USD. |
Binance | Objets de change au comptant | Supporter des paires de négociation limitées, telles que: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC, etc. |
Je suis d'accord. | Objets de change au comptant | Le montant de la dette est calculé en fonction de l'indicateur de risque. |
Huobi est un joueur. | Objets de change au comptant | Supporter des paires de négociation limitées, telles que: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC, etc. |
Les contrats à terme OKEX | Objets d'échange de contrats à terme | Prise en charge de paires de négociation limitées, telles que: BTC_USD, ETH_USD, etc., la devise de la paire de négociation est USD. Après avoir défini le code de contrat spécifique (voir la fonction exchange.SetContractType), le contrat est un contrat basé sur la devise |
HuobiDM | Objets d'échange de contrats à terme | HuobiDM est Huobi futures (contrats Huobi), prenant en charge des paires de négociation limitées, telles que: BTC_USD,ETH_USD etc, la devise de la paire de négociation est USD. Après avoir défini le code de contrat spécifique (voir la fonction Exchange.SetContractType), le contrat est un contrat basé sur la devise |
BitMEX | Objets d'échange de contrats à terme | La paire de négociation est: XBT_USD. Après avoir défini le code de contrat spécifique (voir la fonction exchange.SetContractType), le contrat est un contrat basé sur la devise |
Futures sur Binance | Objets d'échange de contrats à terme | Prise en charge de paires de négociation limitées, telles que: BTC_USDT, ETH_USDT, etc., la devise de la paire de négociation est USDT. Après avoir défini le code de contrat spécifique (voir la fonction exchange.SetContractType), le contrat est un contrat basé sur USDT |
Options sur dérivés | Objets d'échange d'options | La paire de négociation est: BTC_USD, ETH_USD. Après avoir défini le code de contrat spécifique (voir la fonction exchange.SetContractType), le contrat est un contrat basé sur la devise |
API KEY de la plateforme de négociation quantitative
L'échange dispose d'interfaces API, et la plateforme de trading quantitative dispose également d'interfaces API.Extended API
, certaines fonctions de la plateforme FMZ peuvent être exploitées par programmation, par exemple, créer de vrais bots en lots, démarrer de vrais bots en lots, modifier la configuration de vrais bots en lots, etc., pour plus de détails, veuillez vous référer à:https://www.fmz.com/api#api-extension-of-fmz-platformL'extension API peut également être utilisée pour faire quelque chose d'intéressant, commeUtilisation de l'API d'extension de la plateforme de trading FMZ Quant pour mettre en œuvre le trading de signaux d'alarme TradingView
Cela dit, qu'est-ce qui contrôle exactement mon compte d'échange pour le trading automatique? Il s'agit de l'incarnation spécifique du trading programmatique et du trading quantitatif - des scripts de trading programmatiques. Ces vrais programmes de bots peuvent être écrits dans différents langages. Par exemple, la plateforme de trading FMZ Quant prend en charge l'écriture de stratégies de trading de vrais bots dans les langages JavaScript, Python et C++. Ces programmes de scripts effectuent diverses opérations telles que l'achat et la vente d'un compte via l'interface API de l'échange.
L'appareil sur lequel s'exécute le script de trading programmatique
Le programme de script de bot réel doit avoir un support de périphérique (en bref, le bot réel doit avoir un endroit où il fonctionne). Les transactions quantitatives déploient généralement le programme de bot réel sur le serveur Alibaba Cloud à Hong Kong (bien sûr, vous pouvez également utiliser des serveurs d'autres endroits, d'autres opérateurs).timeout
seront signalés.
Sur la plateforme FMZ, vous pouvez généralement déployer votre propre programme logiciel sur le serveur Alibaba Cloud de Hong Kong (le vrai logiciel porteur de bot de la plateforme FMZ Quant Trading est appelé [docker], et le vrai bot de trading quantitatif est exécuté sur la base du logiciel docker).
Choix du langage de script Il y a trop de langages de programmation, et presque tous peuvent être utilisés pour écrire de vrais programmes de scripts de robots. Ici, nous prendrons également la plate-forme de trading quantique FMZ à titre d'exemple pour comprendre les avantages de divers langages.
JavaScript Il est facile à utiliser, et il est presque indépendant de l'environnement de l'appareil, il prend en charge la norme ES6.
Python Il dépend dans une certaine mesure de l'environnement de l'appareil, et diverses bibliothèques peuvent être installées, avec une grande évolutivité.
C++
La stratégie a la vitesse d'exécution la plus rapide, l'efficacité la plus élevée, mais elle est plus difficile à utiliser.
Une fois familiarisé, les autres langages de programmation sontso easy!
.
Mon langage MyLanguage pris en charge par la plateforme FMZ est la commande la plus basique.
Stratégie d'épissage du module visuel La stratégie de création visuelle n'est utilisée que pour améliorer l'intérêt et comprendre la logique du programme.