視覚的戦略のために必要なカスタムライブラリを拡張するには? たとえば,私はMAインジケーターを計算したいのですが, システムには以下だけがあります.
この指標に カスタムコードを追加するには? 視覚化モジュールを拡張する方法を説明するために,例としてカスタムMA指標計算モジュールを追加します.
テンプレートについてお話ししましょう 仮想通貨スポットトレーディングライブラリ 住所:https://www.fmz.com/strategy/10989- わかった このテンプレートは,FMZプラットフォームのJavaScriptバージョンテンプレートですが (テンプレートの概念を理解していない学生には,詳細についてはFMZ APIドキュメントを参照してください:https://www.fmz.com/api#templateわかった テンプレートの初めのコメントにはビジュアライゼーションモジュールを定義するコードが含まれ,JavaScriptテンプレートのコードは定義されたコードで参照することができます.私たち自身で拡張することは非常に便利です (これは学習とシミュレーションのための良い例です).
仮想通貨スポット取引ライブラリ; 冒頭の可視化定義:
/*blockly
{
"type": "ext_Trade",
"message0": "%1 symbol amount %2|%1 Coins %2",
"args0": [{
"type": "field_dropdown",
"options": [
["bid|Buy", "Buy"],
["ask|Sell", "Sell"]
]
}, {
"type": "input_value",
"check": "Number"
}],
"template": "(function(){var r = $.%1(%2); return r ? r.amount : 0; })()",
"order": "ORDER_ATOMIC",
"output": "Number",
"colour": 85
}, {
"type": "ext_CancelPendingOrders",
"message0": "cancel %1 orders|Cancel %1 Orders",
"args0": [{
"type": "field_dropdown",
"name": "TYPE",
"options": [
["all|All", " "],
["buy order|Buy", "ORDER_TYPE_BUY"],
["sell order|Sell", "ORDER_TYPE_SELL"]
]
}],
"previousStatement": null,
"nextStatement": null,
"template": "$.CancelPendingOrders(%1);",
"colour": 85
}, {
"type": "ext_Cross",
"message0": "calculate cross period %1 and %2|Cross Period %1 and %2",
"inputsInline": true,
"args0": [{
"type": "input_value"
}, {
"type": "input_value"
}],
"template": "$.Cross(%1,%2)",
"order": "ORDER_ATOMIC",
"output": "Number"
}, {
"type": "ext_GetAccount",
"message0": "obtain asset information|GetAccount",
"template": "$.GetAccount()",
"order": "ORDER_ATOMIC",
"output": null
}
*/
視覚的 (ブロック式) 編集ページのモジュールに対応する:
機械的にコピーするのと同じで 簡単に作れます
まず JavaScript言語で新しいテンプレートを作成します
テンプレートコードを編集する.
/*blockly
{
"type": "ext_testA",
"message0": "testA|testA",
"template": "function(){return 99;}()",
"order": "ORDER_ATOMIC",
"output": "Number"
},{
"type": "ext_MA",
"message0": "MA period %1| MA Period %1",
"args0": [{
"type": "input_value",
"check": "Number"
}],
"template": "(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()",
"order": "ORDER_ATOMIC",
"output": null,
"colour": 85
}
*/
新しいテンプレートを編集した後,保存します. このテンプレートを使用する必要がある戦略では,テンプレートをチェックします.
2つの追加モジュールがあります.
実行コードを見てみましょう. 実行コードは,
function(){return 99;}()
実行すると 99 の値を返します 実行すると 99 が返されます
実行コードを見てみましょう.
(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()
このコードは匿名関数呼び出しです.匿名関数はまず,K線データ,すなわちK線データを取得するための操作を実行します.r
取れた r が r になるかどうかによって,null
その長さはr
パラメータより小さい%1
モジュールに輸入され,裁判官は戻るfalse
計算した指標結果を返します.TA.MA(r, %1)
.
準備が出来ました
視覚 (ブロック式) 戦略編集:
オペレーション:
MA指標で計算されたデータは,望ましい結果が得られたことがわかります.
テンプレート機能を使って自分で拡張できます テンプレート機能を使って自分のモデルを拡張できます