Die Erfinder der quantitativen HandelsplattformenDas StrategieplatzEs gibt eine Menge interessanter Strategien, die man damals anhand von virtuellen Währungsaustauschs praktizierte.rest
Die API-Schnittstellen der Protokolle, viele Strategien basieren aufrest
In den letzten Jahren haben sich einige Börsen auch in den letzten Jahren entwickelt.rest
Ein Interface-Fehler, der die Politik unbrauchbar macht.websocket
Die 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?websocket
Was ist mit der Kommunikationsoberfläche?
Hier zeigt sich die große Flexibilität der Quantitative Trading Plattformen der Erfinder.
exchange.GetTicker
Die 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.websocket
Die Daten-Antriebe, die von der Geschäftsoberfläche getrieben werden, werden ausgeführt.
Verwendung von ProgrammiersprachenJavaScript
Die Sprache.
Zum Beispiel wollen wir eine alte, klassische Strategie ändern: "Eisbrecher".
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.ticker
In den DatenBuy
、Sell
、Last
Diese Eigenschaftenticker
Die Daten stammen von einer API-Funktion der FMZ-Plattform:exchange.GetTicker
Wir haben die Möglichkeit, diese Art von Kommunikation zu nutzen.exchange.GetTicker
FunktionenHook
Die 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.
init
Kooperation von FunktionenWir haben eine "Template-Klasse-Bibliothek" erstellt, die wir nennen:Nahtloses KNOWSDas ist ein sehr schwieriger Fall.
Dann geben SieNahtloses KNOWSDie Vorlage setzt zwei Parameter ein.
Es wird verwendet, um zu steuern, ob es eingeschaltet wird.websocket
Interface-Funktionen, die eine spezifische Branchen-Interface steuern.exchange.GetTicker
Die Schnittstelle ist für die Hook-Operation vorgesehen.GetTicker
Die 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.websocket
Sie können die Funktionscodes von SeamlessConnectWWS (sofern öffentlich zugänglich) und der API-Dokumentation nachlesen. Sie müssen sich die Template ansehen.init
Funktionen 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.websocket
Die Transaktionsschnittstelle ist die Währung für Bargeld und Token für Bargeld.init
Die Funktion ist dazu da, die Icebreaker-Strategie zu zitieren.Nahtloses KNOWSNach der Vorlage, wenn die Festplatte läuft, wird zuerst ausgeführtinit
Funktionen, die automatisch geschaltet werden könnenexchange.GetTicker
Funktionsinhalte werden für Nutzung verwendetwebsocket
Die Code-Implementierung der Schnittstelle ermöglicht eine nahtlose Verknüpfungwebsocket
Ich bin nicht derjenige, der das tut.
SeamlessConnWS-Template-Adresse
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:
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.Das ist nicht wahr. EröffnenNahtloses KNOWSDie Kontrollparameter in der Vorlage.
Wir haben es geschafft:
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.
Der Roboter-Log zeigt:
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.GetTicker
Eine Erklärung der Strategien für die Brancheninterface-Funktion, andere Brancheninterfaces wieexchange.GetDepth
、exchange.GetTrades
、exchange.GetRecords
Das ist die gleiche Methode.Nahtloses KNOWSDas ist ein großes Problem.
Links zu bestimmten Templateswebsocket
Die Implementierung und NutzungDial
Funktionen (siehe API-Dokumentation Dial-Funktion), die je nach Bedarf angepasst werden können.read()
Funktionsparameter-2
Das heißt, nur zurück.websocket
Die neuesten Daten in der Bufferzone der Datenanbindung.
Danke fürs Lesen.
- 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.