Перейти к содержимому

Глава 272: LOBFrame — Бенчмарк для торговли на основе книги заявок

1. Введение — LOBFrame: унифицированная платформа бенчмаркинга для предсказания LOB

Книга лимитных заявок (Limit Order Book, LOB) — это фундаментальная структура данных в современных электронных рынках. Она фиксирует все активные заявки на покупку и продажу на различных ценовых уровнях, предоставляя детальную картину рыночного спроса и предложения. Предсказание будущего состояния LOB — в частности, направления движения средней цены — стало центральной исследовательской задачей в количественных финансах и машинном обучении.

Однако область давно страдает от проблемы фрагментации. Разные исследовательские группы используют разные наборы данных, разные пайплайны предобработки, разные протоколы оценки и разные разбиения на обучающую/тестовую выборки. Это делает практически невозможным честное сравнение моделей. Модель, которая превосходит другие на одном бенчмарке, может уступать на другом просто из-за различий в нормализации данных или методологии оценки.

LOBFrame решает эту проблему, предоставляя унифицированную платформу бенчмаркинга для задач предсказания на основе LOB. По аналогии со стандартизированными бенчмарками в компьютерном зрении (ImageNet) и обработке естественного языка (GLUE), LOBFrame устанавливает:

  • Стандартизированные пайплайны данных с единообразной нормализацией и конструированием признаков
  • Унифицированные метрики оценки, охватывающие различные аспекты качества предсказания
  • Эталонные реализации базовых моделей (LSTM, CNN, Transformer)
  • Воспроизводимые экспериментальные протоколы с фиксированными разбиениями на обучение/валидацию/тест

Основная задача предсказания в LOBFrame — классификация направления средней цены: по текущему состоянию LOB предсказать, пойдёт ли средняя цена вверх, останется на месте или пойдёт вниз на заданном горизонте предсказания. Эта задача трёхклассовой классификации — наиболее изученная в литературе по LOB.

Почему бенчмаркинг важен для торговли

В производственных торговых системах выбор модели имеет прямые финансовые последствия. Модель с точностью 52% вместо 51% на хорошо откалиброванном бенчмарке может привести к значительной разнице в прибыли/убытках при тысячах сделок. Без стандартизированных бенчмарков команды тратят ресурсы на переимплементацию базовых решений, отладку пайплайнов данных и проведение несравнимых экспериментов.

LOBFrame обеспечивает:

  • Честное сравнение моделей: все модели обучаются и оцениваются на идентичных разбиениях данных
  • Быстрое прототипирование: новые модели могут быть немедленно протестированы против установленных базовых решений
  • Воспроизводимость: результаты могут быть проверены и расширены другими исследователями
  • Оценку трансферного обучения: модели, обученные на одном активе, могут быть оценены на другом в рамках одной платформы

2. Математические основы — стандартизированные метрики оценки

Средняя цена и конструирование меток

Средняя цена в момент времени $t$ определяется как:

$$p_t^{mid} = \frac{p_t^{ask} + p_t^{bid}}{2}$$

где $p_t^{ask}$ — лучшая цена продажи, а $p_t^{bid}$ — лучшая цена покупки.

Для горизонта предсказания $H$ вычисляем сглаженную будущую среднюю цену:

$$\bar{p}{t+H} = \frac{1}{H} \sum{i=1}^{H} p_{t+i}^{mid}$$

Метка $y_t$ конструируется с использованием порога $\theta$:

$$y_t = \begin{cases} +1 & \text{если } \frac{\bar{p}{t+H} - p_t^{mid}}{p_t^{mid}} > \theta \ -1 & \text{если } \frac{\bar{p}{t+H} - p_t^{mid}}{p_t^{mid}} < -\theta \ 0 & \text{иначе} \end{cases}$$

Метрики оценки

LOBFrame требует отчётности по нескольким метрикам для охвата различных аспектов качества предсказания:

Точность (Accuracy):

$$\text{Acc} = \frac{1}{N} \sum_{i=1}^{N} \mathbb{1}[y_i = \hat{y}_i]$$

Precision, Recall и F1-мера (для класса $c$):

$$\text{Precision}_c = \frac{TP_c}{TP_c + FP_c}, \quad \text{Recall}_c = \frac{TP_c}{TP_c + FN_c}$$

$$F_1^c = \frac{2 \cdot \text{Precision}_c \cdot \text{Recall}_c}{\text{Precision}_c + \text{Recall}_c}$$

Макро-усреднённая F1:

$$F_1^{macro} = \frac{1}{C} \sum_{c=1}^{C} F_1^c$$

Коэффициент корреляции Мэттьюса (MCC):

MCC особенно важен для предсказания LOB, так как распределения классов часто несбалансированы. Для многоклассовых задач:

$$\text{MCC} = \frac{\sum_k \sum_l \sum_m C_{kk} C_{lm} - C_{kl} C_{mk}}{\sqrt{\sum_k (\sum_l C_{kl})(\sum_{k’ \neq k} \sum_l C_{k’l})} \cdot \sqrt{\sum_k (\sum_l C_{lk})(\sum_{k’ \neq k} \sum_l C_{lk’})}}$$

где $C$ — матрица ошибок. MCC варьируется от $-1$ до $+1$, где $+1$ означает идеальное предсказание, $0$ — случайное предсказание, а $-1$ — полное расхождение.

Z-Score нормализация

LOBFrame стандартизирует процедуру нормализации с помощью z-score нормализации по каждому признаку:

$$\hat{x}_j = \frac{x_j - \mu_j}{\sigma_j}$$

где $\mu_j$ и $\sigma_j$ — среднее и стандартное отклонение признака $j$, вычисленные только на обучающей выборке (для предотвращения утечки данных).

3. Бенчмарк-модели

3.1 Базовая LSTM

Базовая LSTM обрабатывает снимок LOB как последовательность векторов признаков. Для LOB с $L$ уровнями на каждой стороне входной вектор на каждом шаге имеет размерность $4L$ (цены покупки, объёмы покупки, цены продажи, объёмы продажи).

Архитектура:

  • Входной слой: $4L$-мерный вектор признаков
  • LSTM-слой: скрытая размерность 64, один слой
  • Полносвязный слой: 64 -> 3 (три класса)
  • Softmax выход

LSTM захватывает временные зависимости в последовательности состояний LOB, обучаясь паттернам, таким как накопление дисбаланса потока заявок перед движением цены.

3.2 Базовая CNN

Базовая CNN обрабатывает снимок LOB как двумерную изображениеподобную структуру, где одна ось представляет ценовой уровень, а другая — тип признака (цена vs. объём, покупка vs. продажа).

Архитектура:

  • Вход: матрица $(T, 4L)$, преобразованная в $(T, 4, L)$
  • Conv2D слой: 16 фильтров, ядро $(3, 3)$, ReLU
  • Conv2D слой: 32 фильтров, ядро $(3, 3)$, ReLU
  • Глобальное среднее пулирование
  • Полносвязный: 32 -> 3
  • Softmax выход

CNN отлично справляются с захватом локальных пространственных паттернов в LOB, таких как крупные заявки на определённых ценовых уровнях или симметричная/асимметричная форма книги.

3.3 Базовый Transformer

Базовый Transformer использует механизм самовнимания для моделирования взаимодействий между различными частями LOB без последовательного узкого места LSTM.

Архитектура:

  • Эмбеддинг входа: линейная проекция $4L$ признаков в $d_{model} = 64$
  • Позиционное кодирование (синусоидальное)
  • 2 слоя Transformer-энкодера, 4 головы внимания
  • Классификационная голова: среднее пулирование -> линейный -> 3 класса

Transformer может напрямую обращать внимание на релевантные ценовые уровни независимо от их позиции в последовательности, потенциально более эффективно захватывая дальние зависимости.

4. Нормализация данных и стандарты конструирования признаков

4.1 Стандартный набор признаков

LOBFrame определяет каноничный набор признаков для представления LOB:

Группа признаковПризнакиОписание
Сырые цены$p_1^{bid}, …, p_L^{bid}, p_1^{ask}, …, p_L^{ask}$Цены покупки/продажи на L уровнях
Сырые объёмы$v_1^{bid}, …, v_L^{bid}, v_1^{ask}, …, v_L^{ask}$Объёмы покупки/продажи на L уровнях
Спред$s = p_1^{ask} - p_1^{bid}$Лучший спред покупки-продажи
Средняя цена$p^{mid} = (p_1^{ask} + p_1^{bid}) / 2$Средняя цена
Дисбаланс заявок$OI_l = \frac{v_l^{bid} - v_l^{ask}}{v_l^{bid} + v_l^{ask}}$Дисбаланс объёмов на уровне
Разности цен$\Delta p_l = p_{l+1} - p_l$Ценовые разрывы между уровнями

4.2 Протокол нормализации

  1. Статистики обучающей выборки: вычисление среднего и стандартного отклонения для каждого признака на обучающей выборке
  2. Применение z-score: нормализация всех выборок (обучающей, валидационной, тестовой) с использованием статистик обучающей выборки
  3. Клиппинг: ограничение нормализованных значений в диапазоне $[-5, +5]$ для обработки экстремальных выбросов
  4. Никакой информации из будущего: статистики нормализации никогда не вычисляются с использованием валидационных или тестовых данных

4.3 Временное окно

LOBFrame использует подход скользящего окна:

  • Размер окна $T$: количество последовательных снимков LOB (по умолчанию: 100)
  • Шаг $S$: сдвиг между окнами (по умолчанию: 1 для обучения, $T$ для тестирования)
  • Горизонт предсказания $H$: количество шагов вперёд для конструирования меток (по умолчанию: 10)

5. Реализация на Rust

Наша реализация на Rust обеспечивает высокопроизводительный запуск бенчмарка LOBFrame. Основные компоненты:

  • LobNormalizer: z-score нормализация со статистиками обучающей выборки, включая клиппинг
  • EvaluationMetrics: вычисление точности, макро F1 и MCC из матриц ошибок
  • BaselineLstm / BaselineCnn: упрощённые реализации прямого прохода для бенчмаркинга
  • BenchmarkRunner: оркестрация оценки моделей со стандартизированным протоколом
  • BybitOrderbook: получение данных LOB в реальном времени с биржи Bybit

Реализация использует ndarray для числовых операций и reqwest для HTTP-запросов к API Bybit. Все модели реализуют общий трейт BenchmarkModel, обеспечивая единый интерфейс для различных архитектур.

Проектные решения

  • Архитектура на основе трейтов: все модели реализуют BenchmarkModel с методами predict() и name()
  • Детерминированная оценка: фиксированные случайные зёрна для воспроизводимых результатов
  • Потоковая нормализация: нормализатор может обновляться инкрементально для онлайн-настроек
  • Минимальное копирование: структуры данных LOB избегают ненужных аллокаций

Полную реализацию смотрите в rust/src/lib.rs, пример использования — в rust/examples/trading_example.rs.

6. Интеграция с Bybit

LOBFrame интегрируется с криптовалютной биржей Bybit для предоставления данных LOB в реальном времени для бенчмаркинга. API Bybit предоставляет:

  • Снимки книги заявок: до 200 уровней цен и объёмов покупки/продажи
  • Низкая задержка: REST API для снимков данных, WebSocket для потоковой передачи
  • Множество активов: бессрочные фьючерсные контракты BTCUSDT, ETHUSDT и другие

Архитектура интеграции

Bybit REST API (/v5/market/orderbook)
|
v
Сырой JSON-ответ
|
v
Парсер BybitOrderbook (Rust serde)
|
v
Извлечение признаков LOB
|
v
Z-Score нормализация (LobNormalizer)
|
v
Вход модели (ndarray Array2)
|
v
Запуск бенчмарка (предсказание + оценка)

Интеграция с Bybit позволяет трейдерам:

  1. Получать данные книги заявок в реальном времени для любой поддерживаемой торговой пары
  2. Применять тот же пайплайн нормализации, который используется в исследовательских бенчмарках
  3. Запускать обученные модели на живых данных с единообразной предобработкой
  4. Сравнивать производительность моделей на реальных рыночных данных vs. исторических бенчмарках

Использование API

Реализация использует эндпоинт рыночных данных Bybit v5:

  • Эндпоинт: GET /v5/market/orderbook
  • Параметры: category=linear, symbol=BTCUSDT, limit=50
  • Аутентификация не требуется для публичных рыночных данных

7. Ключевые выводы

  1. Стандартизированные бенчмарки необходимы: без общих протоколов оценки сравнение моделей предсказания LOB бессмысленно. LOBFrame предоставляет инфраструктуру для честного сравнения.

  2. Важны несколько метрик: одной точности недостаточно для несбалансированных данных LOB. F1 и MCC дают дополнительные представления о качестве модели, особенно при перекосе распределений классов.

  3. Нормализация критически важна: z-score нормализация со статистиками только обучающей выборки предотвращает утечку данных и обеспечивает правильное обобщение моделей. Небольшие различия в нормализации могут привести к большим различиям в отчётной точности.

  4. Базовые решения задают планку: базовые решения LSTM, CNN и Transformer устанавливают минимальные пороги производительности. Любая новая модель должна демонстрируемо превосходить эти базовые решения на стандартизированном бенчмарке.

  5. Интеграция с живыми данными связывает исследования и продакшен: используя одну и ту же платформу для исторических бенчмарков и живых данных Bybit, LOBFrame гарантирует, что исследовательские результаты переносятся на производственную производительность.

  6. Rust обеспечивает производственную производительность: реализация на Rust предоставляет скорость, необходимую для обработки LOB в реальном времени, сохраняя гарантии корректности, необходимые для финансовых систем.

  7. Воспроизводимость движет прогресс: фиксированные разбиения, детерминированная оценка и открытые реализации гарантируют, что результаты могут быть проверены и развиты сообществом.

Ссылки

  • Lucchese, L., Pakkanen, M. S., & Veraart, A. E. D. (2024). “LOBFrame: A framework for studying limit order book models.” Quantitative Finance.
  • Zhang, Z., Zohren, S., & Roberts, S. (2019). “DeepLOB: Deep Convolutional Neural Networks for Limit Order Books.” IEEE Transactions on Signal Processing.
  • Ntakaris, A., Magris, M., Stoll, J., Kanber, J., & Iosifidis, A. (2018). “Benchmark dataset for mid-price forecasting of limit order book data with machine learning methods.” Journal of Forecasting.
  • Tran, D. T., Iosifidis, A., Kanniainen, J., & Gabbouj, M. (2018). “Temporal attention-augmented bilinear network for financial time-series data analysis.” IEEE Transactions on Neural Networks and Learning Systems.