시각적 전략에 필요한 사용자 정의 라이브러리를 확장하는 방법? 예를 들어, 나는 MA 지표를 계산하고 싶지만 시스템은 단지와 함께 온다:
이 지표들은 어떻게 사용자 지정 코드를 추가할 수 있을까요? 시각화 모듈을 확장하는 방법을 설명하기 위해 사용자 정의 MA 지표 계산 모듈을 추가하는 예를 들어보자.
암호화폐 스팟 거래 라이브러리; 초기 시각화 정의:
/*blockly
{
"type": "ext_Trade",
"message0": "%1 symbol amount %2|%1 Coins %2",
"args0": [{
"type": "field_dropdown",
"options": [
["bid|Buy", "Buy"],
["ask|Sell", "Sell"]
]
}, {
"type": "input_value",
"check": "Number"
}],
"template": "(function(){var r = $.%1(%2); return r ? r.amount : 0; })()",
"order": "ORDER_ATOMIC",
"output": "Number",
"colour": 85
}, {
"type": "ext_CancelPendingOrders",
"message0": "cancel %1 orders|Cancel %1 Orders",
"args0": [{
"type": "field_dropdown",
"name": "TYPE",
"options": [
["all|All", " "],
["buy order|Buy", "ORDER_TYPE_BUY"],
["sell order|Sell", "ORDER_TYPE_SELL"]
]
}],
"previousStatement": null,
"nextStatement": null,
"template": "$.CancelPendingOrders(%1);",
"colour": 85
}, {
"type": "ext_Cross",
"message0": "calculate cross period %1 and %2|Cross Period %1 and %2",
"inputsInline": true,
"args0": [{
"type": "input_value"
}, {
"type": "input_value"
}],
"template": "$.Cross(%1,%2)",
"order": "ORDER_ATOMIC",
"output": "Number"
}, {
"type": "ext_GetAccount",
"message0": "obtain asset information|GetAccount",
"template": "$.GetAccount()",
"order": "ORDER_ATOMIC",
"output": null
}
*/
시각 (블록) 편집 페이지의 모듈에 해당하는 각각:
준비된 예제를 가지고, 기계적으로 복사하는 것과 마찬가지로, 그것을 스스로 구성하는 것은 매우 간단합니다.
먼저, 자바스크립트 언어로 새로운 템플릿을 만들어 보세요.
템플릿 코드를 편집합니다.
/*blockly
{
"type": "ext_testA",
"message0": "testA|testA",
"template": "function(){return 99;}()",
"order": "ORDER_ATOMIC",
"output": "Number"
},{
"type": "ext_MA",
"message0": "MA period %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
}
*/
새 템플릿을 편집한 후 저장하세요. 이 템플릿을 사용해야 하는 전략에서 템플릿을 확인하세요.
보시다시피 두 개의 추가 모듈이 있습니다.
테스트A라는 모듈입니다. 실행 코드를 살펴봅시다.
function(){return 99;}()
이 함수는 매우 간단한 자바스크립트 함수인데 실행 시 99의 값을 반환합니다.
'MA 기간'이라는 모듈입니다. 실행 코드를 살펴봅시다.
(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()
코드는 익명 함수 호출입니다. 익명 함수는 먼저 K-라인 데이터를 얻기 위해 작업을 실행합니다.r
그 다음, 얻어진 r의 여부에 따라null
또는 길이가r
매개 변수보다 작습니다.%1
모듈에 수입, 판단을 반환false
또는TA.MA(r, %1)
.
다음으로 사용할 준비가 되었습니다.
시각 (블록) 전략 편집:
작업:
MA 지표에 의해 계산된 데이터가 원하는 대로 얻어진다는 것을 볼 수 있습니다.
위의 것은 시각화 모듈의 디자인에 대한 예일 뿐입니다. 그래서 템플릿 함수를 사용하여 스스로 확장할 수 있습니다.