2.8 Memindahkan mode pembaruan data pasar (detail)

Penulis:Mimpi kecil, Dibuat: 2016-07-13 10:08:50, Diperbarui: 2017-10-11 10:21:29

Mengubah mode pembaruan data pasar

  • Di bawah ini adalah deskripsi dari dokumen 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());
}
  • Untuk memudahkan penggunanya, berikut ini adalah rincian:

    • 1, Sistem platform secara default adalah mode rest: satu kali permintaan data API dalam mode rest, server bursa mengembalikan satu kali data (yang paling baru saat ini), dan satu kali permintaan data API dalam mode rest, server bursa mengembalikan satu kali permintaan data (yang paling baru saat ini). Server bursa tidak secara proaktif mendorong data terbaru ke pengguna. Oleh karena itu, strategi menggunakan mode rest yang membutuhkan permintaan data yang sering untuk memastikan bahwa data terbaru dapat diperoleh tepat waktu (tidak selalu dapat diperoleh pada saat pertama data baru dihasilkan, karena satu pertanyaan, satu jawaban).

    • 2. API yang didukung dengan mode websocket memiliki GetTicker, GetDepth.exchanges[0].IO("websocket");Setelah fungsi, buka mode websocket. Siswa yang berhati-hati mungkin melihat mengapa exchanges[0] ditulis seperti ini. Lihat gambar di bawah ini.imgSebagai contoh, jika dua bursa ditambahkan ke dalam suatu kebijakan (bisa juga lebih dari satu), satu array dari objek global yang didefinisikan oleh platform mewakili semua bursa yang ditambahkan ke dalam kebijakan, yaitu array exchanges. Array obyek bursa, dengan objek bursa utama adalah yang pertama dari array: exchanges[0] obyek bursa token. Objek bursa kedua: exchanges[1] Objek bursa OKCoin.Exchange exchanges[0].Transaksi yang mendukung websocket adalah semua mata uang token, OKCoin Cash, BTCC.

    • Perbedaan antara modus websocket dan rest: dalam modus websocket, administrator mengirim permintaan berlangganan ke server bursa, setelah server bursa menerimanya. Setiap kali ada data terbaru, data tersebut akan di-push secara proaktif ke administrator. Administrator menyimpan data ini, sehingga ketika robot kebijakan meminta data, data tersebut akan segera diperoleh, dan data tersebut adalah terbaru.

    • 4. Setelah websocket mode diaktifkan, ada tiga mode kerja yang dapat diatur:

      • <1> exchange.IO("mode",0);//Mode instant return: Mode ini akan segera mengembalikan data saat ini (yang terbaru saat ini).

      • <2> exchange.IO("mode", 1);// cache mode ((default mode): Mode ini memiliki dua cabang pemrosesan, yaitu: Pertama, pada saat API meminta data, jika data yang disimpan saat ini dibandingkan dengan data yang diperoleh API sebelumnya tidak terbaru, API yang meminta data akan menunggu untuk menerima dan menerima kembali. Kedua, pada saat API meminta data, jika data yang disimpan saat ini dibandingkan dengan data yang diperoleh API sebelumnya (yaitu data transaksi terbaru diterima sebelum data permintaan API dipanggil), data terbaru akan segera dikembalikan.

      • <3> exchange.IO("mode", 2);//Mode pembaruan paksa: Mode ini mungkin mudah bingung dengan cabang logis dari mode cache, tetapi jika dipikir-pikir, itu jelas. Modus cache adalah untuk menilai apakah data yang disimpan adalah terbaru. Sedangkan modus update wajib adalah menunggu sampai data pasar terbaru berikutnya dipindahkan, apakah pasar saat ini terbaru atau tidak.


Lebih banyak

Hokshelato``js fungsi main (() { exchange.IO (("websocket"); sementara (benar) { Log ((exchange.GetTicker))); Aku tidak tahu. Aku tidak tahu. `` 2.12 - ReferenceError: setLastError is not defined, diduga karena sistem retargeting tidak mendukung push data asynchronous. 2. Analog disk error report, `Futures_OP 4: period not support `, lalu hanya menerima data ticker, dan robot tidak dapat berhenti secara normal, terus-menerus memintanya untuk berhenti, dan harus mati secara manual.

FangBeiBerapa banyak data yang disimpan? Berapa lama waktu yang dibutuhkan untuk membersihkannya?

HokshelatoSaya mengerti, terima kasih!

Mimpi kecil1, Tidak ada rest dalam retest, bagian websocket. 2, Disk analog juga tidak memiliki mode websocket. Dokumen yang ditulis Hanya OKEX token pro yang mendukung protokol websocket.

Mimpi kecilSaya ingin melihat lebih lanjut tentang beberapa artikel yang dapat disimpan di atas ratusan hingga ribuan artikel.