Type/to search

Драйвер ускорения WebSocket

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

Библиотека шаблонов для ускорения работы с реальными рыночными данными на основе WebSocket

Описание:

Данная стратегия оптимизирует обработку рыночных данных в реальном времени с нескольких бирж за счёт многопоточных WebSocket-соединений. При использовании WebSocket-подключений на платформе FMZ Quant для получения данных стакана и сделок значительно снижается задержка доступа к рыночным данным и повышается производительность высокочастотных торговых систем.

Основные особенности:

  • Поддержка нескольких бирж: стратегия поддерживает WebSocket-соединения с биржами Binance, OKX, Bybit, Bitget и другими, обеспечивая более быстрый и стабильный поток данных по сравнению с традиционным опросом через REST API.
  • Настраиваемая подписка: позволяет подписываться на конкретные рыночные каналы (например, стакан, сделки) и эффективно обрабатывать принимаемые данные для немедленного использования в торговых стратегиях.
  • Расширенная обработка ошибок: встроенное отслеживание ошибок и механизм переподключения WebSocket гарантируют надёжность и непрерывность потока данных.
  • Контрольная сумма CRC32: для таких бирж, как OKX, интегрирована проверка CRC32, обеспечивающая целостность получаемых данных стакана.

Данное решение на основе WebSocket заменяет традиционный опрос API и подходит трейдерам, которым необходимо минимизировать задержки и максимизировать скорость реакции на рынок.

Инструкция по использованию:

  1. Инициализация: Вызовите $.setupWebsocket() для инициализации WebSocket-соединений с целевыми биржами.
  2. Подписка: Система автоматически подпишется на соответствующие каналы (например, стакан, сделки) для торгуемых вами инструментов.
  3. Получение данных: Функции GetDepth() и GetTrades() будут автоматически возвращать данные стакана и сделок, используя актуальную информацию из WebSocket.
  4. Обработка ошибок: Стратегия включает механизм отслеживания ошибок соединения и данных, а при разрыве соединения автоматически пытается переподключиться.

Этот скрипт предназначен для работы на платформе FMZ Quant, обеспечивая быстрый, надёжный и масштабируемый доступ к рыночным данным с нескольких бирж.

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)