Драйвер ускорителя WebSocket
Ускоренная класса шаблонов на основе WebSocket
описывать:
Эта стратегия оптимизирует обработку данных в реальном времени на нескольких биржах с помощью многопоточного подключения к WebSocket. Использование подключения к WebSocket для получения глубокой книги заказов и данных о сделках на квантированной торговой платформе FMZ значительно снижает задержку получения рыночных данных и повышает производительность системы высокочастотных торгов.
Основные характеристики:
- Поддержка нескольких биржЭта стратегия поддерживает WebSocket-соединение с несколькими биржами, такими как Binance, OKX, Bybit и Bitget, обеспечивая более быстрый и стабильный поток данных, чем традиционные опросы REST API.
- Настраиваемая подписка: Позволяет подписаться на определенные рыночные каналы (такие как глубина, торговля и т. д.) и эффективно обрабатывать полученные данные для немедленного использования в торговых стратегиях.
- Расширенная обработка ошибок: Встроенный механизм отслеживания ошибок и повторного подключения WebSocket для обеспечения надежности и непрерывности потока данных.
- CRC32 проверкаДля OKX и других бирж интегрированы функции CRC32 для проверки целостности полученных данных книг заказов.
Это решение на основе WebSocket заменяет традиционные API-опросы и подходит для трейдеров, которым требуется минимизация задержек и максимизация скорости отклика рынка.
Как добраться:
- инициализация:использовать
$.setupWebsocket()Инициализируйте соединение WebSocket с целевым обменом. - подписка: Система автоматически подпишется на соответствующие каналы (такие как глубина, торговля и т. д.) для продуктов, которыми вы торгуете.
- Сбор данных: Позвонив
GetDepth()иGetTrades()Функция автоматически использует данные WebSocket в режиме реального времени для возврата глубины рынка и записей о транзакциях. - Обработка ошибок: Политика включает механизм отслеживания, который регистрирует ошибки подключения и данных и автоматически пытается восстановить подключение в случае потери соединения.
Сценарий предназначен для работы на FMZ Quantum Platform, обеспечивая быстрый, надежный и масштабируемый доступ к рыночным данным для нескольких бирж.
javascript
function main() {
$.setupWebsocket()
while (true) {
exchanges.map(e=>{
Log(e.GetName(), e.GetDepth())
Log(e.GetName(), e.GetTrades())
// support custom and auto subsribe 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
}