2.8 Chuyển đổi phương thức cập nhật dữ liệu thị trường

Tác giả:Giấc mơ nhỏ, Tạo: 2016-07-13 10:08:50, Cập nhật: 2017-10-11 10:21:29

Chuyển đổi phương thức cập nhật dữ liệu thị trường

  • Dưới đây là một bản giới thiệu trong tài liệu API:
// 只支持Websocket模式(huobi, okcoin.cn, BTCC支持)与商品期货CTP协议
exchange.IO("websocket"); // 切换行情通信协议到websocket(默认为rest), Ticker, Depth会切换为websocket协议来更新, 商品期货CTP无需切换
// 切换GetTicker, GetDepth数据更新模式
exchange.IO("mode", 0); // 立即返回模式, 如果当前还没有接收到交易所最新的行情数据推送, 就立即返回旧的行情数据, 如果有新的数据就返回新的数据
exchange.IO("mode", 1); // 缓存模式(默认模式), 如果当前还没有收到交易所最新的行情数据(同上一次api获取的数据比较), 就等待接收然后再返回, 
                        //如果调用该函数之前收到了最新的行情数据, 就立即返回最新的数据
exchange.IO("mode", 2); // 强制更新模式, 进入等待一直到接收到交易所下一次的最新推送数据后返回
// 如果想第一时间获取最新的行情可以切换到websocket后不Sleep的立即检测数据, GetTicker, GetDepth用缓存模式进行工作
exchange.IO("websocket");
while (true) {
    Log(exchange.GetTicker());
}
  • Để người dùng dễ dàng hiểu, hãy xem chi tiết dưới đây:

    • 1, hệ thống nền tảng mặc định là chế độ rest: trong chế độ rest, một lần yêu cầu dữ liệu API, máy chủ giao dịch trả về một dữ liệu ((hiện tại mới nhất) Máy chủ giao dịch không chủ động đẩy dữ liệu mới nhất đến người dùng. Vì vậy, các chính sách cần phải yêu cầu dữ liệu thường xuyên khi sử dụng chế độ rest để đảm bảo có thể lấy dữ liệu mới nhất kịp thời ((không nhất thiết phải có thể có được thời gian đầu tiên khi dữ liệu mới được tạo ra, bởi vì một câu hỏi trả lời, câu hỏi trả lời).

    • 2, API hỗ trợ websocket mode có GetTicker, GetDepth.exchanges[0].IO("websocket");Sau đó, bạn mở websocket mode, Những học sinh cẩn thận có thể thấy tại sao exchanges[0] được viết như vậy.imgVí dụ, hai sàn giao dịch (có thể nhiều hơn) được thêm vào một chính sách và một trong những đối tượng toàn cầu được xác định trên nền tảng là một mảng đại diện cho tất cả các sàn giao dịch được thêm vào chính sách, mảng này là exchanges Mảng đối tượng giao dịch, đối tượng giao dịch chính là phần đầu tiên của mảng: exchanges[0] Mảng giao dịch token;; đối tượng giao dịch thứ hai: exchanges[1] OKCoin Mảng giao dịch token;; giao dịch được hỗ trợ bởi websocket là tất cả các token token, OKCoin Cash, BTCC;; CTP Commodity Futures là giao thức CTP mặc định, tương tự như websocket, không cần chuyển đổi khi sử dụng;;

    • Sự khác biệt giữa websocket và rest: trong websocket, người quản lý gửi yêu cầu đăng ký cho máy chủ giao dịch, sau khi máy chủ giao dịch nhận được. Khi có dữ liệu mới nhất, nó sẽ được đẩy chủ động đến người quản lý. Người quản lý lưu trữ dữ liệu này, khi robot chiến lược yêu cầu dữ liệu, dữ liệu sẽ nhanh chóng được lấy và dữ liệu là mới nhất.

    • 4, sau khi khởi động websocket mode, có 3 chế độ làm việc có thể được thiết lập:

      • <1> exchange.IO("mode",0);// Instant Return Mode: Mô hình này trả về dữ liệu hiện tại (tức là mới nhất hiện tại) ngay lập tức.

      • <2> exchange.IO("mode", 1);// Cache mode ((Default mode): Mô hình này có 2 nhánh xử lý, Đầu tiên, khi API yêu cầu dữ liệu, nếu dữ liệu hiện tại được lưu trữ không cập nhật so với dữ liệu được lấy trước đó, API yêu cầu dữ liệu sẽ chờ để nhận và nhận lại. Thứ hai, khi API yêu cầu dữ liệu, nó sẽ trả về dữ liệu mới nhất ngay lập tức nếu dữ liệu hiện tại được lưu trữ so với dữ liệu được lấy từ API trước đó (tức là dữ liệu giao dịch mới nhất được nhận trước khi gọi dữ liệu yêu cầu API).

      • <3> exchange.IO("mode", 2);// Mode Update bắt buộc: Mô hình này có thể dễ dàng bị nhầm lẫn với một nhánh logic của mô hình lưu trữ, nhưng chỉ cần suy nghĩ thì sẽ hiểu được. Chế độ lưu trữ là để phán đoán liệu dữ liệu được lưu trữ có mới nhất hay không. Trong khi đó, chế độ bắt buộc cập nhật là bất kể thị trường hiện tại có mới nhất hay không, tất cả đều bắt buộc phải chờ cho đến khi dữ liệu thị trường mới nhất tiếp theo được đẩy đến.


Thêm nữa

hokshelato```js function main (() { Exchange.IO (("websocket"); while (true) { Log ((exchange.GetTicker))); `` SetLastError is not defined. SetLastError is not defined. SetLastError is not defined. SetLastError is not defined. 2. Mô hình đĩa báo cáo lỗi, `Futures_OP 4: thời gian không hỗ trợ `, sau đó chỉ nhận được một dữ liệu ticker, và robot không thể dừng lại một cách bình thường, liên tục nhắc nhở các ticker dừng lại, cần phải tự động tắt.

FangBeiCó bao nhiêu đoạn dữ liệu được lưu trữ và mất bao lâu để được xóa?

hokshelatoĐược rồi, cảm ơn!

Giấc mơ nhỏ1, Không rest trong kiểm tra lại, phần websocket.................................................... 2, ổ đĩa tương tự cũng không có websocket mode. Tài liệu viết rằng chỉ có OKEX token pro hỗ trợ giao thức websocket.

Giấc mơ nhỏTrong khi đó, một số trang web khác cũng có thể lưu trữ tối đa hàng trăm hoặc hàng ngàn bài viết, cụ thể hơn là tôi sẽ kiểm tra.