Driver Akselerasi WebSocket
Pustaka Template Akselerasi Data Pasar Real-Time Berbasis WebSocket
Deskripsi:
Strategi ini mengoptimalkan pemrosesan data real-time dari beberapa bursa melalui koneksi WebSocket multi-thread. Dengan menggunakan koneksi WebSocket di platform trading kuantitatif FMZ untuk mendapatkan data order book kedalaman dan data perdagangan, secara signifikan mengurangi latensi pengambilan data pasar dan meningkatkan kinerja sistem perdagangan frekuensi tinggi.
Fitur Utama:
- Dukungan Multi-Bursa: Strategi ini mendukung koneksi WebSocket ke beberapa bursa seperti Binance, OKX, Bybit, Bitget, dan lainnya, menyediakan aliran data yang lebih cepat dan lebih stabil dibandingkan dengan polling REST API tradisional.
- Langganan yang Dapat Disesuaikan: Memungkinkan berlangganan saluran pasar tertentu (misalnya, kedalaman, perdagangan, dll.) dan memproses data yang diterima secara efisien untuk segera digunakan oleh strategi trading.
- Penanganan Kesalahan Tingkat Lanjut: Mekanisme pelacakan kesalahan dan penyambungan ulang WebSocket yang terintegrasi, memastikan keandalan dan keberlanjutan aliran data.
- Pemeriksaan CRC32: Untuk bursa seperti OKX, fungsi pemeriksaan CRC32 terintegrasi untuk memastikan integritas data order book yang diterima.
Solusi berbasis WebSocket ini menggantikan polling API tradisional, cocok untuk trader yang perlu meminimalkan latensi dan memaksimalkan kecepatan respons pasar.
Cara Penggunaan:
- Inisialisasi: Gunakan
$.setupWebsocket()untuk menginisialisasi koneksi WebSocket ke bursa target. - Langganan: Sistem akan secara otomatis berlangganan saluran yang relevan (misalnya, kedalaman, perdagangan, dll.) untuk instrumen yang Anda perdagangkan.
- Pengambilan Data: Dengan memanggil fungsi
GetDepth()danGetTrades(), data real-time dari WebSocket akan digunakan secara otomatis untuk mengembalikan kedalaman pasar dan catatan perdagangan. - Penanganan Kesalahan: Strategi ini mencakup mekanisme pelacakan untuk mencatat kesalahan koneksi dan data, serta secara otomatis mencoba menyambung ulang saat koneksi terputus.
Skrip ini dirancang untuk berjalan di platform kuantitatif FMZ, menyediakan akses data pasar yang cepat, andal, dan dapat diskalakan untuk beberapa 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
}