Библиотеки шаблоновявляются многоразовыми модулями кода в FMZ Quant Trading Platform, категории кода стратегии.JavaScript
, Python
, C++
, иBlockly
Если категория установлена на Template Class Library при создании стратегии, библиотека шаблонов будет создана в библиотеке стратегии в настоящее время зарегистрированного счета FMZ Quant Trading Platform, и после создания категории невозможно изменить на обычную стратегию.
Функция экспорта является интерфейсной функцией библиотеки шаблонов, и она может быть вызвана с помощью стратегии, которая относится к библиотеке шаблонов.
/*
-- 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 Параметры стратегии