Type/to search

Driver Akselerasi WebSocket

Template
Created: 2024-10-24 18:11:09
Last modified: 7 months ago
12
Follow
658
Followers

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:

  1. Inisialisasi: Gunakan $.setupWebsocket() untuk menginisialisasi koneksi WebSocket ke bursa target.
  2. Langganan: Sistem akan secara otomatis berlangganan saluran yang relevan (misalnya, kedalaman, perdagangan, dll.) untuk instrumen yang Anda perdagangkan.
  3. Pengambilan Data: Dengan memanggil fungsi GetDepth() dan GetTrades(), data real-time dari WebSocket akan digunakan secara otomatis untuk mengembalikan kedalaman pasar dan catatan perdagangan.
  4. 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 } }
Source
JavaScript
// @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
    }
Comment
All comments (4)

    Warning: __Thread is deprecated. Please use threading.Thread instead.
    麻烦能否更新到threading.Thread的版本?

    7 months ago

    已更

    7 months ago

    大佬动作好快,能否加上获取K线的代码呢?感激不尽!

    7 months ago

    K线没有做websocket这个完全没必要最后一根闭合了才生效

    7 months ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)