Pemacu Pecutan WebSocket
Perpustakaan Templat Pecutan Data Pasaran Masa Nyata Berasaskan WebSocket
Penerangan:
Strategi ini mengoptimumkan pemprosesan data masa nyata dari pelbagai bursa melalui sambungan WebSocket berbilang-thread. Dengan menggunakan sambungan WebSocket di platform perdagangan kuantitatif FMZ untuk mendapatkan data buku pesanan kedalaman dan data transaksi, ia mengurangkan kependaman mendapatkan data pasaran dengan ketara dan meningkatkan prestasi sistem perdagangan frekuensi tinggi.
Ciri-ciri utama:
- Sokongan Pelbagai Bursa: Strategi ini menyokong sambungan WebSocket ke beberapa bursa seperti Binance, OKX, Bybit, Bitget, menyediakan aliran data yang lebih pantas dan lebih stabil berbanding dengan pengundian REST API tradisional.
- Langganan Boleh Disesuaikan: Membenarkan langganan saluran pasaran tertentu (seperti kedalaman, transaksi, dll.) dan memproses data yang diterima dengan cekap untuk digunakan segera oleh strategi perdagangan.
- Pengendalian Ralat Lanjutan: Mempunyai mekanisme penjejakan ralat dan sambungan semula WebSocket terbina dalam untuk memastikan kebolehpercayaan dan kesinambungan aliran data.
- Pengesahan CRC32: Untuk bursa seperti OKX, ia mengintegrasikan fungsi pengesahan CRC32 untuk memastikan integriti data buku pesanan yang diterima.
Penyelesaian berasaskan WebSocket ini menggantikan pengundian API tradisional, sesuai untuk pedagang yang perlu meminimumkan kependaman dan memaksimumkan kelajuan respons pasaran.
Cara Penggunaan:
- Inisialisasi: Gunakan
$.setupWebsocket()untuk memulakan sambungan WebSocket ke bursa sasaran. - Langganan: Sistem akan melanggan saluran yang berkaitan (seperti kedalaman, transaksi, dll.) secara automatik untuk pasangan dagangan anda.
- Pengambilan Data: Dengan memanggil fungsi
GetDepth()danGetTrades(), data kedalaman pasaran dan rekod transaksi akan dikembalikan secara automatik menggunakan data masa nyata WebSocket. - Pengendalian Ralat: Strategi ini merangkumi mekanisme penjejakan untuk merekodkan ralat sambungan dan data, dan secara automatik cuba menyambung semula apabila sambungan terputus.
Skrip ini bertujuan untuk berjalan di platform kuantitatif FMZ, menyediakan akses data pasaran yang pantas, boleh dipercayai dan berskala untuk pelbagai bursa.
javascript
function main() {
$.setupWebsocket()
while (true) {
exchanges.map(e=>{
Log(e.GetName(), e.GetDepth())
Log(e.GetName(), e.GetTrades())
// support custom and auto subscribe Eg: e.GetDepth('ETH_USDT')
})
EventLoop(100) // trigger by websocket or use Sleep control delay
}
}
// @ts-check
$.setupWebsocket = function (main_exchanges) {
let crc32 = function (r) {
for (var a, o = [], c = 0; c < 256; c++) {
a = c;
for (var f = 0; f < 8; f++) a = 1 & a ? 3988292384 ^ a >>> 1 : a >>> 1;
o[c] = a
}
for (var n = -1, t = 0; t < r.length; t++) n = n >>> 8 ^ o[255 & (n ^ r.charCodeAt(t))];
return (-1 ^ n) >>> 0
}