Die Quantitative Währungsrunde sieht neu aus - bringt Sie näher an die Quantitative Währungsrunde.

Schriftsteller:Kleine Träume, Erstellt: 2021-05-06 11:20:04, aktualisiert: 2023-09-21 21:03:14

img

Die Münzkreis-Quantifizierung von Transaktionen ist neu und bringt Sie näher an die Münzkreis-Quantifizierung.

Fehlermeldung

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.

    img

    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.

    imgAlso, 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.

    img

    img

    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_YIn 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_USDTWenn ich die Transaktion falsch schreibe, dann schreibe ich:BTC-USDT

    img

    Ein Fehler wurde in einem Feedback-System der FMZ-Plattform gemeldet:

    img

    Ein Fehler auf der Echtplatte:

    img

    Dazu kommt ein Fehler, den Deng Xiaoping oft macht:

    https://www.fmz.comimg

    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 KEYFehlschlag (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 erzeugtAnschlü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

      img

      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

      https://www.fmz.comimg

      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 KEYOder 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.

      img

      Es gibt keinen Unterschied zwischen Debugging-Tool-Ausführung, Debugging-Tool-Ausführung und Festplatten-Ausführung.img

      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.:

      img

      Aber es gibt auch Fehler bei der Übermittlung von Parametern oder bei der Fehlschreibung.

      img

    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: err msg: ungültiges Symbol . Vermutlich weiß man, dass das Transaktionspaar falsch eingestellt ist, da es normalerweise mit einem englischen Symbol für den Transaktionscode, das Transaktionspaar, steht. In Bezug auf Fehlermeldungen gehen wir nur auf diese Punkte ein, und ein Beitrag zu den häufigsten Fragen wird ständig gesammelt, um nachzufragen:https://www.fmz.com/bbs-topic/1427

Wiederholungssystem

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.

img

Die Anleitung zu den Rückprüfsystemen finden Sie in den Tutorials der Plattform:

https://www.fmz.com/bbs-topic/4158#策略回测

  • 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.comimgNatü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.

    imgHier 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:

    img

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.

    img

    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:img

    Wer Interesse hat, kann sich für Referenzen interessieren.

Lernen, testen, denken

Sie müssen sich mit dem Thema beschäftigen und sich mit dem Thema beschäftigen.LernenTestsDenkenIch 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.

img

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:imgIch möchte es testen und kann sogar mit dem FMZ-Retest-System lernen.

Es ist einfach, eine Börse auf dem Retest-System einzurichten.img

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))
}

img

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])
    }
}

img

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.


Verwandt

Mehr

SchädelLobpreisen