Tài nguyên đang được tải lên... tải...

Thư viện mẫu

Thư viện mẫulà các mô-đun mã tái sử dụng trong nền tảng giao dịch FMZ Quant, một loại mã chiến lược.JavaScript, Python, C++, vàBlocklyNếu danh mục được đặt thành Thư viện lớp mẫu khi tạo chiến lược, một thư viện mẫu sẽ được tạo trong thư viện chiến lược của tài khoản hiện đang đăng nhập của nền tảng giao dịch FMZ Quant, và không thể thay đổi danh mục thành một chiến lược bình thường sau khi tạo.Create template library page

Chức năng xuất thư viện mẫu

Chức năng xuất là một chức năng giao diện của thư viện mẫu, và nó có thể được gọi bằng chiến lược tham chiếu đến thư viện mẫu.

/*
-- 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");
}

Thư viện mẫu được viết theo định dạng khác nhau cho các ngôn ngữ lập trình khác nhau. Một ví dụ về mã để xuất các hàm được tuyên bố trong thư viện mẫu và thực hiện là như sau: CácBlockly Visualizationcách tiếp cận với các chức năng thư viện sử dụng chiến lược có thể được thực hiện bằng cách viết thư viện lớp mẫu trongJavaScriptngôn ngữ, được viết bằng cách sử dụng định dạng viết sau.

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

Các tham số thư viện mẫu

Thư viện mẫu cũng có thể đặt các tham số giao diện của riêng nó, được sử dụng dưới dạng biến toàn cầu trong mã của thư viện mẫu. Ví dụ, chúng ta đặt các tham số của thư viện lớp mẫu:

Template parameters

Tên biến của tham số trong mã chiến lược Tên của tham số hiển thị trên màn hình chiến lược Loại Giá trị mặc định
tham số 1 tham số 1 số 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;
}

Mã thư viện lớp mẫu để thử nghiệmparam1Các thông số:

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());
}

Viết tham chiếu mã chiến lược của thư viện lớp mẫu ví dụ ở trên và sử dụng hàm xuất của thư viện lớp mẫu để lấy tham sốparam1và sửa đổi tham sốparam1.

Thư viện mẫu tham chiếu

Khi một chiến lược tham chiếu đến thư viện mẫu, nó đòi hỏi rằng tài khoản FMZ Quant Trading Platform hiện đang đăng nhập có thư viện mẫu có sẵn trong thư viện chiến lược của nó.trang chỉnh sửa chiến lược, giữ chiến lược.Screenshot of template reference

Khung chiến lược và chức năng API Các thông số chiến lược