Visualisierungsmodul zum Aufbau einer Handelsstrategie - Erste Bekanntschaft

Schriftsteller:Lydia., Erstellt: 2022-12-12 16:50:29, Aktualisiert: 2023-09-20 09:44:29

img

Visualisierungsmodul zum Aufbau einer Handelsstrategie - Erste Bekanntschaft

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!

Visuelle Programmierung des ersten FMZ Quant

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.

img

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)

img

Bevor wir anfangen zu lernen, wie man Visualisierung verwendet, können wir einige Designkonzepte der Visualisierung verstehen.

  1. Spaltung Wenn man genau hinschaut, sieht man, dass die Module eine Spannung (konkave) und eine Verformung (konvexe) aufweisen, d.h. die Module können verknüpfen und verknüpft werden. Wenn zwei Module funktionelle Codes darstellen, die miteinander verbunden werden können, werden die Spannzähne und Schrauben der beiden Module zusammengezogen, wenn Sie sie nahe bringen.

img

  1. Einstellung und Einstellung des Moduls Einige Module verfügen über spezielle Einstellbereiche, z. B.:

img

Sie können das Item Modul auf der linken Seite zum Add Modul ziehen, so dass Sie eine Konkavenposition hinzufügen können, wodurch eine Position zum Spleißen von Text hinzugefügt wird. Auf diese Weise klicken Sie auf den Pinien, um das Modul einzustellen.

  1. Standardeingabeparameter des Moduls Einige Module müssen einige Parameter eingeben, die numerische Werte oder Zeichenfolgen sein können. Wenn Sie keine Variablen als Eingabeparameter des Moduls hinzufügen, wird das Modul nach den Standard-Eingabeparametern ausgeführt.

img

Das Quadratwurzel-Berechnungsmodul wie dieses liefert die Berechnungsergebnisse dieses Moduls.

img

Wie Sie sehen können, wird der Standardwert 9 als Eingabeparameter verwendet, um die Quadratwurzel von 9 zu berechnen.

img

Natürlich, wenn Sie ein Variablemodul als Eingabeparameter verwenden möchten, können Sie das Variable Modul direkt in die Spannungsposition (konkave) einfügen.

img

  1. Betrieb Das Modul kann mit der linken Maustaste geklickt und gezogen werden. Module können mit ctrl+c kopiert und mit ctrl+v eingefügt werden, genauso praktisch wie das Kopieren und Einfügen von Code oder Text. Der Betriebsbereich kann mit dem Mausrad vergrößert werden, und alle Module werden größer oder kleiner vergrößert. Klicken und ziehen Sie die leere Position im Betriebsbereich, um den Betriebsbereich zu verschieben. Der Papierkorb auf der rechten Seite speichert die kürzlich gelöschten Module. Das Wichtigste ist, dass Sie nach dem Spleißen der Modulstrategie nicht vergessen, auf Save zu klicken.

Einführung in das Visualisierungswerkzeugmodul

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.

img

Gebrauchsmodul:

img img img

  1. Ausgabeinformationen: Dieses Modul wird in der Regel zusammen mit dem Modul der Textklasse verwendet, wie unten gezeigt:

img

Sie können eine Zeichenfolge im Textmodul eingeben, so dass, wenn Sie das Modul Ausgabeinformationen ausführen, der Zeichenfolgeinhalt im Textmodul gedruckt wird.

img

Zurückprüfung:

img img

Wie JavaScript Sprachcode:

function main(){
    Log("Hello, Blockly!")
}
  1. WeChat push: Dieses Modul hat das gleiche Erscheinungsbild wie die output information, die sich von der unterscheidet, die Informationen gleichzeitig an das Girokonto gebunden an WeChat schickt.

img

Wie JavaScript Sprachcode:

function main () {
Log("WeChat Push!@")
}
  1. Ausnahme werfen Das Werfen des Ausnahme-Moduls verursacht einen Fehler, und dann stoppt das Programm die Ausführung (ohne den Ausnahme-Handling-Code zu schreiben).

img

In der JavaScript-Strategie führt die Hauptfunktion die Funktion string to output direkt aus.

function main () {
    throw "The first sentence throws an exception to stop the program!"
}

Ergebnisse der Backtests:

img img

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.

  1. Schlaf Schlafmodul

img

Wie in JavaScript Strategie:

function main () {
    Sleep(1000 * 5)
}

Testen Sie das Schlafmodul:

img

Ergebnisse der Backtests:

img

  1. Druckrückkehr

img

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:imgDie Durchführung des Backtesting ist in der folgenden Abbildung dargestellt:

img

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.

  1. SchleifeimgDas Loop-Modul kann eine Reihe von verschmolzenen Modulkombinationen einwickeln, sodass die Modulkombinationen die Schleife ausführen können.

Prüfung:imgErgebnisse der Backtests:

img

Wir können sehen, dass die Modulkombination, bestehend aus print returns und sleep, kontinuierlich ausgeführt wird, nachdem das Loop-Modul gewickelt wurde.

  1. Ausführung der Schleife alle N SekundenimgDie Verwendung dieses Moduls ist im Grunde die gleiche wie die des Schleifmoduls. Der einzige Unterschied besteht darin, dass das Modul seinen eigenen Schlaf hat.img

  2. PräzisionsbearbeitungimgDieses 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.

img

Anzeige für die Rückprüfung:

img

  1. Registrierungsprotokoll löschenimg

Es wird verwendet, um Protokolle zu löschen. Einige Protokolle können entsprechend den Eingabeparametern gespeichert werden. Wie im API-Dokument:

LogReset()
  1. Löschen Sie das Rückmeldprotokollimg

Es wird verwendet, um das Rückmeldprotokoll zu löschen. Einige Protokolle können entsprechend den Eingabeparametern gespeichert werden. Wie im API-Dokument:

LogProfitReset()

Die folgenden sind einige häufig verwendete Werkzeugmodule

  1. Funktionsmodul zur Erfassung eines bestimmten Merkmals des MarktesimgDieses Werkzeugmodul muss zusammen mit dem Angebotsmodul im Transaction Module Type verwendet werden, wie in der Abbildung dargestellt:imgVerwenden Sie das Ausgabe-Informationsmodul, um den letzten Transaktionspreis des letzten Ticker-Marktes auszugeben:imgAnzeige für die Rückprüfung:img

Wie JavaScript-Strategie-Code:

function main () {
    Log(exchange.GetTicker().Last)
}
  1. Das Modul, das das Attribut einer K-Liniendatenleiste erhältimgDieses Modul muss auch zusammen mit dem K-Line-Datenerfassungsmodul im Transaction Module Type verwendet werden.

Zuerst erstellen wir ein variables Modul namens K-Line.imgDann erhalten wir die K-Liniendaten, verwenden das K-Liniendatenmodul, um es zu erhalten, und weisen dem Variablenmodul den Wert zu: K-Line.imgDann verwenden wir das LIST LENGTH-Modul im LIST MODULE TYPE, um die Länge des K-Line Variablen-Moduls zu erhalten, das verwendet wird, um festzulegen, welcher Balken auf der K-Line die Daten erhält.imgSie werden wie in der Abbildung zusammengefügt:img

Der Zeitstempel der letzten K-Linie wird gedruckt, wenn der Backtest ausgeführt wird.img

  1. Das Modul, das die Daten einer Bestellung im Auftragsbuch erhältimgEs muss auch zusammen mit dem Get Depth Data-Modul im Transaction Module Type verwendet werden.imgDer Index ist auf 0 eingestellt und der Verkaufsbefehl ist so eingestellt, dass die Informationen über den Verkaufsbefehl erhalten werden.

img

Wie JavaScript-Strategie-Code:

function main () {
    Log(exchange.GetDepth().Asks[0])
}
  1. Modul zur Erfassung eines Attributs in den VermögenswertinformationenimgDieses Modul muss zusammen mit dem Modul zur Erfassung von Vermögensinformationen verwendet werden.imgZum Beispiel: Drucken Sie die verfügbare Währung des GirokontosimgAnzeige für die Rückprüfung:img

Wie JavaScript-Strategie-Code:

function main () {
    Log(exchange.GetAccount().Stocks)
}
  1. Modul zur Erfassung eines Attributs in AuftragsdatenimgDieses Modul wird verwendet, um den Wert eines Attributs in den Auftragsdaten zu ermitteln, z. B. den Preis oder die Menge eines Verkaufsattributs im Auftragsbuch (Beispiel Nr. 13).img

Ergebnisse der Backtests:img

Wie JavaScript-Strategie-Code:

function main () {
    Log(exchange.GetDepth().Asks[0].Price)
}

Es kann auch verwendet werden, um ein Attribut in der von dem Query Order Details Module zurückgegebenen Auftragsinformation zu erhalten (in dem fortgeschrittenen Kapitel erläutert).

  1. Modul zur Erfassung der Attribute einer Position in den PositionsinformationenimgIn ähnlicher Weise sollte es zusammen mit dem Get Futures Position Module verwendet werden. Beachten Sie, dass die Positionsdaten, die vom Get Futures Position Module zurückgegeben werden, ein Array (Liste) sind, das Positionen in verschiedenen Verträgen und Richtungen enthält. Daher sollte der Index bei der Verwendung angegeben werden.

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.

img

Ergebnisse der Backtests:

img

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.


Verwandt

Mehr