Драйвер ускорения WebSocket
12
Follow
658
Followers
Библиотека шаблонов для ускорения работы с реальными рыночными данными на основе WebSocket
Описание:
Данная стратегия оптимизирует обработку рыночных данных в реальном времени с нескольких бирж за счёт многопоточных WebSocket-соединений. При использовании WebSocket-подключений на платформе FMZ Quant для получения данных стакана и сделок значительно снижается задержка доступа к рыночным данным и повышается производительность высокочастотных торговых систем.
Основные особенности:
- Поддержка нескольких бирж: стратегия поддерживает WebSocket-соединения с биржами Binance, OKX, Bybit, Bitget и другими, обеспечивая более быстрый и стабильный поток данных по сравнению с традиционным опросом через REST API.
- Настраиваемая подписка: позволяет подписываться на конкретные рыночные каналы (например, стакан, сделки) и эффективно обрабатывать принимаемые данные для немедленного использования в торговых стратегиях.
- Расширенная обработка ошибок: встроенное отслеживание ошибок и механизм переподключения WebSocket гарантируют надёжность и непрерывность потока данных.
- Контрольная сумма CRC32: для таких бирж, как OKX, интегрирована проверка CRC32, обеспечивающая целостность получаемых данных стакана.
Данное решение на основе WebSocket заменяет традиционный опрос API и подходит трейдерам, которым необходимо минимизировать задержки и максимизировать скорость реакции на рынок.
Инструкция по использованию:
- Инициализация: Вызовите
$.setupWebsocket()для инициализации WebSocket-соединений с целевыми биржами. - Подписка: Система автоматически подпишется на соответствующие каналы (например, стакан, сделки) для торгуемых вами инструментов.
- Получение данных: Функции
GetDepth()иGetTrades()будут автоматически возвращать данные стакана и сделок, используя актуальную информацию из WebSocket. - Обработка ошибок: Стратегия включает механизм отслеживания ошибок соединения и данных, а при разрыве соединения автоматически пытается переподключиться.
Этот скрипт предназначен для работы на платформе 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
}Related strategies
