Visuelle Programmierung war schon immer ein ambitioniertes Ziel von Softwareentwicklern, auch im Bereich des quantitativen Handels. Denn die Methode von "Was Sie sehen, ist was Sie bekommen" in der Visualisierung reduziert die technische Schwelle der Programmierentwicklung erheblich. Die Nutzer müssen sich nicht mehr mit einem Haufen langweiliger Codes auseinandersetzen, sondern nutzen ihre Fantasie und ihr logisches Denken, um sich auf das Geschäft selbst zu konzentrieren. Sie können ein Programm realisieren, das Sie wollen.
Lasst uns gemeinsam in das visuelle Programmfeld der quantitativen Handelsstrategie einsteigen!
Nachdem Sie sich beihttps://www.fmz.com, registrieren Sie Ihr Konto (wenn Sie bereits registriert sind, melden Sie sich direkt an) und klicken Sie auf: Dashboard -> Strategie -> Strategie hinzufügen.
Wir können eine erste Visualisierungsstrategie sehen. Es wird nur verwendet, um die Kontovermögensinformationen der standardmäßig konfigurierten Börse (das erste auf dem Backtest oder Roboter hinzugefügte Exchange-Objekt) auszugeben. (Siehe Abbildung unten)
Sie können das
Das Quadratwurzel-Berechnungsmodul wie dieses liefert die Berechnungsergebnisse dieses Moduls.
Wie Sie sehen können, wird der Standardwert 9 als Eingabeparameter verwendet, um die Quadratwurzel von 9 zu berechnen.
Natürlich, wenn Sie ein Variablemodul als Eingabeparameter verwenden möchten, können Sie das Variable Modul direkt in die Spannungsposition (konkave) einfügen.
Sie können sehen, dass auf der linken Seite des visuellen Bearbeitungsbereichs viele Modulklassifikationen vorhanden sind, und in jedem Klassifizierungsprojekt stehen viele visuelle Module zur Verfügung.
Es gibt 11 Kategorien.
Gebrauchsmodul:
Sie können eine Zeichenfolge im Textmodul eingeben, so dass, wenn Sie das Modul Ausgabeinformationen ausführen, der Zeichenfolgeinhalt im Textmodul gedruckt wird.
Zurückprüfung:
Wie JavaScript Sprachcode:
function main(){
Log("Hello, Blockly!")
}
Wie JavaScript Sprachcode:
function main () {
Log("WeChat Push!@")
}
In der JavaScript-Strategie führt die Hauptfunktion die Funktion
function main () {
throw "The first sentence throws an exception to stop the program!"
}
Ergebnisse der Backtests:
Im Allgemeinen wird es mehr beim Debugging verwendet. Zum Beispiel, wenn Sie möchten, dass das Programm unter bestimmten Bedingungen stoppt und zu diesem Zeitpunkt einige Daten zur Beobachtung druckt. Oder Sie können ein Ausnahme-Modul in den Code-Flow platzieren, wo Probleme auftreten können, lassen Sie das Programm Fehler melden und einige Fehler finden.
Wie in JavaScript Strategie:
function main () {
Sleep(1000 * 5)
}
Testen Sie das Schlafmodul:
Ergebnisse der Backtests:
Dieses Modul, genau wie die API-Funktion LogProfit auf der FMZ Quant Trading Platform, druckt das Renditenprotokoll und zeichnet die Renditenkurve automatisch nach den Eingabeparametern.
Zum Beispiel:Die Durchführung des Backtesting ist in der folgenden Abbildung dargestellt:
Der entsprechende JavaScript-Strategiecode lautet wie folgt:
function main () {
LogProfit(1)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(3)
Sleep(1000 * 5)
LogProfit(2)
Sleep(1000 * 5)
LogProfit(5)
}
Es kann an jeder Position zusammengefügt werden, wo Sie die Rückgabeinformationen ausführen möchten.
Prüfung:Ergebnisse der Backtests:
Wir können sehen, dass die Modulkombination, bestehend aus
Ausführung der Schleife alle N SekundenDie Verwendung dieses Moduls ist im Grunde die gleiche wie die des Schleifmoduls. Der einzige Unterschied besteht darin, dass das Modul seinen eigenen Schlaf hat.
PräzisionsbearbeitungDieses Modul kann verwendet werden, wenn das Variable Modul oder der numerische Wert die Präzision steuern muss. Der numerische Wert des Eingabeparameterteils wird gemäß den Einstellungen als numerischer Wert des angegebenen Dezimalpunktes ausgegeben.
So wird beispielsweise eine Präzisionsverarbeitung am Wert 3.1415926535897 durchgeführt.
Anzeige für die Rückprüfung:
Es wird verwendet, um Protokolle zu löschen. Einige Protokolle können entsprechend den Eingabeparametern gespeichert werden. Wie im API-Dokument:
LogReset()
Es wird verwendet, um das Rückmeldprotokoll zu löschen. Einige Protokolle können entsprechend den Eingabeparametern gespeichert werden. Wie im API-Dokument:
LogProfitReset()
Wie JavaScript-Strategie-Code:
function main () {
Log(exchange.GetTicker().Last)
}
Zuerst erstellen wir ein variables Modul namens K-Line.Dann erhalten wir die K-Liniendaten, verwenden das K-Liniendatenmodul, um es zu erhalten, und weisen dem Variablenmodul den Wert zu:
Der Zeitstempel der letzten K-Linie wird gedruckt, wenn der Backtest ausgeführt wird.
Wie JavaScript-Strategie-Code:
function main () {
Log(exchange.GetDepth().Asks[0])
}
Wie JavaScript-Strategie-Code:
function main () {
Log(exchange.GetAccount().Stocks)
}
Ergebnisse der Backtests:
Wie JavaScript-Strategie-Code:
function main () {
Log(exchange.GetDepth().Asks[0].Price)
}
Es kann auch verwendet werden, um ein Attribut in der von dem
Da wir so viel gelernt haben, lassen Sie uns eine Absicherungsoperation kombinieren, d. h. sowohl kurzfristige als auch Terminkontrakte absichern.
Wir machen eine positive Arbitrage Absicherung, das heißt, öffnen Sie einen Short-Position-Kontrakt für den Forward-Kontrakt, und öffnen Sie einen Long-Position-Kontrakt für den jüngsten Vertrag.
Ergebnisse der Backtests:
Beispiele für Visualisierungsstrategien:
https://www.fmz.com/strategy/121404 https://www.fmz.com/strategy/129895 https://www.fmz.com/strategy/123904 https://www.fmz.com/strategy/122318Weitere Strategien finden Sie unter:https://www.fmz.com/square
Andere Artikel dieser Reihe
-Visualisierungsmodul für den Aufbau von Handelsstrategien (https://www.fmz.com/digest-topic/9509) - Visualisierungsmodul zur Entwicklung einer Handelsstrategie - Fortgeschrittenes Verständnis (https://www.fmz.com/bbs-topic/9815)
Die langweilige Programmierung kann leicht durch Bausteine abgeschlossen werden.