資源の読み込みに... 荷物...

テンプレートライブラリ

テンプレートライブラリ戦略コードのカテゴリーであるFMZ Quant Trading Platformの再利用可能なコードモジュールです. FMZ Quant Trading Platformのテンプレートライブラリ機能をサポートするプログラミング言語は,JavaScript, Python, C++そしてBlockly戦略を作成するときにカテゴリがテンプレートクラスライブラリに設定されている場合,テンプレートライブラリは,現在ログインしているFMZ量子取引プラットフォームのアカウントの戦略ライブラリに作成され,作成後にカテゴリを通常の戦略に変更することはできません.Create template library page

テンプレートライブラリの輸出機能

エクスポート関数はテンプレートライブラリのインターフェース関数で,テンプレートライブラリを参照する戦略で呼び出されます.

/*
-- 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
    }
*/

テンプレートライブラリパラメータ

テンプレートライブラリは,テンプレートライブラリのコードにグローバル変数として使用される独自のインターフェースパラメータを設定することもできます. 例えば,テンプレートクラスのライブラリのパラメータを設定します.

Template parameters

戦略コードのパラメータの変数名 戦略画面に表示されるパラメータの名前 タイプ デフォルト値
パラメータ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 アカウントが戦略ライブラリにテンプレートライブラリが利用可能であることを要求します.戦略編集ページ戦略を保存するScreenshot of template reference

戦略枠組みとAPI機能 戦略パラメータ