Bybit Uta Sbe

Bybit UTA SBE (Simple Binary Encoding) DMA protocol & In-Memory L3 Orderbook Engine

Published: 2026-06-25 · Trading

Введение В высокочастотной торговле (HFT) традиционный сериализатор JSON или протокол FIX Tag-Value создают недопустимые задержки (latency) и джиттер (jitter) из-за динамического выделения памяти в ку

⚡ Быстрый ответ

  • Low-latency binary Simple Binary Encoding (SBE) v5 DMA protocol for Bybit, the fixed-offset binary memory layout, and the C++ In-Memory Orderbook Engine with Level 3 order queue tracking.
MemIR AI Agent Summary
Low-latency binary Simple Binary Encoding (SBE) v5 DMA protocol for Bybit, the fixed-offset binary memory layout, and the C++ In-Memory Orderbook Engine with Level 3 order queue tracking.

Executable Parameters

Contracts

RPC Endpoints

wss://stream.bybit.com/v5/trade-sbe

Constants

sbe_schema_id: 5
sbe_version: 1
max_order_book_levels: 65536
max_order_nodes: 262144

Safety Guards

Rule Max Limit Action On Breach

Руководство по интеграции

### Введение
В высокочастотной торговле (HFT) традиционный сериализатор JSON или протокол FIX Tag-Value создают недопустимые задержки (latency) и джиттер (jitter) из-за динамического выделения памяти в куче (heap allocation) и посимвольного парсинга полей. **Simple Binary Encoding (SBE)** решает эту проблему за счет фиксированного расположения полей в памяти (fixed offsets), что позволяет HFT-системам читать и записывать данные напрямую в/из сетевого буфера без парсинга.

### Архитектура Bybit SBE
Интерфейс прямого доступа к рынку (DMA) на Bybit использует SBE v5 на выделенном websocket-эндпоинте `wss://{MMWS url}/v5/trade-sbe` для спотовых инструментов и деривативов в рамках одной TCP-сессии.
SBE-сообщение состоит из фиксированного заголовка (Header) и тела сообщения:
* **Schema ID**: 5
* **Template ID**: Уникальный идентификатор типа сообщения (например, NewOrder, CancelOrder).
* **Block Length**: Фиксированная длина тела сообщения.

Вся структура выравнивается по границе 64 байт (alignas(64)) для оптимального кеширования процессором (L1/L2 Cache Line).

### In-Memory Orderbook Engine (L3 ITCH Feed Parser)
Для поддержания точного состояния стакана HFT-движок считывает бинарный поток событий и обновляет локальную двухуровневую древовидную структуру стакана в оперативной памяти:
1. **PriceLevel**: Хранит цену, суммарный объем на уровне, количество ордеров и ссылки на начало и конец двусвязного списка ордеров.
2. **OrderNode**: Представляет конкретную заявку с её ID, объёмом и временной меткой входа ($ts_{ns}$).

Чтобы полностью исключить системные вызовы `malloc` / `new` во время обработки событий стакана, используется статическая арена памяти (`FixedArena`). Все узлы ордеров и уровней цен аллоцируются в массивах фиксированного размера на этапе инициализации системы.