In den letzten Artikeln haben wir bereits erfahren, dass die sogenannte programmatisierte, quantitative Transaktion ein Skriptprogramm ist, das eine Reihe von Operationen durchführt, um die Transaktionskonten zu handhaben. Diese Aktionen werden über die API-Schnittstelle der Börse durchgeführt. Einfach gesagt, es handelt sich um die Interaktion zwischen dem Skript und der Börse.
Selbstverständlich gibt es bei Programmier-, Quantitative-Trading-Systemen oder selbst entwickelten Programmen auf dem Markt eine Vielzahl von Fehlerhinweisen und Fehlermeldungen. Diese Fehlermeldungen beschränken sich nicht nur auf die Fehlermeldungen der API-Schnittstellen der Börse. Es gibt auch Fehler, die bei der Ausführung des Programms außergewöhnlich sind, Konfigurationsfehler, Programmierfehler, Syntaxfehler usw.
Auf der Inventor Quantitative Trading Plattform werden Fehler in verschiedene Kategorien eingeteilt:
Strategische Grammatikfehler Diese Fehler treten häufig auf, weil ein Neuling nicht mit Programmieren vertraut ist, und wenn er in der Testphase Code lernt, wird er durch eine grammatikalische Fehlerstellung verursacht.
Der Code schreibt weniger Zeichen, wie z.B. Klammern. Solche Fehler zeigen sich oft auf der Seite der Bearbeitungsrichtlinien als Fehlerhinweise, und die Politik kann nicht ausgeführt werden.
Also, wenn Sie die Strategie geschrieben haben, werfen Sie einen Blick auf die gewohnte Strategie-Bearbeitung auf der Plattformseite, um zu sehen, ob es ein rotes kleines XX gibt.
Laufzeitprobleme, verursacht durch ein Programm-BUG Es gibt BUGs, die bei Ausführung des Programms auftreten, wenn ein Fehler ausgelöst wird, der dazu führt, dass das Programm abstürzt.
Solche Fehler führen zu Programmausfällen, die das Programm zum Stillstand bringen.
Fehler, die durch falsche Konfiguration und Einstellungen verursacht werden
Auf der FMZ-Plattform werden Transaktionen allgemein alsX_Y
In diesem Format steht X für den Namen der Währung, Y für den Namen der Preissteuerung (die Preissteuerung für die an Ort und Stelle getätigte Währung wird in USD angegeben, wie in den vorherigen Artikeln beschrieben).BTC_USDT
Wenn ich die Transaktion falsch schreibe, dann schreibe ich:BTC-USDT
。
Ein Fehler wurde in einem Feedback-System der FMZ-Plattform gemeldet:
Ein Fehler auf der Echtplatte:
Dazu kommt ein Fehler, den Deng Xiaoping oft macht:
Solche Fehler entstehen durch eine Änderung des Passworts eines FMZ-Plattform-Kontos, was dazu führt, dass die konfigurierten Austauschobjekte in einem anderen Konto gespeichert werden.API KEY
Fehlschlag (der Benutzer API KEY wurde in der FMZ-Plattform konfiguriert, nachdem er am Browser-End verschlüsselt wurde), die Politik konnte nicht gestartet werden, was einen Fehler auslöste.
Fehler beim Anrufen der Schnittstelle
Interface-Call-Fehler werden häufig bei der Ausführung von Strategien gemeldet, und in früheren Artikeln haben wir gelernt, wie die Interfaces auf der FMZ-Plattform unterteilt werden können.Die Schnittstelle, die die Netzwerkanfragen erzeugt、Anschlüsse, die keine Netzwerkanfragen erzeugenInterface-Fehlermeldungen führen nicht dazu, dass ein Programm zum Stillstand kommt, meistens aufgrund eines Interface-Aufruf-Ausfalls, der falsche Daten zurückgibt, und dann die Politik keine Fehlermeldungen macht. Ein Programm-Ausfall, der von falschen Daten ausgelöst wurde, führt dazu, dass ein Programm zum Stillstand kommt.
Hier sind einige Fehlermeldungen, die die Anfrage erzeugen:
Überstunden im Netz
Eine der häufigsten Fehlermeldungen für Anfänger ist, dass sie ein Gerät im nationalen Netzwerk (einen eigenen Computer oder einen lokalen Server) verwenden. Da die meisten Börsen von einer Mauer abgedeckt sind, sind die meisten Börsen im nationalen Netzwerk grundsätzlich nicht zugänglich und die Zugriffs-Schnittstellen werden überholt.
http 429 Fehler
Einer der klassischen Fehlermeldungen ist, dass die Anrufe an die Interface der Börse zu häufig sind, um die Grenzen der Börse zu überschreiten.
Einige meiner Neuling-Kollegen werden vielleicht sagen, dass ich mehr für ein paar Börsen beantragt habe, als für ein paar.API KEY
Oder ich habe mehrere Konten angefordert, die nicht funktionieren. Wir müssen wissen, dass die Frequenz der Anschlussbeschränkung der Börse in der Regel auf der Grundlage der IP-Adresse basiert. Einfach ausgedrückt, wenn alle Anfragen, die an eine IP-Adresse gesendet werden, auf dieser IP-Adresse verbucht werden, wird der Anfrage-Server den Zugang verweigert, wenn die Beschränkung überschritten wird.
Fehler bei der Börseninterface
Die oben erwähnten Timeouts, 429 sind Netzwerkausfälle. Auch Probleme auf der Business-Level der Austauschoberfläche werden berichtet, z. B. dass ich eine Bargeld-Marke erhalten möchte, aber ich ein nicht existierendes Transaktionspaar eingerichtet habe.
Es gibt keinen Unterschied zwischen Debugging-Tool-Ausführung, Debugging-Tool-Ausführung und Festplatten-Ausführung.
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}
Die Fehlermeldung hier bedeutet, dass die Transaktion ungültig ist (siehe hier)."err-msg":"invalid symbol"
Ich bin nicht derjenige.
Es gibt viele andere Beispiele für solche und geschäftliche Fehler, wie zum Beispiel, dass einige Börsen bei der Einstellung von Leverage keine Leverage-Werte mit Komma-Teilen unterstützen, was zu einem Anruffehler führt, wenn der Leverage-Wert mit Komma-Teilen ist.
Liste eines Interface-Aufrufs, der keine Netzwerkanfragen erzeugt
Setzen Sie den Futures-Contract-Code Einige Schnittstellen setzen nur bestimmte globale Variablen in das System ein, die keine Netzwerkanfragen erzeugen, z. B.:
Aber es gibt auch Fehler bei der Übermittlung von Parametern oder bei der Fehlschreibung.
Aber unabhängig von der Art des Fehlers sind die angezeigten Fehlermeldungen die wichtigsten Informationen, um nach Problemen zu suchen, und es ist normalerweise möglich, aus den Fehlermeldungen herauszufinden, wo sich das Problem befindet."err-msg":"invalid symbol"
Übersetzt:
Das Retest-System ist auch ein Schwerpunkt eines Quantifizierungswerkzeugs, das eine einfache Prototypisierung der Teststrategie, potenzielle BUGs, Logikprobleme in der ersten Teststrategie usw. ermöglicht.
Im Folgenden finden Sie eine einfache Beschreibung der verschiedenen Strategie-Sprachen, die von FMZ unterstützt werden.
JavaScript
Die Browser-End-Rückmeldung wird mit den Hardware-Ressourcen des Browsers durchgeführt.
Python
Bei der Überprüfung durch den Host kann gewählt werden, welchem Host speziell zugewiesen werden soll (sowohl der von ihm bereitgestellte Host als auch der öffentliche Host der FMZ-Plattform). Da der öffentliche Host auf der FMZ-Plattform eine hohe Belastung hat, wird empfohlen, die Überprüfung durch den eigenen Host zu verwenden. Dies ist auch schneller.
C++
Im Gegensatz zu Skriptsprachen müssen C++-Strategien zuerst kompiliert und dann ausgeführt werden. C++-Strategien werden zuerst auf der FMZ-Plattform (Server) kompiliert.
Maisch Sprache
Die Basisimplementierung ist JavaScript, die auch auf der Browserseite getestet wird.
Visualisierung
Die Basisimplementierung ist JavaScript, die auch auf der Browserseite getestet wird.
Der Erfinder der Quantifizierung der Handelsplattform ist der Erfinder des Quantifizierungssystems. Der Quantifizierungsmodell ist in zwei Arten unterteilt.
Die Anleitung zu den Rückprüfsystemen finden Sie in den Tutorials der Plattform:
1. Analog-Level-Rückmessung Analog-Level-Rückmessung ist im Allgemeinen die Preisdaten, die anhand von K-Liniendaten an einzelnen Zeitknoten generiert werden.
K线中一根柱子不是有高开低收么,构成了一个价格框架,在这个K线代表的时间范围内,价格都在这个价格框架内,所以只要生成的价格在这个K线高开低收框架范围内,这个模拟出来的价格就是合理的。
Das ist ein Beispiel für eine Simulation wie diese:https://www.fmz.comNatürlich ist die Situation bei der Realisierung dieser Simulation ein wenig komplizierter als in der Abbildung. Mit diesem Prinzip ist man auf die Nachteile von Analog-Level-Rückmeldungen aufmerksam, obwohl die Analog-Level-Rückmeldung schnell ist (weil die von der Analogie erzeugten Preise nicht die wahren Sekundenpreise sind, die einzeln ausgegeben werden), aber wenn die Strategie passt.Simulierte Tic-VeränderungDas ist eine sehr gute Strategie, aber in der Praxis ist der Preis vielleicht nicht so, obwohl der Preis im Rahmen dieser K-Säule liegt. Die K-Linie, die hier verwendet wird, um analoge Ticks zu erzeugen, nennt sich die Unter-K-Linie, und die Periode dieser K-Linie heißtUnteren K-Linien-ZyklusDas ist eine sehr schwierige Sache, aber es gibt viele Möglichkeiten, wie Sie das tun können.
Hier ist 1 Minute gesetzt, was bedeutet, dass die K-Liniendaten mit einer Periode von 1 Minute als Datenquelle verwendet werden, um analoge Ticks zu erzeugen.
Ein weiterer Punkt ist, dass die Verwendung von Analog-Level-Rückmessungen für Hochfrequenzstrategien offensichtlich nicht geeignet ist.
2, Wiederholung auf dem Plattenebene Wir sprechen von analogen Rückprüfungen, und wir sprechen von echten Rückprüfungen. Einfach gesagt, ist die reale Rückprüfungen die tatsächliche Ausgabe von Preisen pro Sekunde. Die Strategie kann die Preise pro Sekunde in den Märkten zurückverfolgen. Der Nachteil ist, dass die Datenmenge auf dem Festplattenniveau zu groß ist, um eine größere Zeitspanne (normalerweise weniger als 1 Tag) zu überprüfen.Die DatenDie Verringerung der Tiefendatenklasse (Transaktionsdaten pro Stück, die Tellertiefendaten sind auch Sekunden-Snapshots in der Teller-Level-Rückmessung enthalten, so dass die Teller-Level-Rückmessungsdatenmasse groß ist), um den Rückmessungsbereich angemessen zu erhöhen, wie in Abbildung:
Wo ist die Datenquelle für das Quantifizierungssystem der Erfinder? Das Quantifizierungssystem verwendet standardmäßig Daten aus dem Datenzentrum der FMZ-Plattform, das automatisch Marktdaten für die verschiedenen Währungen der verschiedenen Börsen sammelt, die für das Quantifizierungssystem auf der Plattform bereitgestellt werden.
1. Daten zum FMZ-Rechenzentrum In früheren Artikeln wurde erwähnt:https://www.fmz.com/bbs-topic/6857#量化交易平台Die von der Plattform bereitgestellten Rückkopplungsdaten unterstützen nur eine begrenzte Anzahl von Paaren ("Die Rückkopplungsdaten für alle Märkte und Währungen sind astronomische Zahlen, die nicht alle realistisch gesammelt werden. Die Plattform sammelt Marktdaten für die Mainstream-Börsen und Mainstream-Währungen").
2. Verwenden Sie benutzerdefinierte Datenquellen Mit den Optionen auf der Retweet-Seite können Sie eine benutzerdefinierte Datenquelle festlegen. Einfach gesagt, wenn Sie Daten von einer Börse haben, können Sie die Retweet-Systeme der FMZ-Plattform gemäß den Formatanforderungen der FMZ-Plattform zur Verfügung stellen, um sie zu überprüfen.
Die FMZ-API-Dokumentation enthält auch einige Hinweise auf die benutzerdefinierten Datenquellen:https://www.fmz.com/api#自定义数据源
Das FMZ-Dokumentarium bietet auch einige Programme:
Wer Interesse hat, kann sich für Referenzen interessieren.
Sie müssen sich mit dem Thema beschäftigen und sich mit dem Thema beschäftigen.Lernen、Tests、DenkenIch bin nicht derjenige. Es ist unwirksam, Probleme zu denken, denn man kann nicht einfach nur denken. Probleme zu lösen, Probleme zu denken, ist am effektivsten, wenn man sich mit dem Problem beschäftigt.Suche nach InformationenUnd dannVersuchen Sie es.、Denken und AnalysierenWenn das Problem nicht gelöst ist, gehen Sie weiter.
Aber normalerweise fühlt man sich, wenn man Probleme hat:
Das ist eine sehr schwierige Aufgabe, zu programmieren, zu quantifizieren und Strategien zu schreiben. Ich habe einen halben Tag lang gesehen, und ich bin total verrückt! Ich bin nicht in der Lage, es aufzugeben! Ich bin nicht derjenige.
Die Einführung auf der FMZ-Plattform ist sehr einfach. Zunächst müssen Sie sich mit Informationen vertraut machen.
Dann ist die Fähigkeit, manuell zu testen, mit einem Rückrufsystem, Debugger-Tools kann sehr praktisch sein, hier geht es nicht darum, eine vollständige Strategie zu testen.
Das ist eine Tutorial-Website, auf der ich JS regelmäßig lerne:https://www.runoob.com/js/js-loop-for.htmlNicht nur für JS, sondern auch für alle Arten von IT-Wissen können Sie hier nachfragen und lernen. Ich weiß nicht, wie man ein reguläres Ausdruck in JS benutzt. Natürlich sollten Sie sich die Informationen anschauen, und dann versuchen Sie es mit Ihren Händen.
Ich sehe ein Beispiel:Ich möchte es testen und kann sogar mit dem FMZ-Retest-System lernen.
Es ist einfach, eine Börse auf dem Retest-System einzurichten.
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, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress1))
var strEmailAddress2 = "123456789@qq.com"
Log(strEmailAddress2, " 是邮件地址么 ? ", " 回答:", IsEmail(strEmailAddress2))
}
Schau mal, was für ein tolles Lernmittel! Ich möchte zum Beispiel lernen, wie man die Loop-Logik in der JavaScript-Sprache schreibt.
Die Schleife druckt die einzelnen Elemente einer Arithmetikvariable in der folgenden Reihenfolge aus:
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])
}
}
Ist es ein Moment, in dem man sich motiviert fühlt, zu lernen? In der Tat kann man auf FMZ JavaScript-Tutorials lesen und die Grundlagen von JavaScript selbst lernen. Die JavaScript-Symmetrie ist fast gemeistert.Debugging-ToolsWir haben eine Reihe von Programmen entwickelt, um die Benutzer zu unterstützen.
Dann muss man mehr nachdenken, ein gegen drei, Tests, Verifikationen, Vergleichs-Analysen usw. machen.
SchädelLobpreisen