Làm thế nào để mở rộng thư viện lớp tùy chỉnh mà bạn cần cho các chiến lược trực quan hóa? Ví dụ: Tôi muốn tính các chỉ số MA, nhưng hệ thống chỉ cung cấp:Những chỉ số này, làm thế nào để thêm một số mã tùy chỉnh? Chúng tôi đã giải thích cách mở rộng mô-đun trực quan bằng cách thêm mô-đun tính toán chỉ số MA tùy chỉnh.
Trước tiên, hãy nói về mẫu thư mục giao dịch hiện tại của đồng tiền kỹ thuật số, được đặt tại:https://www.fmz.com/strategy/10989Mặc dù mẫu này là mẫu ngôn ngữ JavaScript của nền tảng FMZ, nhưng những người không hiểu khái niệm mẫu có thể truy vấn tài liệu API FMZ:https://www.fmz.com/api#模板类库:) Tuy nhiên, có một đoạn chú thích ở phần đầu của mẫu có định nghĩa mã của mô-đun trực quan hóa, và mã được định nghĩa có thể tham khảo mã của mẫu JavaScript này. Điều này rất thuận tiện khi chúng ta tự mở rộng (đưa ra một ví dụ tốt, chúng ta hãy bắt chước).
Các thư viện giao dịch hiện tại tiền kỹ thuật số, định nghĩa trực quan ở phần đầu:
/*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
}
*/
Các mô-đun trong trang chỉnh sửa trực quan tương ứng:
Với những ví dụ sẵn có, việc tự mình xây dựng rất đơn giản, thậm chí còn dễ dàng hơn so với vẽ tranh.
Đầu tiên, tạo một mẫu mới cho ngôn ngữ JavaScript.
Bạn có thể làm điều này bằng cách sử dụng các mô hình trên trang web của bạn.
/*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
}
*/
Sau khi chỉnh sửa mẫu mới này, hãy lưu. Trong chính sách mà chúng ta cần sử dụng mẫu này, hãy chọn mẫu này.
Bạn có thể thấy thêm hai mô-đun:
Một mô-đun được gọi là testA, và chúng ta hãy xem mã thực thi của nó:
function(){return 99;}()
Đây là một hàm JavaScript rất đơn giản, thực hiện và trả về một số 99.
Chúng ta hãy nhìn vào mã thực thi của nó:
(function(){var r = exchange.GetRecords(); return (!r || r.length < %1) ? false : TA.MA(r, %1); })()
Mã là một cuộc gọi chức năng ẩn danh, trong đó chức năng ẩn danh được thực hiện trước tiên để lấy dữ liệu đường K, dữ liệu đường K.r
│ Sau đó dựa trên r được lấy là chonull
Hoặcr
Chiều dài là không nhỏ hơn các tham số đầu vào của module%1
Trở lạifalse
Hoặc quay lại.TA.MA(r, %1)
Kết quả của các chỉ số được tính toán
Bạn có thể sử dụng nó sau này.
Những người tham gia vào cuộc họp này là những người đã tham gia.
Khởi hành:
Bạn có thể thấy dữ liệu được tính toán cho chỉ số MA nếu bạn muốn.
Trên đây chỉ là một bảng xếp hạng, thiết kế mô-đun trực quan có thể tự mở rộng với chức năng mẫu.