Разработка AI-модели анализа Order Book DOM для торговли
Order Book (Depth of Market, DOM) — это снимок текущего состояния рынка: все лимитные ордера на покупку (bids) и продажу (asks) с ценами и объёмами. Анализ книги ордеров позволяет оценить краткосрочное давление спроса и предложения за миллисекунды до исполнения торгового сигнала.
Структура данных Order Book
L2 Order Book snapshot:
Price | Bid Volume | Ask Volume
---------|-----------|----------
100.05 | 0 | 5000
100.04 | 0 | 3000
100.03 | 0 | 1500 ← Best Ask
100.02 | 2000 | 0 ← Best Bid
100.01 | 3500 | 0
100.00 | 8000 | 0
99.99 | 2500 | 0
L3 Order Book: индивидуальные ордера с ID — нужен для microstructure анализа, доступен на некоторых биржах (Binance для крипты, CME для фьючерсов через API).
Feature Engineering из Order Book
Базовые метрики:
-
bid_ask_spread: Best Ask - Best Bid (абсолютный и относительный) -
mid_price: (Best Bid + Best Ask) / 2 -
imbalance: (TotalBidVolume - TotalAskVolume) / (TotalBidVolume + TotalAskVolume) -
weighted_mid_price: взвешенная по объёму mid price
Order Book Imbalance (OBI):
def order_book_imbalance(book, levels=5):
bids = [vol for price, vol in book['bids'][:levels]]
asks = [vol for price, vol in book['asks'][:levels]]
return (sum(bids) - sum(asks)) / (sum(bids) + sum(asks))
OBI > 0 → давление покупателей → ожидаемое движение вверх. Это один из сильнейших краткосрочных предикторов (горизонт 1-10 секунд).
Iceberg detection: Скрытые ордера размещаются как серии маленьких ордеров при одной цене. Признаки: быстрое пополнение уровня после исполнения, постоянный объём на уровне несмотря на сделки.
Market depth curves:
def depth_imbalance_at_level(book, price_distance):
bid_vol = sum([vol for p, vol in book['bids'] if (mid - p) <= price_distance])
ask_vol = sum([vol for p, vol in book['asks'] if (p - mid) <= price_distance])
return (bid_vol - ask_vol) / (bid_vol + ask_vol)
# Features: imbalance at 0.1%, 0.3%, 0.5%, 1.0% from mid
Sequence модели для Order Book
Order Book snapshot в каждый момент времени = матрица. Temporal последовательность снимков = 3D тензор.
CNN для пространственного паттерна:
# Book snapshot: [levels × 2 (bid/ask)]
# Temporal: [T × levels × 2]
model = nn.Sequential(
nn.Conv2d(T, 32, kernel_size=(3, 2)), # пространственная
nn.ReLU(),
nn.Conv2d(32, 64, kernel_size=(3, 1)),
nn.ReLU(),
nn.Flatten(),
nn.LSTM(...) # временная
)
DeepLOB (Deep Learning for Limit Order Books): Архитектура из академической литературы (Zhang et al., 2019): CNN + LSTM + Inception modules. Обучается предсказывать mid-price direction за 1-10 торговых событий. AUC 0.65-0.75 на исторических данных LOBSTER (Nasdaq).
Microstructure сигналы
Trade vs. Quote flow:
- Toxic order flow: крупные агрессивные ордера, убирающие ликвидность
- Passive order flow: маркет-мейкеры, добавляющие ликвидность
- Классификация ордеров: Lee-Ready algorithm, tick rule
Volume imbalance: разница между buyer-initiated и seller-initiated объёмами за последние N сделок. Сильный предиктор краткосрочного движения.
Trade arrival rate: интенсивность потока сделок — увеличение перед значимым движением.
Практические ограничения
Latency требования: Для HFT анализа Order Book нужны микросекундные задержки. Для algorithmic trading на горизонте 1-60 секунд достаточно < 10 мс.
Hardware:
- FPGA для true HFT (sub-microsecond)
- Kernel bypass networking: DPDK, OpenOnload
- Co-location в датацентре биржи
Данные:
- Binance: full L2 book через WebSocket
- CME: FIX/MDP3 протокол, co-location обязателен для актуальности
- Crypto aggregated: Tardis.dev (historical L2 data), CoinGecko, Kaiko
Production система анализа DOM
Exchange Feed → FIX/WebSocket → Normalizer → Feature Calculator
↓
ML Model (ONNX)
↓
Signal Generator
↓
Order Management System
Мониторинг в production:
- Feature drift: статистика Order Book меняется в разное время суток
- Model drift: accuracy на последних 1000 предсказаниях
- Regime alerts: при аномально высоком spread или thin book
Сроки: Feature engineering + baseline model (OBI + regression) — 2-3 недели. DeepLOB с L2 данными реального рынка и backtesting — 8-12 недель. Production интеграция с OMS — ещё 4-6 недель.







