Mit der Entwicklung des quantitativen Handels mit Blockchain-Assets haben immer mehr Blockchain-Asset-Händler das Werkzeug des quantitativen Handels erkannt. Aber als Anfänger in diesem Kreis kann er oder sie über viele Konzepte sehr verwirrt sein und durch verschiedene Begriffe, Software, Informationen usw. verwirrt sein. Dieser Artikel wird Sie mit gängigen Konzepten vertraut machen und verschiedene nützliche Informationen in der quantitativen Transaktion von Blockchain-Assets aus verschiedenen Aspekten erfahren. In diesem Artikel werden zunächst die Grundbegriffe zusammengefasst und anschließend Beispiele auf der FMZ Quant Trading Platform gegeben, die diesen Grundbegriffen entsprechen.
Zunächst einmal müssen wir das Konzept der Börsen verstehen. Wir müssen die Blockchain-Assets für Spekulation, Investitionen usw. handeln. Jeder von ihnen muss an einer Börse durchgeführt werden. Derzeit gibt es viele Börsen: senior, aufstrebende, große und kleine. Was die Börse betrifft, um programmatischen und quantitativen Handel durchzuführen, ist es notwendig, die Informationen selbst auf der Grundlage verschiedener Informationen zu filtern.
Wechselkonto Ein Börsenkonto ist ein Konto, das an dieser Börse registriert und eröffnet wurde.UnterkontenDie Erstellung, der Mechanismus und die Verwendung von Unterkontoanwendungen für jede Börse sind unterschiedlich. Daher müssen Sie die Informationen speziell auf der Börse-Website überprüfen oder den Kundenservice der Börse konsultieren.
Nach dem Anmelden mit einem Konto auf der Börse-Website können Sie normalerweise sehen, dass der Ort, an dem Blockchain-Assets gespeichert werden können, in mehrere
API-Schnittstelle zum Austauschsystem
Viele Benutzer, die diese Austauschfunktion nicht benutzt haben, fragen sich vielleicht: REST
Protokollschnittstelle undWebSocket
Einige Börsen bieten auch dieFIX
Diese sind nur für das Verständnis, meistens verwenden wir dieREST
Diese Schnittstellen können in der Regel im Link mit dem WortAPIDie API-Systeme jeder Börse sind sehr unterschiedlich, so dass Sie die Dokumentation auf spezifische Probleme überprüfen müssen. Wenn Sie kein Strategieentwickler sind, sind diese nur zum Verständnis.
API-Schlüssel des Kontos
Der API-Schlüssel des Kontos muss sorgfältig verstanden werden, da er mit der Sicherheit der in Ihrer Börse gespeicherten Blockchain-Assets zusammenhängt.
Die oben genannten sagte, dass die API-Schnittstelle ist ein Kanal, dann kann der API-Key als diePassAufgrund des Zugriffskanals können Sie keinen Zugriff auf ein Programm erlauben, was sehr gefährlich ist. Daher ist eine Verifizierung erforderlich, und der API KEY wird verwendet, um die Identität zu überprüfen.
Normalerweise wird der API KEY eines Austauschs in der oberen rechten Ecke der Austauschseite, auf der Account-Management-Seite (es kann auch ein Austausch an anderer Stelle auf der Webseite platziert sein, finden Sie den Link mit dem access key
, und die zweite Zeichenfolge wird normalerweise genanntsecret key
. Es gibt auch einige Börsen, deren API KEY andere Informationen enthält, zum Beispiel die OKEX V5 und V3 Schnittstellen haben einePassPhrase
, die auch eine Zeichenfolge ist (eine Zeichenfolge, die Sie selbst festlegen müssen, um die Sicherheitsüberprüfung zu stärken).
Bei der Einstellung des API KEY ist es normalerweise notwendig, die Berechtigungen dieses API KEY festzulegen, im Allgemeinen gibt es Berechtigungen wie
Austauschobjekte Das Konzept des Austauschobjekts ist das Konzept auf der FMZ Quant Trading Platform (FMZ.COMEinfach ausgedrückt bezieht es sich auf ein Objekt, das durch die Verkapselung der Austauschoberfläche gebildet wird. Dieses Objekt ist der Austausch im FMZ-Strategie-Code, der die Exchange.GetTicker-Funktion anruft, tatsächlich ruft er die Schnittstelle für den Zugriff auf die Börsenmarktdaten an. Siehe die FMZ-API-Dokumentation für Einzelheiten:https://www.fmz.com/api#exchangeDa das auf FMZ definierte Futures- und das auf FMZ definierte Spot-Austauschobjekt verschiedene Arten von Austauschobjekten sind, werden sie unterschieden (das Futures-Austauschobjekt hat mehrere Funktionen als das Spot-Austauschobjekt, z. B. Einstellung der Hebelwirkung, Abfrage der Positionsfunktion usw., überprüfen Sie die Dokumentation für Details). Nehmen Sie also die Binance-Börse zum Beispiel, Sie können es sehen, wenn Sie FMZ konfigurieren:Es gibt auch 2 Huobi.
Wenn die Strategie darin besteht, auf Futures-Austauschobjekten zu agieren, fügen Sie Futures hinzu, und wenn Sie Spot betreiben möchten, fügen Sie Spot hinzu.
Auf der FMZ-Plattform ist der Austausch ein Austauschobjekt, das ein Austauschkonto darstellt.https://www.fmz.com/api#exchanges
Der hier erwähnte Handelsmarkt bezieht sich auf einen bestimmten Handelsbot (stellen Sie sich eine Handelsseite vor), in der Regel hat die Börse mehrere Sektoren, wieHandel mit Währungen, Währungshandel mit Verschuldung, Vertragshandel etc.
Handelspaare
Was wir normalerweise als "Handelspaar" bezeichnen, ist einfach das, was wir kaufen und verkaufen, zum Beispiel, wir gehen auf den Markt, um Kohl zu kaufen.
FleckenDevisenhandel, Währungshandel mit Verschuldung, werden sie als Spothandel eingestuft.HandelspaarBeschreibung, auf welchem Markt sie gehandelt wird.
Nehmen wir zum Beispiel die Nutzung der FMZ Quant Trading Platform, wenn Sie ein Handelspaar von BTC zu USDT erstellen möchten, ist die Handelswährung BTC und die Stückelwährung USDT.
Wir nutzen die Funktion der FMZ-Plattformexchange.SetCurrency("BTC_USDT")
die Umstellung des aktuellen Handelspares auf:BTC_USDT
- Ich weiß.
FürSetCurrency
Für diejenigen, die es nicht verstehen:https://www.fmz.com/api#exchange.setcurrency..- Ich weiß.
Fürexchange
Für diejenigen, die es nicht verstehen:https://www.fmz.com/api#exchange
Verträge (Futures, Optionen)
Es besteht ein großer Unterschied zwischen Vertragshandel und Spothandel.currency-based contracts
undUSDT-based contracts
Für den programmatischen Handel und den quantitativen Handel ist es notwendig, nicht nur das Handelspaar, sondern auch den Vertrag zu bestimmen. Zum Beispiel, wenn wir BTC-Währung handeln wollen, dann gibt es viele BTC-Währungskontrakte, einschließlich vierteljährlicher Verträge (Lieferung fällig jedes Quartal), wöchentliche Verträge (Lieferung fällig am Freitag jeder Woche), ewige Verträge (Nichtlieferung) und so weiter. Wenn nur ein Transaktionspaar zur Identifizierung verwendet wird, welche Art von Vertrag wird gemacht? Daher ist ein spezifischer Vertragskode erforderlich, um zu beschreiben und zu bestimmen.
Auf diese Weise müssen wir, wenn wir beschreiben, auf welchem Vertragsmarkt wir handeln, beschreiben, welche Währung (Handelspaar) und welcher Vertrag (Vertragscode) es ist.
Währungsbasierte Verträge
In den Fällen, in denen die Währung als Margin verwendet wird (z. B. BTC-Währungs-basierte Kontrakte, die BTC als Margin verwenden, und der Gewinn ist auch BTC), ist der Gewinn Währung. Normalerweise wird die Stückelwährung des Handelspaares des Währungsmargin-Kontrakts in USD ausgedrückt (es ist nicht notwendig, ins Detail zu gehen, die meisten Börsen verwenden diesen Ausdruck). Das Handelspaar ist BTC_USD und der Vertrag ist ein vierteljährlicher Vertrag.BTC's currency-based quarterly contract
Markt.
Auf der FMZ Quant Trading Plattform,exchange.SetCurrency("BTC_USD")
das Handelspaar festlegt und dannexchange.SetContractType("quarter")
Die derzeitige Handelssorte wird auf diese Weise festgelegt.BTC's currency-based quarterly contract
.
USDT-basierter Vertrag
Für Kontrakte, die USDT als Margin verwenden (z. B. BTCBTC's USDT-based perpetual contract
Markt.
Auf der FMZ Quant Trading Plattform,exchange.SetCurrency("BTC_USDT")
das Handelspaar festlegt und dannexchange.SetContractType("swap")
Dies bedeutet, dass die aktuelle HandelsvarianteBTC's USDT-based perpetual contract
.
Befehle Worauf bezieht sich der Befehl speziell? Ein Auftrag ist der Auftrag, den wir der Börse übermitteln, wenn wir an der Börse kaufen oder verkaufen. Die Aufträge werden in Marktordern, Limitordern, bedingten Aufträgen usw. unterteilt. Die grundlegendsten Attribute eines Auftrags sind: der Gegenstand des Auftrags (einfach gesagt, was zu kaufen oder zu verkaufen ist), die Menge des Auftrags (wie viel zu kaufen oder zu verkaufen ist) und der Preis des Auftrags (zu welchem Preis zu kaufen oder zu verkaufen ist). Wenn der nächste Auftrag nur die Menge bestimmt, die gekauft und verkauft werden soll, und was gekauft oder verkauft werden soll, unabhängig davon, wie viel Geld es ist, dann wird ein solcher Auftrag als Markt Auftrag bezeichnet. Natürlich gibt es auch bedingte Aufträge (Stop-Loss-Aufträge, Eisberg-Aufträge usw.), die mit dem Austausch zusammenhängen. Einige Börsen bieten dies, während andere dies nicht tun. Für Details können Sie die API-Dokumentation der Börse überprüfen
Flecken Die Marktpreisliste von Spot-Orders muss in der Regel auf die Kaufbestellungen achten. Die Bestellmenge der Marktpreisliste von Spot-Orders ist nicht die Anzahl der Währungen, sondern der Betrag. Da die Marktorder den Preis nicht bestimmen, kann nur der Betrag verwendet werden, um zu bestimmen, wie viel zu kaufen. Die Menge der Marktorderverkaufsorder ist die Anzahl der Währungen, weil selbst wenn der Preis unsicher ist, wie viele Währungen zu verkaufen bestimmt werden können.
Verträge Die Ordermenge eines Vertrags ist speziell, in der Regel die Anzahl der Verträge. Die Contract Order-Schnittstelle der Börse ist grundsätzlich die Anzahl der Verträge, und es gibt keine Schnittstelle, die die Anzahl der Währungen als Bestellmenge nimmt. Im Allgemeinen ist die Auftragsmenge die Anzahl der Verträge, unabhängig davon, ob es sich um eine Markt- oder Limit-Order handelt.
Was ist ein Auftraggeber? Ein Taker-Order ist ein Auftrag, der Liquidität bietet, einfach gesagt, es bedeutet, dass der aktuelle Marktkaufpreis 10 und der Verkaufspreis 11 ist. Zu diesem Zeitpunkt lege ich einen Kauf Auftrag mit einem Kaufpreis von 9 oder einen Verkaufsauftrag mit einem Verkaufspreis von 12, zu diesem Zeitpunkt habe ich einen Auftrag für die Tiefe der Festplatte bereitgestellt, und dieser Auftrag ist Maker. Noch dieses Beispiel, wenn ich einen Kauf Auftrag zu einem Preis von 11 platziere, wird mein Auftrag zu diesem Zeitpunkt mit einem Verkaufsauftrag zu einem Preis von 11 auf dem Markt ausgefüllt. Und ich nehme einen Auftrag vom Markt, dieser Kauf Auftrag, den ich zu diesem Zeitpunkt platziert habe, war der Taker-Auftrag.
Zum Beispiel die Bestellfunktionenexchange.Sell
undexchange.Buy
Bei der Auftragserteilung hängt es vom Preis der Auftragserteilung und vom Markt zu diesem Zeitpunkt ab, ob unsere Auftragserteilung Liquidität liefert oder Liquidität verringert.
Wenn der Preis in -1 auf der FMZ Quant Trading Plattform übergeben wird, ist es, um eine Market Order zu platzieren, beachten Sie, dass der Orderbetrag der Spot-Markt Order Kauf-Order ist der Betrag, dann ist der Markt-Order sicherlich eine Verringerung der Liquidität, und es muss ein Taker-Order sein.
Mandat für die Ausgabe bedingter Aufträge
Viele Börsen unterstützen auch bedingte Aufträge, wieiceberg 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
, usw.
Diese Anordnungen können dieexchange.IO
Funktion auf der FMZ Quant Trading Plattform, um direkt auf die Exchange-Order-Schnittstelle zuzugreifen, um die Parameter (spezifizieren Sie, welche bedingten Aufträge zu platzieren sind) für die Platzierung einer Bestellung festzulegen.exchange.IO
Funktion, siehe die FMZ-API-Dokumentation:https://www.fmz.com/api#exchange.io…
Eine quantitative Handelsplattform kann als quantitatives Handelswerkzeug betrachtet werden, es kann ein Online-Software-System sein, es kann eine Website sein, es kann ein lokales ausführbares Programm sein oder es kann sogar ein Open-Source-Projekt auf Github sein.
FMZ Quant Handelsplattform Die FMZ Quant Trading Platform ist ein online verteiltes System.https://www.fmz.com/bbs-topic/9090
Backtestsysteme für quantitative Handelsplattformen Was ist ein Backtesting-System? Einfach ausgedrückt ist das Backtesting-System, die historischen Daten einer bestimmten Handelsvariante wiederzugeben und eine bestimmte Strategie in das Wiedergeben aufzunehmen und die Handelsleistung dieser Strategie zu erhalten, wenn die historische Datenwiedergabe simuliert wird. Daher ist das Backtesting-System nur eine Sandbox-Umgebung (wie der von Kindern gespielte Sandhaufen, es kann verschiedene Dinge erstellen, aber es ist nur ein Modell, nicht mit der realen Sache verbunden), dann kann das Backtesting-System keine Funktion der realen Börse haben. Backtestsystem auf der FMZ Quant Trading Plattform:
Name | Typ | Beschreibung |
---|---|---|
Bitfinex | Gegenstände des Spot-Austauschs | Unterstützen Sie begrenzte Handelspare, wie z. B.: BTC_USD, ETH_USD, LTC_USD usw. Beachten Sie, dass die Währung des Handelspaares USD ist, die in USD lautet |
Binance | Gegenstände des Spot-Austauschs | Unterstützung von begrenzten Handelspaaren wie BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC usw. |
Das ist OK. | Gegenstände des Spot-Austauschs | V.a. BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC usw. |
Weiß nicht. | Gegenstände des Spot-Austauschs | Unterstützung von begrenzten Handelspaaren wie BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC usw. |
OKEX-Futures | Futures-Austauschobjekte | Unterstützt begrenzte Handelspare, wie z. B.: BTC_USD, ETH_USD usw., die Handelspaarwährung ist USD. Nach Einstellung des spezifischen Vertragscodes (siehe Exchange.SetContractType-Funktion) ist der Vertrag ein währungsbasierter Vertrag |
HuobiDM | Futures-Austauschobjekte | HuobiDM ist Huobi-Futures (Huobi-Kontrakte), die begrenzte Handelspaare unterstützen, wie z. B.: BTC_USD,ETH_USD usw., die Handelspaarwährung ist USD. Nach Einstellung des spezifischen Vertragscodes (siehe Exchange.SetContractType-Funktion) ist der Vertrag ein währungsbasierter Vertrag |
BitMEX | Futures-Austauschobjekte | Das Handelspaar ist: XBT_USD. Nach Einstellung des spezifischen Vertragscodes (siehe Exchange.SetContractType-Funktion) ist der Vertrag ein währungsbasierter Vertrag |
Binance-Futures | Futures-Austauschobjekte | Unterstützt begrenzte Handelspare, wie z. B.: BTC_USDT, ETH_USDT usw., die Handelspaarwährung ist USDT. Nach Einstellung des spezifischen Vertragscodes (siehe Exchange.SetContractType-Funktion) ist der Vertrag ein USDT-basierter Vertrag |
Derivatoptionen | Optionen Tauschobjekte | Das Handelspaar ist: BTC_USD, ETH_USD. Nach Einstellung des spezifischen Vertragscodes (siehe Exchange.SetContractType-Funktion) ist der Vertrag ein währungsbasierter Vertrag |
API-Schlüssel der quantitativen Handelsplattform
Die Börse verfügt über API-Schnittstellen und die quantitative Handelsplattform verfügt auch über API-Schnittstellen.Extended API
, einige Funktionen der FMZ-Plattform können programmatisch betrieben werden, zum Beispiel echte Bots in Chargen erstellen, echte Bots in Chargen starten, die Konfiguration echter Bots in Chargen ändern usw.https://www.fmz.com/api#api-extension-of-fmz-platformDie Erweiterung API kann auch verwendet werden, um etwas Interessantes zu tun, wieVerwendung der FMZ Quant Trading Platform Erweiterung API zur Implementierung von TradingView Alarmsignalhandel
Was genau steuert mein Austauschkonto für den automatischen Handel? Dies ist die spezifische Ausführungsform des programmatischen Handels und des quantitativen Handels - programmatische Handelsscripts. Diese echten Bot-Programme können in verschiedenen Sprachen geschrieben werden. Zum Beispiel unterstützt die FMZ Quant Trading Platform das Schreiben echter Bot-Handelsstrategien in JavaScript, Python und C ++ Sprachen. Diese Skriptprogramme führen verschiedene Operationen wie Kauf und Verkauf eines Kontos über die API-Schnittstelle der Börse durch.
Das Gerät, auf dem das programmatische Handelsscript ausgeführt wird
Das echte Bot-Skriptprogramm muss einen Geräteträger haben (kurz gesagt, der echte Bot muss einen Ort haben, an dem er ausgeführt wird). Quantitative Transaktionen implementieren normalerweise das echte Bot-Programm auf dem Alibaba Cloud-Server in Hongkong (natürlich können Sie auch Server von anderen Orten, anderen Betreibern verwenden). Angesichts der Tatsache, dass viele Börsen derzeit überseeischen Netzwerkzugang benötigen, ist es unmöglich, viele Exchange-API-Schnittstellen mit inländischen Servern auszuführen. Im Allgemeinen, wenn die Schnittstelle nicht zugänglich ist, wird ein Fehler angezeigt.timeout
wird gemeldet.
Auf der FMZ-Plattform können Sie in der Regel Ihr eigenes Softwareprogramm auf dem Alibaba Cloud-Server in Hongkong bereitstellen (die echte Bot-Trägersoftware der FMZ Quant Trading Platform heißt [docker], und der echte Bot des quantitativen Handels wird auf der Grundlage der Docker-Software ausgeführt).
Wahl der Skriptsprache Es gibt zu viele Programmiersprachen, und fast alle von ihnen können verwendet werden, um echte Botskriptprogramme zu schreiben. Hier werden wir auch die FMZ Quant Trading Platform als Beispiel nehmen, um die Vorteile verschiedener Sprachen zu verstehen.
JavaScript Es ist einfach zu bedienen, und es ist fast unabhängig von der Geräteumgebung, es unterstützt den ES6-Standard.
Python Es hängt bis zu einem gewissen Grad von der Gerätemgebung ab, und verschiedene Bibliotheken können installiert werden, mit einer hohen Skalierbarkeit.
C++
Die Strategie hat die schnellste Ausführungsgeschwindigkeit, die höchste Effizienz, aber sie ist schwieriger zu verwenden.
Nach der Kenntnis davon sind andere Programmiersprachenso easy!
.
MyLanguage MyLanguage, unterstützt von der FMZ-Plattform, ist der einfachste Befehl.
Strategie für die Verknüpfung visueller Module Die Strategie der visuellen Schaffung wird nur verwendet, um das Interesse zu erhöhen und die Programmlogik zu verstehen. Sie kann verwendet werden, um eine einfache Logik zu erstellen, aber sie ist nicht anwendbar, wenn die Strategie ein wenig komplex ist, da es schwierig ist, komplexe Logik zu pflegen, zu erweitern und zu entwerfen.