Die Ressourcen sind geladen. Beförderung...

Handshake lehrt Sie, wie man eine alte Strategie, eine nahtlose Pairing-Websocket-Markt-Schnittstelle gibt

Schriftsteller:Die Erfinder quantifizieren - Kleine Träume, Erstellt: 2019-09-26 15:47:53, Aktualisiert: 2024-12-17 20:38:08

手把手教你如何给一个老旧策略无缝对接websocket行情接口

Handshake lehrt Sie, wie man eine alte Strategie, eine nahtlose Pairing-Websocket-Markt-Schnittstelle gibt

Die Erfinder der quantitativen HandelsplattformenDas StrategieplatzEs gibt eine Menge interessanter Strategien, die man damals anhand von virtuellen Währungsaustauschs praktizierte.restDie API-Schnittstellen der Protokolle, viele Strategien basieren aufrestIn den letzten Jahren haben sich einige Börsen auch in den letzten Jahren entwickelt.restEin Interface-Fehler, der die Politik unbrauchbar macht.websocketDie Unterstützung der Schnittstelle erfordert eine gewisse Veränderung des Strategiekodes, die in der Regel viel schwieriger ist (die Änderung der Politik ist viel schwieriger als das Neuschreiben). Wie kann man seine Strategie nicht ändern, aber sie trotzdem nutzen?websocketWas ist mit der Kommunikationsoberfläche? Hier zeigt sich die große Flexibilität der Quantitative Trading Plattformen der Erfinder. - 1. Verwenden Sie die "Template-Klasse-Library"-Politik. - Zwei, ja.exchange.GetTickerDie Funktion Hook wird von der Funktion Hook abgerufen.

Das bedeutet, dass man die Strategie ohne eine Codezeile zu verändern, um die Strategie zu ändern.websocketDie Daten-Antriebe, die von der Geschäftsoberfläche getrieben werden, werden ausgeführt. Verwendung von ProgrammiersprachenJavaScriptDie Sprache.

Analyse-Strategien

Zum Beispiel wollen wir eine alte, klassische Strategie ändern: "Eisbrecher".

Strategische Adresse

Wir schauen uns zunächst den Code der Strategie an und sehen, dass diese Strategie von der Ticket-Markt getrieben wird, die hauptsächlich von den US-amerikanischen Anbietern verwendet wird.tickerIn den DatenBuySellLastDiese EigenschaftentickerDie Daten stammen von einer API-Funktion der FMZ-Plattform:exchange.GetTickerWir haben die Möglichkeit, diese Art von Kommunikation zu nutzen.exchange.GetTickerFunktionenHookDie Funktion (d.h. das Umschreiben in eine andere Version und deren Ersatz) ist möglich. Aber wir können es nicht in der Icebreaker-Strategie umschreiben, weil das die Strategie beeinflussen würde, wir wollen eine nahtlose Verbindung! Ich habe eine Frage, die ich mir nicht stellen kann.

Die Funktionen der "Template Library" undinitKooperation von Funktionen

Wir haben eine "Template-Klasse-Bibliothek" erstellt, die wir nennen:Nahtloses KNOWSDas ist ein sehr schwieriger Fall.

手把手教你如何给一个老旧策略无缝对接websocket行情接口

Dann geben SieNahtloses KNOWSDie Vorlage setzt zwei Parameter ein. - IsUsedWebSocket - Hook_GetTicker@IsUsedWebSocket

手把手教你如何给一个老旧策略无缝对接websocket行情接口

Es wird verwendet, um zu steuern, ob es eingeschaltet wird.websocketInterface-Funktionen, die eine spezifische Branchen-Interface steuern.exchange.GetTickerDie Schnittstelle ist für die Hook-Operation vorgesehen.GetTickerDie Schnittstelle ist ein Kontrollparameter im Websocket-Modus: Hook_GetTicker.

Die Vorlage ist erstellt, und Sie können in der Vorlage spezifische Anschlüsse auf die Börse schreiben.websocketSie können die Funktionscodes von SeamlessConnectWWS (sofern öffentlich zugänglich) und der API-Dokumentation nachlesen. Sie müssen sich die Template ansehen.initFunktionen und globale Variablen_DictConnectCreater_ConnMap

Der Code:

var _DictConnectCreater = {
    "Huobi" : WSConnecter_Huobi,
    "Binance" : WSConnecter_Binance,
}

var _ConnMap = {}

function init () {
    if (IsUsedWebSocket) {
        var connectCreater = null
        if (exchanges.length != 1) {
            Log("切换为ws接口只针对 exchange 交易所对象(即第一个添加的交易所对象)")
        }
        var isFound = false 
        for (var name in _DictConnectCreater) {
            if (exchange.GetName() == name) {
                connectCreater = _DictConnectCreater[name]
                isFound = true
            }
        }

        if (!isFound) {
            throw "没有找到实现"
        }
        
        if (Hook_GetTicker) {
            var symbol = exchange.GetCurrency()
            _ConnMap.GetTicker = connectCreater("GetTicker", symbol)
            exchange.GetTicker = function () {
                return _C(_ConnMap.GetTicker.Read)
            }
        }
        // ... 
        
    }
}

Sie können sehen, dass diese Vorlage nur zwei Börsen umsetzt.websocketDie Transaktionsschnittstelle ist die Währung für Bargeld und Token für Bargeld.initDie Funktion ist dazu da, die Icebreaker-Strategie zu zitieren.Nahtloses KNOWSNach der Vorlage, wenn die Festplatte läuft, wird zuerst ausgeführtinitFunktionen, die automatisch geschaltet werden könnenexchange.GetTickerFunktionsinhalte werden für Nutzung verwendetwebsocketDie Code-Implementierung der Schnittstelle ermöglicht eine nahtlose VerknüpfungwebsocketIch bin nicht derjenige, der das tut.

SeamlessConnWS-Template-Adresse

Wie man sie nutzt

Es ist ganz einfach!Nahtloses KNOWSNach dem Kopieren der Vorlage in die eigene Politikbücherei können Sie nur auf die "Eisbrecher"-Strategie verweisen, wie hier:

手把手教你如何给一个老旧策略无缝对接websocket行情接口

Sie können es einfach auswählen, speichern und so weiter.

Die Strategie des "Eisbrechers" ist es, einen Roboter auf der Tischplatte zu erstellen, und die Börse wählt Binance.手把手教你如何给一个老旧策略无缝对接websocket行情接口Das ist nicht wahr. EröffnenNahtloses KNOWSDie Kontrollparameter in der Vorlage.手把手教你如何给一个老旧策略无缝对接websocket行情接口

Wir haben es geschafft:手把手教你如何给一个老旧策略无缝对接websocket行情接口

Um Ihnen die Daten zu erleichtern, die von den Börsen gesendet werden, habe ich speziell 157 Zeilen Code hinzugefügt, um die Daten der Börsen zu produzieren.手把手教你如何给一个老旧策略无缝对接websocket行情接口

Der Roboter-Log zeigt:手把手教你如何给一个老旧策略无缝对接websocket行情接口

Dies ermöglicht eine nahtlose Verknüpfung von Websocket-Markt-Interfaces und Strategien, ohne dass eine Linie von Policy-Code geändert wird.

Dies ist nur für den Einsatzexchange.GetTickerEine Erklärung der Strategien für die Brancheninterface-Funktion, andere Brancheninterfaces wieexchange.GetDepthexchange.GetTradesexchange.GetRecordsDas ist die gleiche Methode.Nahtloses KNOWSDas ist ein großes Problem.

Links zu bestimmten TemplateswebsocketDie Implementierung und NutzungDialFunktionen (siehe API-Dokumentation Dial-Funktion), die je nach Bedarf angepasst werden können.read()Funktionsparameter-2Das heißt, nur zurück.websocketDie neuesten Daten in der Bufferzone der Datenanbindung.

Danke fürs Lesen.


Inhalte dazu

Weitere Informationen

- Das ist nicht wahr.Monk, gibt es noch eine Python-Version?

Auch die BrautDas ist eine gute Sache, die früher geteilt werden sollte.

Die Erfinder quantifizieren - Kleine TräumeDas ist gut, danke für die Tipps.