FMZ量子取引プラットフォームで戦略を開発する際には,戦略パラメータと戦略相互作用を設計することが必要です. FMZ量子取引プラットフォームは,使いやすいかつ強力な定量的な取引ツールを提供し,製品デザインと機能を継続的に繰り返すことにコミットしています. 戦略パラメータとインタラクティブなコントロールのアップグレードにより,戦略デザインにおけるパラメータと相互作用の設計柔軟性がさらに向上しました. 戦略パラメータとインタラクティブなコントロールの機能が強化され,いくつかの設計要件が達成しやすくなりました. この記事では,戦略デザインの2つの重要な内容を再理解します. 戦略パラメータデザインと戦略インタラクションデザイン.
FMZ Quant の戦略パラメータの種類は増加していません.
このプラットフォームアップデートで 追加され最適化されたコンテンツは?
このアップグレードでは,パラメータバインディング制御のための"コンポーネント構成"を追加し,"グループ化"および"パラメータ依存性"関数を簡素化し,これらの2つの関数を"コンポーネント構成"に統合する.パラメータのデフォルト値には,戦略が実行される条件を持っているかどうかを判断するために"オプション"/"必須"オプションが追加される.パラメータが"必須"に設定されているが,戦略を実行するときにパラメータ制御に特定のパラメータが書き込まれていない場合,この時点で戦略は実行できない. アップグレードの変更について 一般的な理解ができているので 詳細にテストしてみましょう
パラメータが対応する (拘束されている) コントロールの様々な属性,タイプ,ルールを設定します. 数値パラメータ (番号タイプ) に拘束されているデフォルト コントロールは入力ボックスです.入力ボックスから受信されるデータのためのルールを設定できます.つまり,設定する図に
最小値 と 最大値 コントロールを使用します.
デフォルトの入力ボックス制御に加えて,プラットフォームは以下を追加しました:
ブール式パラメータは,対応するコントロールが"つだけあり,それはデフォルトスイッチ制御です.パラメータデフォルト値も必要です.
ブール式値は true または false であるため,バイナリーオプションである.したがって,このパラメータタイプに対応するスイッチ制御を使用することが非常に適切である.
一般的に,ブル式型パラメータは,特定の戦略機能がプラットフォームで有効かどうかを制御するために使用されます.
デフォルトの入力ボックス制御に加えて,プラットフォームは以下を追加しました:
テキスト
時間選択器
ドロップダウンボックスのパラメータのデフォルト対応制御はドロップダウンボックスですが,今回は以前のシンプルなシングル選択ドロップダウンボックスに多くのアップグレードが行われました.
このプラットフォームは,デフォルトのドロップダウンボックスの制御に加えて,次のようなことを追加しています:
暗号化された文字列パラメータもかなり特殊で,対応するコントロールが"つしかありません. それはデフォルトの暗号化された入力ボックス制御です.
プラットフォームでは,暗号化された文字列型制御は,通常,秘密鍵,パスワードなどの機密情報を設定するために使用されます.これらの入力パラメータ値は送信前にローカルに暗号化されます.
インターフェースパラメータの変数値は: string.
上記のすべてのタイプの戦略インターフェースパラメータでは,このアップグレードでは,以前の"パラメータグループ化"および"パラメータ依存性"関数を"コンポーネント構成"に統合する.すべてのインターフェースパラメータのコンポーネント構成に"グループ化"および"フィルタ化"設定があります.
Filter format: a>b , a==1 , a , !a , a>=1&&a<=10 , a>b
ここで,aとbの両方が戦略インターフェースパラメータの変数を表します.
上記の説明が少し直観的でない場合,それらを理解する最良の方法は,実際にこれらのパラメータ関数を使用してテストすることです:
JavaScript 言語戦略を例に挙げましょう.
function main() {
Log("---------------------------Start testing numeric type parameters---------------------------")
Log("Variable pNum1:", pNum1, ", Variable value type:", typeof(pNum1))
Log("Variable pNum2:", pNum2, ", Variable value type:", typeof(pNum2))
Log("Variable pNum3:", pNum3, ", Variable value type:", typeof(pNum3))
Log("Variable pNum4:", pNum4, ", Variable value type:", typeof(pNum4))
Log("---------------------------Start testing Boolean type parameters---------------------------")
Log("Variable pBool1:", pBool1, ", Variable value type:", typeof(pBool1))
Log("Variable pBool2:", pBool2, ", Variable value type:", typeof(pBool2))
Log("---------------------------Start testing string type parameters---------------------------")
Log("Variable pStr1:", pStr1, ", Variable value type:", typeof(pStr1))
Log("Variable pStr2:", pStr2, ", Variable value type:", typeof(pStr2))
Log("Variable pStr3:", pStr3, ", Variable value type:", typeof(pStr3))
Log("Variable pStr4:", pStr4, ", Variable value type:", typeof(pStr4))
Log("---------------------------Start testing the drop-down box type parameters---------------------------")
Log("Variable pCombox1:", pCombox1, ", Variable value type:", typeof(pCombox1))
Log("Variable pCombox2:", pCombox2, ", Variable value type:", typeof(pCombox2))
Log("Variable pCombox3:", pCombox3, ", Variable value type:", typeof(pCombox3))
Log("---------------------------Start testing encryption string type parameters---------------------------")
Log("Variable pSecretStr1:", pSecretStr1, ", Variable value type:", typeof(pSecretStr1))
}
パラメータテストの完全戦略:https://www.fmz.com/strategy/455212
上記のパラメータに隠されたパラメータ依存設計があります.多くの戦略では,このようなパラメータ依存によって達成できる特定のパラメータに基づく一連の設定を有効にする要件があります.
FMZ Quant Trading Platformには,5種類の戦略インタラクティブな制御機能も搭載されており,今回は最適化およびアップグレードされました. グループ機能の簡素化のために"コンポーネント構成"が追加されました.
インタラクティブなコントロールは,基本的には戦略インターフェースパラメータの"コンポーネント構成"と同じである.デフォルトの入力ボックス制御に加えて,コンポーネントタイプは以下もサポートしている:
戦略インターフェースパラメータの様々なコンポーネントタイプと同じ使い方なので,ここで繰り返しません.
インタラクティブなコントロールは,基本的には戦略インターフェースパラメータの"コンポーネント構成"と同じです.
デフォルトの入力ボックス制御に加えて,コンポーネントタイプは以下もサポートします.
インタラクティブなコントロールのドロップダウンボックスもアップグレードされています:
デフォルトのドロップダウンボックスのコンポーネントに加えて,次の要素が追加されます.
ボタン型インタラクティブなコントロールには入力項目がない.起動すると,送信されたインタラクティブなコマンドにはボタン制御名のみが含まれます.
テスト戦略も用意されています. テストの方法としては,
インタラクティブなコントロールはバックテストシステムでテストできないので,ライブテストのみを作成できる.
function main() {
var lastCmd = ""
while (true) {
var cmd = GetCommand() // Receive messages generated by interactive controls
if (cmd) {
Log(cmd)
lastCmd = cmd
}
LogStatus(_D(), lastCmd)
Sleep(500)
}
}
ランダムな情報を入力し,いくつかのオプションを設定し,インタラクティブなメッセージを生成するためにインタラクティブな制御ボタンをクリックします. 戦略はメッセージをキャプチャしてプリントします.
インタラクティブな制御試験の戦略が完了した:https://www.fmz.com/strategy/455231
function main() {
Log("After parameter test1 is selected using currency controls, the value of test1 is:", test1)
Log("After parameter test2 is selected using trading pair controls, the value of test2 is:", test2)
}
After parameter test1 is selected using currency controls, the value of test1 is: BTC
After parameter test2 is selected using trading pair controls, the value of test2 is: ETH_USDT.next_quarter
function main() {
while (true) {
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(2000)
}
}
test1:SOL
test2:XRP_USDT.swap