[TOC]

Inventor Quantitative Trading Platform での戦略の開発は、戦略パラメータと戦略の相互作用の設計と切り離せません。 Inventor Quantitative Trading Platform は、シンプルで使いやすく、強力な定量取引ツールを提供し、製品の設計と機能を継続的に改善することに取り組んでいます。 「戦略パラメータ」と「インタラクション制御」をアップグレードすることで、戦略設計におけるパラメータとインタラクションの設計柔軟性がさらに向上しました。戦略パラメータとインタラクティブ コントロールの機能が強化され、一部の設計要件をより簡単に達成できるようになりました。この記事では、戦略設計の重要な2つの側面、「戦略パラメータ設計」と「戦略インタラクション設計」について見ていきます。
Inventor Quant の戦略パラメータの種類は増えておらず、私たちが使い慣れている次の 5 種類のパラメータがそのまま残っています。
すると、このプラットフォーム アップデートではどのようなコンテンツが追加および最適化されたのか、と必ず尋ねられるでしょう。
このアップグレードでは、パラメータ バインディング コントロールの「コンポーネント構成」が追加され、「グループ化」機能と「パラメータ依存関係」機能が簡素化され、これら 2 つの機能が「コンポーネント構成」に統合されます。パラメータのデフォルト値には、「オプション」/「必須」オプションが追加され、戦略が操作に適しているかどうかを決定します。パラメータが「必須」に設定されているが、パラメータコントロールに特定の値が書き込まれていない場合、戦略が実行されますが、パラメータにより、現時点では戦略を実行できません。 アップグレードの変更点について大まかに理解できたので、詳細にテストしてみましょう。

「オプション」/「必須」の機能については前に簡単に説明したので、ここでは詳細には触れません。以下では主に「コンポーネント構成」について説明します。コンポーネント構成設定は簡単に言うと次のようになります。
パラメータが対応する(バインドされる)コントロールのさまざまなプロパティ、タイプ、ルールを設定します。数値型パラメータ(数値型)のデフォルトのバインドコントロールは入力ボックスです。入力ボックスで受信したデータのルールを設定できます。つまり、図の「最小値」と「最大値」コントロールを使用して設定します。彼ら。
デフォルトの入力ボックス コントロールに加えて、プラットフォームには以下が追加されました。

ブール型パラメータは、対応するコントロールが 1 つしかないという点で特殊です。デフォルトのスイッチコントロールです。また、パラメータのデフォルト値も必須です。
ブール値は true か false のいずれかであるため、バイナリ オプションです。したがって、このパラメータ タイプに対応するにはスイッチ コントロールを使用することが非常に適しています。
通常、ブール型パラメータは、プラットフォーム上で特定の戦略機能を有効にするかどうかを制御するために使用されます。

デフォルトの入力ボックス コントロールに加えて、プラットフォームには以下が追加されました。
文章 「コンポーネント タイプ」で、設定「テキスト」を選択します。現在のパラメータに対応する戦略インターフェイス上の入力ボックス コントロールが、より大きなテキスト ボックスに変わります。 テキスト コントロールと通常の入力ボックス コントロールの違いは、テキスト ボックスに入力されたテキストを折り返すことができ、テキスト ボックスでコントロールのサイズを調整できることです。 インターフェース パラメータの変数値は文字列です。
時間ピッカー 「コンポーネント タイプ」で、設定として「時間セレクター」を選択します。現在のパラメータに対応する戦略インターフェイス上の入力ボックス コントロールは、時刻と日付を設定するためのコントロールになります。 「文字列型パラメータを持つコンポーネントタイプの時間セレクタ」は、「数値型パラメータを持つコンポーネントタイプの時間セレクタ」とは異なります。文字列型パラメータの時間選択には、コントロールの選択を設定できる追加の「時間形式」オプションがあります。形式:
カラーピッカー 「コンポーネント タイプ」で、設定を「カラー セレクター」として選択します。現在のパラメータに対応する戦略インターフェイス上の入力ボックス コントロールは、色選択コントロールになります。 一般的には色を設定するためのパラメータを設計するために使用されます。 インターフェイス パラメータの変数値は、文字列 (選択した色に対応する色の値、例: #7e1717) です。

ドロップダウン ボックス タイプ パラメータに対応するデフォルトのコントロールはドロップダウン ボックスですが、今回は以前の単純な単一選択ドロップダウン ボックスに多くのアップグレードが加えられました。
デフォルトのドロップダウン ボックス コントロールに加えて、今回のプラットフォームでは以下が追加されました。

暗号化された文字列型パラメータも特殊であり、対応するコントロールは 1 つだけです。これはデフォルトの暗号化された入力ボックス コントロールです。
プラットフォームでは、秘密鍵やパスワードなどの機密情報を設定するために、暗号化された文字列型のコントロールが一般的に使用されます。これらの入力パラメータ値はローカルで暗号化された後に送信されます。
インターフェース パラメータの変数値は文字列です。
上記のすべてのタイプの戦略インターフェース パラメータについて、このアップグレードでは、以前の「パラメータのグループ化」および「パラメータの依存関係」機能が「コンポーネント構成」に統合されます。すべてのインターフェース パラメータのコンポーネント構成には、「グループ化」と「フィルター」の設定があります。
グループ化 グループ ドロップダウン ボックス コントロールにグループ化するラベルを直接入力し、Enter キーを使用してグループ入力を確定できます。システムは現在入力されているラベルをグループ化オプションに記録します。その後、現在のインターフェース パラメータにグループを割り当てることができます。 グループ化後、戦略バックテスト/実際の取引インターフェースでは、グループとしてマークされたパラメータがグループ化領域に表示されます。
フィルター フィルター コントロールにいくつかの式を入力して、現在のパラメーターをアクティブにして表示する必要があるかどうかを決定します。この機能により、特定のパラメータ設定に応じて現在のパラメータを表示または非表示にすることができます。 フィルター式の例:
过滤器格式: a>b , a==1 , a , !a , a>=1&&a<=10 , a>b
ここで、a と b は両方とも戦略インターフェース パラメータの変数を表します。
上記の説明が少し直感的でない場合は、実際にこれらのパラメータ関数を使用してテストしてみるのが最善の方法です。
JavaScript 言語ポリシーを例に挙げます。
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))
}

完全なパラメータテスト戦略: https://www.fmz.com/strategy/455212
上記のパラメータには、パラメータ依存関係の設計が隠されています。多くの戦略では、特定のパラメータに基づいて一連の設定を有効にする必要があり、これはこのようなパラメータ依存関係によって実現できます。
Inventor Quantitative Trading Platform には 5 種類の戦略インタラクティブ コントロールも用意されており、これらのインタラクティブ コントロールも今回最適化され、アップグレードされました。グループ化機能を簡素化するために「コンポーネント構成」を追加しました。

インタラクティブ コントロールは、基本的に戦略インターフェイス パラメータの「コンポーネント構成」と同じです。デフォルトの入力ボックス コントロールに加えて、コンポーネント タイプでは以下もサポートされます。
使用方法は、戦略インターフェース パラメータのさまざまなコンポーネント タイプの場合と同じなので、ここでは繰り返しません。

インタラクティブ コントロールは、基本的に戦略インターフェイス パラメータの「コンポーネント構成」と同じです。

デフォルトの入力ボックス コントロールに加えて、コンポーネント タイプは次のものもサポートします。

インタラクティブ コントロールのドロップダウン ボックスもアップグレードされました: 「複数選択のサポート」、「カスタム デフォルト値」、特定のデータへのオプション バインディングなど。
デフォルトのドロップダウン ボックス コンポーネントに加えて、次のものが追加されます。

ボタンタイプのインタラクティブ コントロールには入力項目がありません。トリガーされると、送信されるインタラクティブ コマンドにはボタン コントロール名のみが含まれます。
これを理解するには、手動でテストしてみるのが一番です。ここではテスト戦略も用意されています。
インタラクティブなコントロールはバックテスト システムではテストできず、リアルタイム テストのみを作成できることに注意してください。
function main() {
var lastCmd = ""
while (true) {
var cmd = GetCommand() // 接收交互控件产生的消息
if (cmd) {
Log(cmd)
lastCmd = cmd
}
LogStatus(_D(), lastCmd)
Sleep(500)
}
}
ランダムにいくつかの情報を入力し、いくつかのオプションを設定してから、インタラクティブ コントロール ボタンをクリックすると、インタラクティブ メッセージが生成されます。この戦略により、メッセージがキャプチャされ、印刷されます。


完成したインタラクティブ コントロール テスト戦略: 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