テンプレートライブラリ戦略コードのカテゴリーであるFMZ Quant Trading Platformの再利用可能なコードモジュールです. FMZ Quant Trading Platformのテンプレートライブラリ機能をサポートするプログラミング言語は,JavaScript
, Python
, C++
そしてBlockly
戦略を作成するときにカテゴリがテンプレートクラスライブラリに設定されている場合,テンプレートライブラリは,現在ログインしているFMZ量子取引プラットフォームのアカウントの戦略ライブラリに作成され,作成後にカテゴリを通常の戦略に変更することはできません.
エクスポート関数はテンプレートライブラリのインターフェース関数で,テンプレートライブラリを参照する戦略で呼び出されます.
/*
-- After the strategy references the template, call this method directly with $.Test()
-- The main function is not triggered in the strategy, it is only the entry point for template debugging
*/
$.Test = function() {
Log('Test')
}
function main() {
$.Test()
}
def Test():
Log("template call")
# Export the Test function, the main strategy can be called via ext.Test().
ext.Test = Test
// After the strategy references the template, call this method directly with ext::Test()
void Test() {
Log("template call");
}
テンプレートライブラリは,異なるプログラミング言語の異なるフォーマットで書かれています.テンプレートライブラリで宣言され実装される関数をエクスポートするための例コードは以下のとおりです:
についてBlockly Visualization
テンプレートクラスライブラリを書くことによって実装できます.JavaScript
文字は以下の文字形式で書かれています.
/*blockly
{
"type": "ext_testA",
"message0": "testA|testA",
"template": "function(){return 99;}()",
"order": "ORDER_ATOMIC",
"output": "Number"
},{
"type": "ext_MA",
"message0": "MA 周期 %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
}
*/
テンプレートライブラリは,テンプレートライブラリのコードにグローバル変数として使用される独自のインターフェースパラメータを設定することもできます. 例えば,テンプレートクラスのライブラリのパラメータを設定します.
戦略コードのパラメータの変数名 | 戦略画面に表示されるパラメータの名前 | タイプ | デフォルト値 |
---|---|---|---|
パラメータ1 | パラメータ1 | 番号 | 99 |
$.SetParam1 = function(p1) {
param1 = p1
}
$.GetParam1 = function() {
Log("param1:", param1)
return param1
}
def SetParam1(p1):
global param1
param1 = p1
def GetParam1():
Log("param1:", param1)
return param1
ext.SetParam1 = SetParam1
ext.GetParam1 = GetParam1
void SetParam1(float p1) {
param1 = p1;
}
float GetParam1() {
Log("param1:", param1);
return param1;
}
テスト用のテンプレートクラスライブラリコードparam1
パラメータ:
function main () {
Log("Call $.GetParam1:", $.GetParam1())
Log("Call $.SetParam1:", "#FF0000")
$.SetParam1(20)
Log("Call $.GetParam1:", $.GetParam1())
}
def main():
Log("Call ext.GetParam1:", ext.GetParam1())
Log("Call ext.SetParam1:", "#FF0000")
ext.SetParam1(20)
Log("Call ext.GetParam1:", ext.GetParam1())
void main() {
Log("Call ext::GetParam1:", ext::GetParam1());
Log("Call ext::SetParam1:", "#FF0000");
ext::SetParam1(20);
Log("Call ext::GetParam1:", ext::GetParam1());
}
上記のテンプレートクラスライブラリの戦略コードを参照し,パラメータを取得するためにテンプレートクラスライブラリの輸出関数を使用しますparam1
パラメータを変更param1
.
戦略がテンプレートライブラリを参照する場合,当面ログインしている FMZ Quant Trading Platform アカウントが戦略ライブラリにテンプレートライブラリが利用可能であることを要求します.戦略編集ページ戦略を保存する
戦略枠組みとAPI機能 戦略パラメータ