Inventor Quantitative Trading Platform での戦略の開発は、戦略パラメータと戦略の相互作用の設計と切り離せません。 Inventor Quantitative Trading Platform は、シンプルで使いやすく、強力な定量取引ツールを提供し、製品の設計と機能を継続的に改善することに取り組んでいます。 「戦略パラメータ」と「インタラクション制御」をアップグレードすることで、戦略設計におけるパラメータとインタラクションの設計柔軟性がさらに向上しました。戦略パラメータとインタラクティブ コントロールの機能が強化され、一部の設計要件をより簡単に達成できるようになりました。この記事では、戦略設計の重要な2つの側面、「戦略パラメータ設計」と「戦略インタラクション設計」について見ていきます。
戦略インターフェースパラメータ
Inventor Quant の戦略パラメータの種類は増えておらず、私たちが使い慣れている次の 5 種類のパラメータがそのまま残っています。
- 数値型パラメータ
- 文字列型パラメータ
- ブール型パラメータ
- ドロップダウンボックスタイプのパラメータ
- 暗号化された文字列型パラメータ
すると、このプラットフォーム アップデートではどのようなコンテンツが追加および最適化されたのか、と必ず尋ねられるでしょう。
このアップグレードでは、パラメータ バインディング コントロールの「コンポーネント構成」が追加され、「グループ化」機能と「パラメータ依存関係」機能が簡素化され、これら 2 つの機能が「コンポーネント構成」に統合されます。パラメータのデフォルト値には、「オプション」/「必須」オプションが追加され、戦略が操作に適しているかどうかを決定します。パラメータが「必須」に設定されているが、パラメータコントロールに特定の値が書き込まれていない場合、戦略が実行されますが、パラメータにより、現時点では戦略を実行できません。
アップグレードの変更点について大まかに理解できたので、詳細にテストしてみましょう。
1. 数値型パラメータ
「オプション」/「必須」の機能については前に簡単に説明したので、ここでは詳細には触れません。以下では主に「コンポーネント構成」について説明します。コンポーネント構成設定は簡単に言うと次のようになります。
パラメータが対応する(バインドされる)コントロールのさまざまなプロパティ、タイプ、ルールを設定します。数値型パラメータ(数値型)のデフォルトのバインドコントロールは入力ボックスです。入力ボックスで受信したデータのルールを設定できます。つまり、図の「最小値」と「最大値」コントロールを使用して設定します。彼ら。
デフォルトの入力ボックス コントロールに加えて、プラットフォームには以下が追加されました。
- 時間ピッカー
「コンポーネント タイプ」で、設定を「時間セレクター」として選択すると、現在のパラメータに対応する戦略インターフェイス上の入力ボックス コントロールが時間選択コントロールになります。このパラメータを設定するときは、特定の時間を選択します。このパラメータの変数値は、設定された時間に対応するタイムスタンプです。
このようなコントロールは通常、時間範囲の設定、開始日と終了日の設定に使用されます。日付コントロールのこの非常に便利で直感的な使用により、複雑な時間変換コードを記述しなくても、戦略は対応するタイムスタンプを知ることができます。
インターフェースパラメータの変数値は、値(タイムスタンプを表す)です。 - スライド入力バー
スライディング入力バーコントロールとして設定する場合は、スライダーの範囲を決定するために「最小値」と「最大値」を指定する必要があります。ステップサイズは、スライダーが1回移動するときの間隔の値を指します。
スライド入力バーは、ストップロスとテイクプロフィットのレベルを制御するためのパラメータを非常に便利に実装できます。 もちろん、他にも多くのデザインがありますが、ここでは詳しく説明しません。
インターフェースパラメータの変数値は、値(スライダーバー上のスライダーの位置情報を表す)です。
2. ブール型パラメータ
ブール型パラメータは、対応するコントロールが 1 つしかないという点で特殊です。デフォルトのスイッチコントロールです。また、パラメータのデフォルト値も必須です。
ブール値は true か false のいずれかであるため、バイナリ オプションです。したがって、このパラメータ タイプに対応するにはスイッチ コントロールを使用することが非常に適しています。
通常、ブール型パラメータは、プラットフォーム上で特定の戦略機能を有効にするかどうかを制御するために使用されます。
3. 文字列型パラメータ
デフォルトの入力ボックス コントロールに加えて、プラットフォームには以下が追加されました。
-
文章
「コンポーネント タイプ」で、設定「テキスト」を選択します。現在のパラメータに対応する戦略インターフェイス上の入力ボックス コントロールが、より大きなテキスト ボックスに変わります。
テキスト コントロールと通常の入力ボックス コントロールの違いは、テキスト ボックスに入力されたテキストを折り返すことができ、テキスト ボックスでコントロールのサイズを調整できることです。
インターフェース パラメータの変数値は文字列です。 -
時間ピッカー
「コンポーネント タイプ」で、設定として「時間セレクター」を選択します。現在のパラメータに対応する戦略インターフェイス上の入力ボックス コントロールは、時刻と日付を設定するためのコントロールになります。
「文字列型パラメータを持つコンポーネントタイプの時間セレクタ」は、「数値型パラメータを持つコンポーネントタイプの時間セレクタ」とは異なります。文字列型パラメータの時間選択には、コントロールの選択を設定できる追加の「時間形式」オプションがあります。形式:- 日付: 「時刻形式」が「日付」に設定されている場合、コントロールは年、月、日、時間、分、秒を選択するための完全な時間選択コントロールであり、現在の時刻をワンクリックで選択できます。 。
- 時間: 「時間形式」が「時間」に設定されている場合、コントロールは分、時間、秒を選択するための時間選択コントロールになります。
- 年と月: 「時間形式」が「年と月」に設定されている場合、コントロールは年と月を選択するための時間選択コントロールになります。
- 年: 「時間形式」が「年」に設定されている場合、コントロールは年を選択するための時間選択コントロールになります。
インターフェイス パラメータの変数値は、文字列 (対応する時間としてフォーマットされます) です。
-
カラーピッカー
「コンポーネント タイプ」で、設定を「カラー セレクター」として選択します。現在のパラメータに対応する戦略インターフェイス上の入力ボックス コントロールは、色選択コントロールになります。
一般的には色を設定するためのパラメータを設計するために使用されます。
インターフェイス パラメータの変数値は、文字列 (選択した色に対応する色の値、例: #7e1717) です。
4. ドロップダウンボックスタイプのパラメータ
ドロップダウン ボックス タイプ パラメータに対応するデフォルトのコントロールはドロップダウン ボックスですが、今回は以前の単純な単一選択ドロップダウン ボックスに多くのアップグレードが加えられました。
- 複数選択をサポート
ドロップダウンボックスパラメータに対応するドロップダウンボックスコントロールでは、複数のオプションを同時に選択できます。この場合、ドロップダウンボックスパラメータの変数値は、選択されたオプションのインデックスではなく、配列。配列には、選択されたすべてのオプションのインデックスまたはバインディング データが含まれます。 - カスタムデフォルト値をサポート
このオプションをオンにすると、ドロップダウン ボックスからデフォルト値としてオプションを選択する代わりに、デフォルト値をカスタマイズできます。 - ドロップダウンボックスのオプションに数値と文字列をバインドする機能を追加しました。
オプションに文字列または値をバインドします。このパラメータを設定すると、ドロップダウン ボックス変数の値は、選択したオプションのインデックスではなく、選択したオプションにバインドされた文字列または値になります。
デフォルトのドロップダウン ボックス コントロールに加えて、今回のプラットフォームでは以下が追加されました。
- セグメントコントローラ
「コンポーネント タイプ」で、設定「セグメント コントローラー」を選択します。このようにして、現在のパラメータにバインドされたコントロールは選択可能なセグメント化されたスライダーになり、特定のセグメント化されたブロックを選択できるようになります。
一般的には、次のように設計できます。通常は、相互に排他的な複数のオプションを切り替えるために使用され、カテゴリやタグでコンテンツをフィルタリングしたり、さまざまな操作モードを選択したりするためによく使用されます。
インターフェース パラメータの変数値は、セグメント コントローラの選択された部分のインデックス、または選択された部分にバインドされたデータです (バインドされたデータは数値と文字列をサポートします)。
5. 暗号化された文字列型パラメータ
暗号化された文字列型パラメータも特殊であり、対応するコントロールは 1 つだけです。これはデフォルトの暗号化された入力ボックス コントロールです。
プラットフォームでは、秘密鍵やパスワードなどの機密情報を設定するために、暗号化された文字列型のコントロールが一般的に使用されます。これらの入力パラメータ値はローカルで暗号化された後に送信されます。
インターフェース パラメータの変数値は文字列です。
上記のすべてのタイプの戦略インターフェース パラメータについて、このアップグレードでは、以前の「パラメータのグループ化」および「パラメータの依存関係」機能が「コンポーネント構成」に統合されます。すべてのインターフェース パラメータのコンポーネント構成には、「グループ化」と「フィルター」の設定があります。
-
グループ化
グループ ドロップダウン ボックス コントロールにグループ化するラベルを直接入力し、Enter キーを使用してグループ入力を確定できます。システムは現在入力されているラベルをグループ化オプションに記録します。その後、現在のインターフェース パラメータにグループを割り当てることができます。
グループ化後、戦略バックテスト/実際の取引インターフェースでは、グループとしてマークされたパラメータがグループ化領域に表示されます。 -
フィルター
フィルター コントロールにいくつかの式を入力して、現在のパラメーターをアクティブにして表示する必要があるかどうかを決定します。この機能により、特定のパラメータ設定に応じて現在のパラメータを表示または非表示にすることができます。
フィルター式の例:过滤器格式: a>b , a==1 , a , !a , a>=1&&a<=10 , a>bここで、a と b は両方とも戦略インターフェース パラメータの変数を表します。
インターフェースパラメータテスト戦略
上記の説明が少し直感的でない場合は、実際にこれらのパラメータ関数を使用してテストしてみるのが最善の方法です。
JavaScript 言語ポリシーを例に挙げます。
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 種類の戦略インタラクティブ コントロールも用意されており、これらのインタラクティブ コントロールも今回最適化され、アップグレードされました。グループ化機能を簡素化するために「コンポーネント構成」を追加しました。
1. デジタルインタラクティブコントロール
インタラクティブ コントロールは、基本的に戦略インターフェイス パラメータの「コンポーネント構成」と同じです。デフォルトの入力ボックス コントロールに加えて、コンポーネント タイプでは以下もサポートされます。
- 時間ピッカー
送信される対話型コマンドには、選択時間のタイムスタンプが含まれます。 - スライド入力バー
送信される対話型コマンドには、選択したスライダーの位置によって表される値が含まれます。
使用方法は、戦略インターフェース パラメータのさまざまなコンポーネント タイプの場合と同じなので、ここでは繰り返しません。
2. ブール型(真偽値)インタラクティブコントロール
インタラクティブ コントロールは、基本的に戦略インターフェイス パラメータの「コンポーネント構成」と同じです。
3. 文字列インタラクティブコントロール
デフォルトの入力ボックス コントロールに加えて、コンポーネント タイプは次のものもサポートします。
- 文章
送信される対話型コマンドには、テキスト ボックスに入力されたコンテンツが含まれます。 - 時間ピッカー
送信される対話型コマンドには、選択した時間の時間文字列が含まれており、複数の形式から選択できます。 - カラーピッカー
送信される対話型コマンドには、選択した色の色値文字列が含まれます。
4. ドロップダウンボックス(選択)インタラクティブコントロール
インタラクティブ コントロールのドロップダウン ボックスもアップグレードされました: 「複数選択のサポート」、「カスタム デフォルト値」、特定のデータへのオプション バインディングなど。
デフォルトのドロップダウン ボックス コンポーネントに加えて、次のものが追加されます。
- セグメントコントローラ
送信されたインタラクティブ コマンドには、選択したスライダーのインデックスまたはバインドされたデータが含まれます。
5. ボタンインタラクティブコントロール
ボタンタイプのインタラクティブ コントロールには入力項目がありません。トリガーされると、送信されるインタラクティブ コマンドにはボタン コントロール名のみが含まれます。
インタラクティブ制御テスト戦略
これを理解するには、手動でテストしてみるのが一番です。ここではテスト戦略も用意されています。
インタラクティブなコントロールはバックテスト システムではテストできず、リアルタイム テストのみを作成できることに注意してください。
javascript
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
更新する
- プラットフォームでは、インターフェイス パラメータとインタラクティブ コントロールの文字列型とドロップダウン ボックス型が更新され、2 つの新しいコントロールのサポートが追加されました。
- 戦略インターフェースパラメータにおける通貨制御と取引コード(取引ペア)制御の使用のパラメータテスト
javascript
function main() {
Log("参数test1使用币种控件选择后,test1的值为:", test1)
Log("参数test2使用交易代码控件选择后,test2的值为:", test2)
}
-
- 通貨
log参数test1使用币种控件选择后,test1的值为: BTC -
- 取引コード(取引ペア)
log参数test2使用交易代码控件选择后,test2的值为: ETH_USDT.next_quarter
- 戦略インタラクション コントロールで通貨コントロールとトランザクション コード (トランザクション ペア) コントロールを使用してインタラクティブ テストを設定します。
javascript
function main() {
while (true) {
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(2000)
}
}
- 1





















