In den vorherigen Artikeln haben wir gelernt, dass der sogenannte programmierte und quantitative Handel ein Skriptprogramm ist, das auf den von Plattformen erhaltenen Daten basiert, nach einer Reihe von Berechnungen, Urteilen und Auslösern, um einige Operationen durchzuführen und die Plattformkonten zum Handel zu betreiben. Diese Aktionen zum Erwerb von Daten und zum Betreiben von Konten werden alle über die Plattform-API-Schnittstellen durchgeführt. Einfach ausgedrückt, die Skriptprogramme interagieren mit Plattformen. Da es sich um Interaktion handelt, muss es eine normale Interaktion und eine abnormale Interaktion geben. Wenn eine abnormale Interaktion auftritt, gibt eine Schnittstelle die Ausnahmeinformationen zurück.
Natürlich werden programmierte und quantitative Handelssysteme auf dem Markt oder selbstentwickelte Programme verschiedene Fehlermeldungen und -nachrichten haben. Diese Fehlermeldungen beschränken sich nicht auf die Fehlermeldungen, die von den Plattform-APIs gemeldet werden. Es gibt auch andere Fehler, wie z. B.: Programm-Ausnahmefehler während des Betriebs, Konfigurationsfehler, Programm-Syntaxfehler und so weiter.
Auf der FMZ Quant Trading Platform lassen sich Fehlermeldungen grob in mehrere Kategorien unterteilen:
Strategie-Syntaxfehler Diese Art von Fehler ist der häufigste Fehler, der in der Regel durch die Situation verursacht wird, dass die Anfänger mit Programmieren nicht vertraut sind, und die ihre Code beim Schreiben während des Studiums Syntaxfehler hat.
Der Code wurde ohne Zeichen wie Klammern geschrieben. Für diese Art von Fehler kann die Fehlermeldung normalerweise auf der Strategiebearbeitungsseite angezeigt werden, und unter diesen Umständen kann die Strategie nicht ausgeführt werden (wenn die Strategie ausgeführt wurde, wird ein Fehler gemeldet, wie im Bild gezeigt).
Daher können Sie es sich zur Gewohnheit machen, nach dem Schreiben des Codes einen Blick auf die Strategiebearbeitungsseite zu werfen, um zu sehen, ob es ein kleines rotes Kreuz gibt; wenn es eines gibt, bedeutet das definitiv, dass es einen offensichtlichen Fehler gibt.
Programm-Ausnahme während des Betriebs, verursacht durch Strategieprogramm-BUG Wenn ein Programm während seines Betriebs Fehler aufweist, wird der Auslöser der Ausnahme dazu führen, dass das Programm abnormal stoppt, und diese Art von Fehlermeldungen werden angezeigt.
Diese Art von Fehlern können alle die Ausnahme des Programms verursachen und das Programm vom Laufen abhalten.
Fehler durch unsachgemäße Konfiguration und Einstellungen
Auf der FMZ-Plattform werden alle Handelspare in Form vonX_Y
, wobei BTC_USDT
Wenn ich es falsch schreibe, schreibe ich es inBTC-USDT
.
Fehlermeldung im Backtestsystem auf der FMZ-Plattform:
Fehlermeldung in einem Bot:
Oder der häufigste Fehler, den Anfänger oft begegnen:
Diese Art von Fehler wird verursacht durch die Nichtigkeit derAPI KEY
in dem konfigurierten Exchange-Objekt nach der Änderung des Passworts eines FMZ-Kontos (die API-Schlüssel der Benutzer werden alle vom Browser-End verschlüsselt und auf der FMZ-Plattform konfiguriert). Das wird eine Strategie nicht starten können, was zu einem gemeldeten Fehler führt.
Fehler beim Anrufen der Schnittstelle
In früheren Artikeln haben wir studiert und gelernt, dass die Schnittstellen auf der FMZ-Plattform inSchnittstellen, die Netzwerkanfragen stellenundSchnittstellen, die keine Netzwerkanfragen stellen. Der Schnittstellenfehler wird nicht direkt dazu führen, dass das Strategieprogramm zum Stillstand kommt. Normalerweise werden aufgrund der Schnittstellenanruf-Ausnahme die falschen Daten zurückgegeben, und die Strategie macht nicht die Fehlertoleranz. Dann führt der durch die falschen Daten verursachte Programm-Ausnahmefehler zum Stillstand des Programms (das Konzept der Fehlertoleranz wurde bereits in den vorherigen Artikeln eingeführt).
Hier sind einige Fehlermeldungen der Schnittstellen aufgeführt, die Netzwerkanfragen stellen:
Netzwerk-Timeout
Eine der Fehlermeldungen, die Anfängern häufig begegnen, wird durch die Verwendung eines heimischen Netzwerkgeräts (PC oder heimischer Server) verursacht. Da die meisten Plattformen blockiert sind, sind viele Plattformen grundsätzlich vom heimischen Netzwerk (in China) nicht zugänglich und die Zugriffsoberfläche wird einen Timeout melden (in früheren Artikeln erwähnt).
HTTP 429 Fehler
Es handelt sich um eine der klassischen Fehlermeldungen; der Grund dafür ist, dass eine Plattformoberfläche zu häufig aufgerufen wird und die Frequenzgrenze der Plattform überschritten wird (in den vorherigen Artikeln erwähnt). Einige neue Studenten mögen sagen, dass der Fehler nicht angehoben wird, wenn sie für API-Key's mehrerer Plattformen oder mehrerer Plattformkonten beantragen. Wir müssen wissen, dass die Frequenzgrenze für den Zugriff auf Schnittstellen durch Plattformen normalerweise auf IP-Adressen basiert. Einfach ausgedrückt, solange alle Anfragen, die von einer IP-Adresse gesendet werden, auf der Adresse gezählt werden, wird der Plattformserver den Zugriff auf die IP verweigern, wenn die Anforderungszahl das Limit überschreitet.
Fehler des Plattforminterface-Dienstes
Die oben erwähnten Timeouts und 429 Fehler sind Fehler in der Netzwerkschicht. Wenn es ein Problem in der Schicht des Plattform-Interface-Dienstes gibt, wird auch ein Fehler gemeldet. Zum Beispiel möchte ich die Spot-Markt-Zitate erhalten, aber ich habe ein nicht existierendes Handelspaar eingerichtet. Ich teste es im Debug-Tool der FMZ-Plattform. Das Debug-Tool ist ein sehr praktisches Test-Tool, das sehr gut für den echten Bot-Test von Funktionsanrufen und Datenerfassung geeignet ist.
Das Ergebnis der Ausführung des Debugging-Tools; es gibt keinen Unterschied zwischen der Ausführung des Debugging-Tools und der Ausführung des Bots.
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}
Die Fehlermeldung hier bedeutet, dass das Handelspaar ungültig ist (siehe hier:"err-msg":"invalid symbol"
)
Zum Beispiel gibt es viele solche dienstbezogenen Fehler. Zum Beispiel unterstützen einige Plattformen beim Einstellen von Hebelwirkung keine Hebelwerte mit Dezimalstellen. Wenn ein Hebelwert Dezimalstellen hat, wird dies auch einen Fehler beim Schnittstellenanruf verursachen.
Liste eines Schnittstellenanrufs, der keine Netzwerkanfrage generiert:
Code des Futures-Kontrakts Einige Schnittstellen setzen nur einige globale Variablen im System und stellen keine Netzwerkanfragen aus.
Wenn jedoch Parameter falsch übergeben oder geschrieben werden, werden auch Fehler gemeldet.
Unabhängig davon, welche Art von Fehler es ist, ist die angezeigte Fehlermeldung die wichtigste Information, um das Problem zu finden, dh Sie können das Problem von der Fehlermeldung unterscheiden."err-msg":"invalid symbol"
Sie können wahrscheinlich wissen, dass der Fehler durch die falsche Einstellung des Handelspaares verursacht wird, denn das
Das Backtest-System ist auch der Schlüsselpunkt eines quantitativen Werkzeugs. Das Backtest-System kann leicht den Prototypen einer Strategie testen und zunächst die potenziellen Fehler und logischen Probleme in der Strategie überprüfen, aber das Backtest-System muss rational betrachtet werden. Das Backtest-System kann einige Probleme einer Strategie bis zu einem gewissen Grad widerspiegeln.
Im Folgenden finden Sie eine kurze Beschreibung des Backtestsystems auf der FMZ-Plattform von der Ebene der verschiedenen von FMZ unterstützten Strategie-Sprachen. (Einige Einführungen zum Backtest-System wurden in den vorherigen Artikeln erwähnt.)
JavaScript
Der Backtest wird im Browser durchgeführt und verwendet die lokalen Hardware-Ressourcen.
Python
Bei dem Backtest auf einem Docker können Sie wählen, welchem Docker Sie zuweisen (entweder dem von Ihnen bereitgestellten Docker oder dem öffentlichen Docker der FMZ-Plattform). Angesichts der großen Last des öffentlichen Dockers auf der FMZ-Plattform wird empfohlen, den lokalen Docker-Backtest zu verwenden (Das wird auch schneller sein. Beim Backtest des öffentlichen Dockers werden, wenn es überlastet ist, einige Backtest-Aufgaben storniert, wobei das Ergebnis des Backtests unterbrochen wird).
C++
Im Gegensatz zu Skriptsprachen müssen C++-Strategien kompiliert und dann ausgeführt werden. Die C++-Sprachstrategie wird zuerst auf der FMZ-Plattform (Server) kompiliert (wenn es ein Problem mit dem Code-Schreiben gibt, kann die Kompilierung nicht passieren, und eine Fehlermeldung wird direkt angezeigt).
Mylangauge
Die Unterschicht wird von JavaScript implementiert, und der Backtest wird auch im Browser durchgeführt.
Visualisierung
Die Unterschicht wird von JavaScript implementiert, und der Backtest wird auch im Browser durchgeführt
Das Backtestsystem der FMZ Quant Trading Plattform verfügt über zwei Backtestmodi (unabhängig davon, in welcher Sprache eine Strategie geschrieben ist, ist der Backtestmodus eine Einstellung des Backtestsystems, und die Einstellungsoptionen sind für alle auf FMZ unterstützten Sprachen gleich).
Für die Anleitung zum Backtest-System können Sie sich auf den entsprechenden Teil des Strategie-Schreib-Tutorials auf der FMZ-Plattform beziehen:
There are the highest, the lowest, open and close prices in one bar, which forms a price structure. Within the time range represented by the K-line, the prices are all in the price structure. Therefore, as long as the generated price is within the K-line structure of the four prices, the simulated price is reasonable.
Genau wie die Simulation auf dem folgenden Bild:
Natürlich ist es etwas komplizierter als das, was auf dem Bild gezeigt wird, um die Simulation im Backtest-System zu realisieren, was hier nicht weiter diskutiert wird. Nach Kenntnis des Prinzips müssen Sie auf die Nachteile des Simulations-Level-Backtests achten. Obwohl der Simulations-Level-Backtest sehr schnell ist (weil die durch die Simulation erzeugten Preise nicht reale Sekunde-für-Sekunde-Preise sind, die sukzessive veröffentlicht werden).Simulierte Trendänderung der Zecken, wird die Strategie hervorragend funktionieren (aber in Wirklichkeit ändert sich der Preis möglicherweise nicht mit dem Trend, obwohl der Preis sich innerhalb der Struktur der K-Linienbalke befindet). Die K-Linie verwendet, um die simulierten Tick-Daten hier generiert wird die untere K-Linie genannt, und die Periode der K-Linie wird genanntdie unterste K-Linieperiode, die auf der Strategie-Einstellungsseite wie folgt dargestellt ist:
Hier habe ich 1 Minute eingestellt, was bedeutet, die K-Liniendaten mit einer Periode von 1 Minute als Datenquelle zu verwenden, um die simulierten Ticks zu erzeugen.
Es gibt einen weiteren Punkt, bei dem für eine Hochfrequenzstrategie der Simulations-Backtest offensichtlich nicht angemessen ist.
Wo ist die Datenquelle des FMZ Quant Backtest-Systems? Das Backtest-System verwendet standardmäßig die Daten des Dashboards auf der FMZ-Plattform. Das Dashboard von FMZ sammelt automatisch die festgelegten Marktdaten jeder Währung auf jeder Plattform und stellt sie dem Backtest-System der Plattform zur Verfügung.
Es gibt auch einige Anweisungen zur benutzerdefinierten Datenquelle in der FMZ-API-Dokumentation:Die Daten werden von den zuständigen Behörden der Mitgliedstaaten übermittelt.
Es gibt auch einige Schemata im Digest auf der FMZ-Plattform. Anfänger, die daran interessiert sind, können sich auf diese Systeme beziehen und sie studieren.
Sie können nicht programmiert und quantitativer Handel ohnestudieren, PrüfungenundDenken- Ich weiß. Es ist ineffizient, über Fragen aus dem Nichts nachzudenken.Suche nach InformationenDann...Versuchen Sie es selbst., undDenken und analysieren. Wenn das Problem nicht gelöst wird, wiederholen Sie die oben genannten Aktionen.
Aber wenn Anfänger auf Probleme stoßen, fühlen sie sich gewöhnlich:
Oh, programmierte und quantitative Strategien zu schreiben ist superschwierig! Ich bin immer noch verwirrt, selbst ich studiere es schon eine Weile! Ich will einfach aufgeben, bevor ich überhaupt anfange! Ich...
Der Einstieg in die FMZ-Plattform ist eigentlich sehr einfach und einfach. Zunächst einmal müssen Sie gut in der Suche nach Informationen sein.
Dann gibt es die Betriebsfähigkeit; mit dem Backtest-System und dem Debugging-Tool kann man leicht einen Test machen. Dies bedeutet nicht, eine komplette Strategie zu testen.
Dies ist die Tutorial-Website, auf der ich oft JS studiere:https://www.runoob.com/js/js-loop-for.html; die Website ist nicht auf JS beschränkt, und alle Arten von IT-Wissen können hier abgefragt und erlernt werden. Zum Beispiel weiß ich nicht, wie man den regulären Ausdruck von JS verwendet, was soll ich tun? Selbstverständlich sollte man zuerst nach Informationen suchen und sie dann ausprobieren!
Ich sah ein Beispiel wie dieses:Wenn ich es testen will, kann ich das Backtest-System von FMZ verwenden, um es für die Studie zu testen.
Setzen Sie eine Plattform auf das Backtest-System.
Test den folgenden Code:
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 the email address? ", " Answer:", IsEmail(strEmailAddress1))
var strEmailAddress2 = "123456789@qq.com"
Log(strEmailAddress2, " Is it the email address? ", " Answer:", IsEmail(strEmailAddress2))
}
Siehst du, was für ein wunderbares Lernmittel! Zum Beispiel, wenn ich lernen möchte, wie man die Schleiflogik der JavaScript-Sprache schreibt und es dann ausprobiert:
Nach der Reihenfolge eines Arrays drucken Sie jedes Element einer Array-Variable in einer Schleife:
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])
}
}
Fühlst du dich motiviert, sofort etwas zu lernen? Tatsächlich können Sie auf FMZ die Grundlagen von JavaScript vollständig lernen, indem Sie Operationen auf dem Backtest-System ausprobieren, während Sie die JavaScript-Tutorials ansehen. Nachdem die JavaScript-Syntax fast beherrscht ist, können Sie in die nächste Stufe eintreten, um die Plattformoberfläche tatsächlich zu verwenden, um Daten zu erhalten und zu testen.Debug-Toolauf FMZ, um echte Schnittstellenprüfungen durchzuführen. Dann müssen Sie mehr denken, Schlüsse aus einem Fall ziehen, mit Tests, Verifizierung und vergleichender Analyse usw. Das macht das Lernen und Anfangen sehr schnell.