Những người phát minh ra các nền tảng giao dịch định lượngQuảng trường Chiến lượcCó rất nhiều chiến lược thú vị, và hầu hết các sàn giao dịch tiền kỹ thuật số đã được sử dụng.rest
Một số chiến lược dựa trên giao diện API của giao thứcrest
Ngoài ra, một số sàn giao dịch cũng xuất hiện gần đây.rest
Các trường hợp mà các chính sách không được sử dụng. Nếu thay đổi chính sách, tăng khả năng sử dụng.websocket
Việc hỗ trợ giao diện đòi hỏi phải thay đổi một số thay đổi trong mã chính sách, thường là một vấn đề tương đối khó khăn (thay đổi chính sách khó khăn hơn nhiều so với viết lại).
Làm thế nào để không thay đổi chiến lược mà vẫn sử dụng nó?websocket
Và giao diện giao tiếp?
Đây là một ví dụ điển hình về sự linh hoạt mạnh mẽ của nền tảng giao dịch định lượng của nhà phát minh, chúng ta có thể sử dụng:
exchange.GetTicker
Hook hoạt động.Vì vậy, thực hiện, không thay đổi một dòng mã chính sách, để các chính sách được thực hiện bằng cách sử dụng các công cụ khác nhau.websocket
Động cơ dữ liệu được đẩy qua giao diện giao dịch đã hoạt động.
Sử dụng ngôn ngữ viết mãJavaScript
Ngôn ngữ.
Ví dụ, chúng tôi muốn thay đổi một chiến thuật cổ điển, "kẻ phá băng".
Trước tiên chúng ta hãy xem mã của chiến lược và thấy rằng chiến lược này được điều khiển bởi thị trường tick, chủ yếu sử dụngticker
Trong dữ liệuBuy
、Sell
、Last
Những đặc điểm nàyticker
Dữ liệu được lấy từ các chức năng API của nền tảng FMZ:exchange.GetTicker
Nhờ đó, mục tiêu sẽ rõ ràng và chúng ta sẽ có thể thực hiện điều này.exchange.GetTicker
Chức năngHook
Bạn có thể sử dụng các tùy chọn khác nhau để thay thế phiên bản khác.
Tuy nhiên, chúng ta không thể viết lại chiến lược của người phá băng, điều đó sẽ ảnh hưởng đến chiến lược, chúng ta muốn kết nối liền mạch!
Vì vậy, người tiếp theo cần phải tham gia.
init
Sự hợp tác của các hàmChúng tôi đã tạo ra một "thư viện mẫu" tên là:Không mượt mà, mã sơ bộ trống.
Và sau đó choKhông mượt màMô hình đặt 2 tham số
Sử dụng để điều khiển việc mở hoặc khôngwebsocket
Chức năng giao diện, điều khiển chỉ định mở giao diện thị trường cụ thể.exchange.GetTicker
giao diện làm hook thao tác. Vì vậy, chỉ có tham số mởGetTicker
Giao diện là một tham số điều khiển cho websocket mode: Hook_GetTicker.
Một mẫu đã được tạo, bạn có thể viết một giao dịch truy cập cụ thể trong mẫu.websocket
Các mã cụ thể không còn được mô tả, bạn có thể xem mã SeamlessConnWS (đã được công bố) và tài liệu API. Bạn cần xem trong mẫu.init
Các hàm và các biến toàn cầu_DictConnectCreater
、_ConnMap
:
Mã là:
var _DictConnectCreater = {
"Huobi" : WSConnecter_Huobi,
"Binance" : WSConnecter_Binance,
}
var _ConnMap = {}
function init () {
if (IsUsedWebSocket) {
var connectCreater = null
if (exchanges.length != 1) {
Log("切换为ws接口只针对 exchange 交易所对象(即第一个添加的交易所对象)")
}
var isFound = false
for (var name in _DictConnectCreater) {
if (exchange.GetName() == name) {
connectCreater = _DictConnectCreater[name]
isFound = true
}
}
if (!isFound) {
throw "没有找到实现"
}
if (Hook_GetTicker) {
var symbol = exchange.GetCurrency()
_ConnMap.GetTicker = connectCreater("GetTicker", symbol)
exchange.GetTicker = function () {
return _C(_ConnMap.GetTicker.Read)
}
}
// ...
}
}
Bạn có thể thấy rằng mẫu này chỉ thực hiện hai giao dịch.websocket
Các giao dịch giao dịch trên các mạng lưới mạng xã hội trên toàn thế giới, bao gồm các giao dịch giao dịch trên các mạng lưới mạng xã hội trên toàn thế giới.init
Các chức năng là để cho chiến lược của người phá băng trích dẫn.Không mượt màSau khi tạo mẫu, khi chạy đĩa thực, nó sẽ được thực hiện trước.init
Các hàm có thể tự độngexchange.GetTicker
Nội dung của hàm được thay thế thành sử dụngwebsocket
Thực hiện mã của giao diện để thực hiện kết nối liền mạchwebsocket
Các bạn có thể tham gia vào cuộc họp này nhé.
Địa chỉ mẫu của SeamlessConnWS
Đơn giản thôi!Không mượt màSau khi mô hình được sao chép vào thư viện chính sách của riêng bạn, bạn chỉ có thể sử dụng nó để tham khảo chính sách của người phá băng, như sau:
Chọn, lưu, chỉ cần đó thôi.
Xây dựng chiến lược phá băng, robot thực tế, sàn giao dịch chọn Binance❖ Khởi độngKhông mượt màCác tham số điều khiển trên mẫu.
Các bạn có thể tham gia vào chương trình này.
Để dễ dàng nhìn thấy dữ liệu được đẩy, tôi đã thêm vào 157 dòng mã để in nhật ký và xuất dữ liệu được đẩy bởi sàn giao dịch.
Những người tham gia vào cuộc họp này nói rằng:
Điều này không thay đổi một dòng mã chính sách, thực hiện liên kết liền mạch với giao diện thị trường websocket và chính sách.
Đây chỉ là một ví dụ về việc sử dụngexchange.GetTicker
Giải thích các chiến lược của các chức năng giao diện giao diện, ví dụ như các giao diện giao diện khácexchange.GetDepth
、exchange.GetTrades
、exchange.GetRecords
Và cũng giống như vậy!Không mượt màNhững người tham gia cuộc họp này đã được mời đến tham dự.
Liên kết cụ thể trong mẫuwebsocket
thực hiện, sử dụngDial
Các hàm (xem tài liệu API Dial Function) có thể được điều chỉnh theo nhu cầu. Ví dụ:read()
Chọn tham số của hàm-2
Chỉ quay lại.websocket
Dữ liệu mới nhất trong vùng đệm kết nối nhận dữ liệu.
Cảm ơn đã đọc.
congcong009Mongko, bạn có thể thêm một phiên bản Python không?
Cô dâu cũng vậy.Những điều tốt đẹp nên được chia sẻ sớm hơn.
Những nhà phát minh định lượng - những giấc mơ nhỏRất tốt, cảm ơn bạn đã đề nghị.