어떻게 시각화 전략에 필요한 사용자 정의 클래스 라이브러리를 확장할 수 있습니까? 예를 들어, 저는 MA 지표를 계산하고 싶지만, 시스템 자체는 다음과 같은 것만을 가지고 있습니다.이 지표들은 어떻게 사용자 정의 코드를 추가할 수 있을까요? 우리는 사용자 지정 MA 지표 계산 모듈을 추가하여 시각화 모듈을 확장하는 방법을 설명합니다.
먼저,
디지털 화폐 현금 거래 클래식, 시작 부분의 시각화 정의:
/*blockly
{
"type": "ext_Trade",
"message0": "%1 币数 %2|%1 Coins %2",
"args0": [{
"type": "field_dropdown",
"options": [
["买入|Buy", "Buy"],
["卖出|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": "取消 %1 订单|Cancel %1 Orders",
"args0": [{
"type": "field_dropdown",
"name": "TYPE",
"options": [
["所有|All", " "],
["买单|Buy", "ORDER_TYPE_BUY"],
["卖单|Sell", "ORDER_TYPE_SELL"]
]
}],
"previousStatement": null,
"nextStatement": null,
"template": "$.CancelPendingOrders(%1);",
"colour": 85
}, {
"type": "ext_Cross",
"message0": "计算交叉 周期 %1 与 %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": "获取资产信息|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 周期 %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
}
*/
이 새 템플릿은 편집 후 저장합니다. 이 템플릿을 사용해야 하는 정책에서 이 템플릿을 선택합니다.
이 글은 다른 모드에서 볼 수 있습니다.
이 모듈은 testA라고 불리며, 이 모듈의 실행 코드를 살펴보면 다음과 같습니다.
function(){return 99;}()
이 함수는 99의 값을 반환하는 간단한 자바스크립트 함수입니다.
"MA 사이클의 모듈"이라고 불리는 이 모듈의 실행 코드를 살펴보면 다음과 같습니다.
(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()
코드는 익명 함수 호출이며, 익명 함수에서는 먼저 K선 데이터, K선 데이터를 획득하는 작업을 수행합니다.r
r가 r에 해당하는지 여부에 따라null
또는r
길이는 모듈의 입력 파라미터보다 작지 않습니다%1
다시 돌아와서false
다시 돌아가는 것TA.MA(r, %1)
이 지표의 결과는
이 글은 다른 글과 비교해 볼 수 있습니다.
비주얼 전략 편집자:
실행:
위와 같이 MA 지표 계산을 위해 원하는 대가를 받는 데이터를 볼 수 있습니다.
위의 것은 단지