템플릿 라이브러리FMZ 양자 거래 플랫폼에서 템플릿 라이브러리 기능을 지원하는 프로그래밍 언어는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 퀀트 트레이딩 플랫폼 계정이 전략 라이브러리에 템플릿 라이브러리를 사용할 수 있어야 합니다.전략 편집 페이지, 전략을 저장합니다.
전략 프레임워크 및 API 기능 전략 매개 변수