[TOC]

Die Entwicklung von Strategien auf der Inventor Quantitative Trading Platform ist untrennbar mit der Gestaltung von Strategieparametern und Strategieinteraktionen verbunden. Ziel der Inventor Quantitative Trading Platform ist es, einfache, benutzerfreundliche und leistungsstarke quantitative Handelstools bereitzustellen und Produktdesign und Funktionen kontinuierlich zu verbessern. Durch die Weiterentwicklung der „Strategieparameter“ und „Interaktionskontrollen“ wurde die Gestaltungsflexibilität von Parametern und Interaktionen bei der Strategiegestaltung weiter erhöht. Die Funktionen der Strategieparameter und interaktiven Steuerelemente wurden erweitert, um die Erfüllung einiger Designanforderungen zu erleichtern. In diesem Artikel werfen wir einen Blick auf zwei wesentliche Aspekte des Strategiedesigns: „Strategieparameterdesign“ und „Strategieinteraktionsdesign“.
Die Arten der Strategieparameter in Inventor Quant haben sich nicht erhöht. Es handelt sich immer noch um die fünf uns bekannten Parametertypen:
Dann werden Sie mich bestimmt fragen, welche Inhalte bei diesem Plattform-Update hinzugefügt und optimiert wurden?
Dieses Upgrade fügt „Komponentenkonfiguration“ für Parameterbindungssteuerelemente hinzu, vereinfacht die Funktionen „Gruppierung“ und „Parameterabhängigkeit“ und integriert diese beiden Funktionen in die „Komponentenkonfiguration“. Für den Standardwert des Parameters wird eine Option „optional“/„erforderlich“ hinzugefügt, um zu bestimmen, ob die Strategie für den Betrieb qualifiziert ist. Wenn der Parameter auf „erforderlich“ gesetzt ist, aber kein spezifischer Wert in die Parametersteuerung geschrieben wird, wenn der Strategie wird ausgeführt, Parameter, die Strategie kann derzeit nicht ausgeführt werden. Nachdem wir nun ein allgemeines Verständnis der Upgrade-Änderungen haben, testen wir sie im Detail.

Wir haben zuvor kurz über die „optionalen“/„erforderlichen“ Funktionen gesprochen, deshalb werde ich hier nicht ins Detail gehen. Im Folgenden wird hauptsächlich die „Komponentenkonfiguration“ erläutert. Die Komponentenkonfigurationseinstellungen können einfach wie folgt verstanden werden:
Legen Sie die verschiedenen Eigenschaften, Typen und Regeln der Steuerelemente fest, denen die Parameter entsprechen (an die sie gebunden sind). Das Standard-Grenzsteuerelement für numerische Parameter (Zahlentyp) ist ein Eingabefeld. Sie können Regeln für die vom Eingabefeld empfangenen Daten festlegen, d. h. die Steuerelemente „Minimalwert“ und „Maximalwert“ in der Abbildung verwenden, um Folgendes festzulegen: ihnen.
Zusätzlich zum standardmäßigen Eingabefeld-Steuerelement hat die Plattform Folgendes hinzugefügt:

Parameter vom Typ Boolesch sind insofern besonders, als dass sie nur ein entsprechendes Steuerelement haben. Dies ist die Standardschaltersteuerung. Außerdem ist der Parameter-Standardwert erforderlich.
Da Boolesche Werte entweder wahr oder falsch sind, handelt es sich um binäre Optionen. Daher ist es sehr sinnvoll, entsprechend diesem Parametertyp eine Schaltersteuerung zu verwenden.
Im Allgemeinen werden Parameter vom Typ Boolesch verwendet, um zu steuern, ob bestimmte Strategiefunktionen auf der Plattform aktiviert sind.

Zusätzlich zum standardmäßigen Eingabefeld-Steuerelement hat die Plattform Folgendes hinzugefügt:
Text Wählen Sie unter „Komponententyp“ die Einstellung: Text. Das Eingabefeld-Steuerelement auf der Strategieschnittstelle, das dem aktuellen Parameter entspricht, ändert sich in ein größeres Textfeld. Die Unterschiede zwischen einem Textsteuerelement und einem gewöhnlichen Eingabefeldsteuerelement bestehen darin, dass der in das Textfeld eingegebene Text umbrochen werden kann und dass das Textfeld die Größe des Steuerelements anpassen kann. Der variable Wert des Schnittstellenparameters ist: string.
Zeitauswahl Wählen Sie unter „Komponententyp“ die Einstellung „Zeitauswahl“. Das Eingabefeld-Steuerelement auf der Strategieschnittstelle, das den aktuellen Parametern entspricht, wird zu einem Steuerelement zum Einstellen von Uhrzeit und Datum. Der “Zeitselektor für Komponententyp mit String-Typ-Parameter” unterscheidet sich vom “Zeitselektor für Komponententyp mit numerischem Typ-Parameter”. Die Zeitauswahl für den String-Typ-Parameter verfügt über eine zusätzliche Option “Zeitformat”, mit der die Auswahl des Steuerelements festgelegt werden kann. Format:
Farbwähler Wählen Sie unter „Komponententyp“ die Einstellung „Farbauswahl“. Das Eingabefeld-Steuerelement auf der Strategieschnittstelle, das dem aktuellen Parameter entspricht, wird zu einem Farbauswahl-Steuerelement. Wird im Allgemeinen zum Entwerfen von Parametern zum Festlegen von Farben verwendet. Der variable Wert des Schnittstellenparameters ist: Zeichenfolge (der Farbwert, der der ausgewählten Farbe entspricht, zum Beispiel: #7e1717).

Das dem Dropdown-Boxtypparameter entsprechende Standardsteuerelement ist eine Dropdown-Box. Dieses Mal wurden jedoch viele Verbesserungen an der vorherigen einfachen Dropdown-Box mit Einzelauswahl vorgenommen:
Zusätzlich zum standardmäßigen Dropdown-Feld-Steuerelement fügt die Plattform dieses Mal Folgendes hinzu:

Der Parameter des verschlüsselten Zeichenfolgentyps ist ebenfalls speziell und verfügt nur über ein entsprechendes Steuerelement. Es handelt sich um das standardmäßige verschlüsselte Eingabefeldsteuerelement.
Auf der Plattform werden im Allgemeinen verschlüsselte Zeichenfolgensteuerelemente verwendet, um vertrauliche Informationen wie geheime Schlüssel, Kennwörter usw. festzulegen. Diese Eingabeparameterwerte werden nach lokaler Verschlüsselung übertragen.
Der variable Wert des Schnittstellenparameters ist: string.
Für alle oben genannten Typen von Strategieschnittstellenparametern integriert dieses Upgrade die vorherigen Funktionen „Parametergruppierung“ und „Parameterabhängigkeit“ in die „Komponentenkonfiguration“. In der Komponentenkonfiguration aller Schnittstellenparameter gibt es die Einstellungen „Gruppierung“ und „Filter“.
Gruppierung Sie können die zu gruppierenden Beschriftungen direkt in das Dropdown-Feld „Gruppe“ eingeben und die Gruppeneingabe mit der Eingabetaste bestätigen. Das System übernimmt die aktuell eingegebene Bezeichnung in die Gruppierungsoptionen. Anschließend können Sie den aktuellen Schnittstellenparametern Gruppen zuordnen. Nach der Gruppierung werden die als Gruppe markierten Parameter in der Strategie-Backtesting-/Echthandelsschnittstelle in einem Gruppierungsbereich angezeigt.
Filter Geben Sie einige Ausdrücke in die Filtersteuerung ein, um zu bestimmen, ob der aktuelle Parameter aktiviert und angezeigt werden soll. Mit dieser Funktion kann realisiert werden, dass der aktuelle Parameter abhängig von einer bestimmten Parametereinstellung angezeigt oder ausgeblendet werden kann. Beispiele für Filterausdrücke:
过滤器格式: a>b , a==1 , a , !a , a>=1&&a<=10 , a>b
Hier stellen sowohl a als auch b Variablen der Strategieschnittstellenparameter dar.
Wenn die obigen Erklärungen nicht ganz intuitiv sind, können Sie sie am besten verstehen, indem Sie die folgenden Parameterfunktionen tatsächlich verwenden und testen:
Nehmen wir als Beispiel die JavaScript-Sprachrichtlinie:
function main() {
Log("---------------------------开始测试数字类型参数---------------------------")
Log("变量pNum1:", pNum1, ", 变量值类型:", typeof(pNum1))
Log("变量pNum2:", pNum2, ", 变量值类型:", typeof(pNum2))
Log("变量pNum3:", pNum3, ", 变量值类型:", typeof(pNum3))
Log("变量pNum4:", pNum4, ", 变量值类型:", typeof(pNum4))
Log("---------------------------开始测试布尔类型参数---------------------------")
Log("变量pBool1:", pBool1, ", 变量值类型:", typeof(pBool1))
Log("变量pBool2:", pBool2, ", 变量值类型:", typeof(pBool2))
Log("---------------------------开始测试字符串类型参数---------------------------")
Log("变量pStr1:", pStr1, ", 变量值类型:", typeof(pStr1))
Log("变量pStr2:", pStr2, ", 变量值类型:", typeof(pStr2))
Log("变量pStr3:", pStr3, ", 变量值类型:", typeof(pStr3))
Log("变量pStr4:", pStr4, ", 变量值类型:", typeof(pStr4))
Log("---------------------------开始测试下拉框类型参数---------------------------")
Log("变量pCombox1:", pCombox1, ", 变量值类型:", typeof(pCombox1))
Log("变量pCombox2:", pCombox2, ", 变量值类型:", typeof(pCombox2))
Log("变量pCombox3:", pCombox3, ", 变量值类型:", typeof(pCombox3))
Log("---------------------------开始测试加密串类型参数---------------------------")
Log("变量pSecretStr1:", pSecretStr1, ", 变量值类型:", typeof(pSecretStr1))
}

Vollständige Parameterteststrategie: https://www.fmz.com/strategy/455212
In den oben genannten Parametern verbirgt sich ein Parameterabhängigkeitsdesign. Viele Strategien erfordern, eine Reihe von Einstellungen basierend auf einem bestimmten Parameter zu ermöglichen, was mit Parameterabhängigkeiten wie diesen erreicht werden kann.
Darüber hinaus gibt es in der Inventor Quantitative Trading Platform fünf Arten interaktiver Strategiesteuerelemente, und auch diese interaktiven Steuerelemente wurden dieses Mal optimiert und verbessert. „Komponentenkonfiguration“ hinzugefügt, um die Gruppierungsfunktion zu vereinfachen.

Die interaktiven Steuerelemente sind im Grunde dieselben wie die „Komponentenkonfiguration“ der Strategieschnittstellenparameter. Zusätzlich zu den standardmäßigen Eingabefeldsteuerelementen unterstützen die Komponententypen auch:
Die Verwendung ist die gleiche wie bei den verschiedenen Komponententypen der Strategieschnittstellenparameter und wird deshalb hier nicht wiederholt.

Die interaktiven Steuerelemente entsprechen grundsätzlich der „Komponentenkonfiguration“ der Strategieschnittstellenparameter.

Zusätzlich zum Standard-Eingabefeld-Steuerelement unterstützt der Komponententyp auch:

Das Dropdown-Feld des interaktiven Steuerelements wurde ebenfalls verbessert: „Mehrfachauswahl unterstützt“, „benutzerdefinierte Standardwerte“, Optionsbindung an bestimmte Daten usw.
Zusätzlich zur Standardkomponente der Dropdown-Box wird Folgendes hinzugefügt:

Ein interaktives Steuerelement vom Typ „Schaltfläche“ hat keine Eingabeelemente. Beim Auslösen enthält der gesendete interaktive Befehl nur den Namen des Schaltflächensteuerelements.
Der beste Weg, es zu verstehen, besteht darin, es manuell zu testen. Hier wird auch eine Teststrategie vorbereitet.
Es ist zu beachten, dass im Backtesting-System keine interaktiven Steuerelemente getestet werden können und nur Echtzeittests erstellt werden können.
function main() {
var lastCmd = ""
while (true) {
var cmd = GetCommand() // 接收交互控件产生的消息
if (cmd) {
Log(cmd)
lastCmd = cmd
}
LogStatus(_D(), lastCmd)
Sleep(500)
}
}
Geben Sie nach dem Zufallsprinzip einige Informationen ein, legen Sie einige Optionen fest und klicken Sie dann auf die interaktive Steuerschaltfläche, um interaktive Nachrichten zu generieren. Die Strategie erfasst die Nachrichten und druckt sie aus.


Abgeschlossene interaktive Kontrollteststrategie: https://www.fmz.com/strategy/455231



function main() {
Log("参数test1使用币种控件选择后,test1的值为:", test1)
Log("参数test2使用交易代码控件选择后,test2的值为:", test2)
}

参数test1使用币种控件选择后,test1的值为: BTC

参数test2使用交易代码控件选择后,test2的值为: ETH_USDT.next_quarter

function main() {
while (true) {
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(2000)
}
}

test1:SOL

test2:XRP_USDT.swap