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

Глава 270: Микроструктурные признаки для торгового ML

Введение

Микроструктура рынка — это изучение механизмов и процессов, посредством которых торгуются ценные бумаги. В то время как традиционный технический анализ фокусируется на паттернах цены и объёма, видимых на графиках, микроструктурный анализ углубляется в детальную механику взаимодействия ордеров, предоставления и потребления ликвидности, а также процесса включения информации в цены. Для моделей машинного обучения в трейдинге микроструктурные признаки предлагают богатый, часто недоиспользуемый источник предсказательного сигнала, который улавливает поведение информированных и неинформированных участников рынка на самом детальном доступном уровне.

Основная предпосылка проста: цены не движутся случайно. Они движутся потому, что участники с информацией (или предполагаемой информацией) размещают ордера, которые потребляют ликвидность. След этой активности виден в книге ордеров, в паттерне сделок и в связи между потоком ордеров и изменениями цены. Извлекая и конструируя признаки из этих микроструктурных данных, мы можем строить ML-модели, которые предвидят краткосрочные движения цен, обнаруживают смену режимов и более эффективно управляют рисками исполнения.

В этой главе мы разрабатываем комплексную библиотеку микроструктурных признаков на Rust, предназначенную для вычислений в реальном времени на данных криптовалютного рынка Bybit. Мы рассматриваем теоретические основы, математические выводы, детали реализации и практические соображения по интеграции этих признаков в торговые ML-пайплайны.

Ключевые микроструктурные признаки

1. Спред бид-аск

Спред бид-аск — это наиболее фундаментальная микроструктурная мера. Он представляет стоимость немедленности: цену, которую трейдер платит за немедленное исполнение вместо ожидания контрагента.

Абсолютный спред:

$$S_{abs} = P_{ask} - P_{bid}$$

где $P_{ask}$ — лучшая цена аск, а $P_{bid}$ — лучшая цена бид.

Относительный спред (пропорциональный спред):

$$S_{rel} = \frac{P_{ask} - P_{bid}}{M}$$

где $M = \frac{P_{ask} + P_{bid}}{2}$ — средняя цена (мидпрайс).

Относительный спред нормализуется по уровню цены, что делает его сопоставимым между различными активами и периодами времени. Сужение спреда указывает на улучшение ликвидности и снижение транзакционных издержек, тогда как расширение спреда сигнализирует о неопределённости, снижении ликвидности или появлении информированных трейдеров.

Эффективный спред:

Эффективный спред измеряет фактическую стоимость, уплаченную трейдером, учитывая, что сделки могут исполняться по ценам лучше или хуже котируемого спреда:

$$S_{eff} = 2 \cdot |P_{trade} - M|$$

где $P_{trade}$ — цена исполнения, а $M$ — мидпрайс в момент исполнения. Множитель 2 нормализует меру для сопоставимости с котируемым спредом.

2. Дисбаланс ордеров

Дисбаланс ордеров фиксирует асимметрию между давлением покупки и продажи в книге ордеров. Это один из сильнейших краткосрочных предикторов направления цены.

Дисбаланс на основе объёма:

$$OI = \frac{V_{bid} - V_{ask}}{V_{bid} + V_{ask}}$$

где $V_{bid}$ — общий объём на лучших уровнях бида, а $V_{ask}$ — общий объём на лучших уровнях аска. Этот коэффициент варьируется от -1 (весь объём на стороне аска) до +1 (весь объём на стороне бида).

Положительный дисбаланс указывает на большее количество размещённых ордеров на покупку, чем на продажу, предполагая восходящее ценовое давление.

Дисбаланс на основе сделок:

$$TI = \frac{V_{buy} - V_{sell}}{V_{buy} + V_{sell}}$$

где $V_{buy}$ и $V_{sell}$ — объёмы сделок, инициированных покупателями и продавцами за данное окно.

3. Лямбда Кайла (коэффициент ценового воздействия)

Лямбда Кайла, полученная из основополагающей модели информированной торговли Альберта Кайла 1985 года, измеряет постоянное ценовое воздействие на единицу потока ордеров.

Оценка через регрессию:

$$\Delta P_t = \lambda \cdot OF_t + \epsilon_t$$

где $\Delta P_t$ — изменение цены за интервал $t$, а $OF_t$ — подписанный поток ордеров (объём покупок минус объём продаж) за тот же интервал. Коэффициент $\lambda$ оценивается методом наименьших квадратов.

Более высокая лямбда Кайла указывает на то, что каждая единица потока ордеров сильнее двигает цену, что свидетельствует о более низкой ликвидности и более высокой информационной асимметрии.

Оценка МНК:

$$\lambda = \frac{\sum_{t=1}^{N}(OF_t - \overline{OF})(\Delta P_t - \overline{\Delta P})}{\sum_{t=1}^{N}(OF_t - \overline{OF})^2}$$

4. Коэффициент неликвидности Амихуда

Коэффициент неликвидности Амихуда (Amihud, 2002) измеряет ценовое воздействие на единицу торгового объёма.

$$ILLIQ = \frac{1}{N} \sum_{t=1}^{N} \frac{|r_t|}{V_t}$$

где $r_t$ — доходность за период $t$, а $V_t$ — торговый объём за тот же период.

Интуиция заключается в том, что на неликвидном рынке даже небольшие торговые объёмы вызывают значительные движения цен. Более высокие значения указывают на большую неликвидность.

5. VPIN (синхронизированная по объёму вероятность информированной торговли)

VPIN, введённый Easley, Lopez de Prado и O’Hara (2012), оценивает вероятность того, что торговля является информированной. В отличие от оригинальной модели PIN, VPIN может вычисляться в реальном времени из данных о сделках.

Алгоритм:

  1. Классификация каждой сделки как инициированной покупателем или продавцом
  2. Группировка сделок в корзины фиксированного объёма $V$
  3. Для каждой корзины $\tau$ вычисление объёмов покупки $V^B_\tau$ и продажи $V^S_\tau$
  4. Вычисление VPIN по скользящему окну из $n$ корзин:

$$VPIN = \frac{\sum_{\tau=1}^{n} |V^S_\tau - V^B_\tau|}{n \cdot V}$$

VPIN варьируется от 0 до 1. Более высокие значения указывают на большую вероятность информированной торговли, что связано с повышенным риском неблагоприятного отбора и потенциалом больших ценовых движений.

Важность признаков и предсказательная сила

Микроструктурные признаки черпают свою предсказательную силу из информационной асимметрии между участниками рынка:

  1. Дисбаланс ордеров — Стабильно сильнейший одиночный предиктор краткосрочного направления цены. R-квадрат 5-15% для доходностей следующего периода на тиковом уровне.

  2. VPIN — Отлично подходит для обнаружения смены режимов и надвигающейся волатильности.

  3. Лямбда Кайла — Захватывает информационное содержание потока ордеров. Полезен и как признак, и как индикатор режима.

  4. Спред бид-аск — Индикатор рыночных условий в реальном времени. Динамика спреда более предсказательна, чем его уровень.

  5. Неликвидность Амихуда — Более полезен на низких частотах для кросс-секционного отбора активов.

При комбинации в ML-моделях эти признаки взаимодействуют мощным образом. Например, высокий дисбаланс в сочетании с высоким VPIN и расширяющимся спредом — сильный сигнал направленного движения, вызванного информированной торговлей.

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

Реализация на Rust в rust/src/lib.rs предоставляет полную библиотеку вычисления микроструктурных признаков:

  • MicrostructureCalculator: Основная структура для вычисления всех признаков
  • Вычисления спреда: Абсолютный, относительный и эффективный спреды
  • Дисбаланс ордеров: На основе книги ордеров и на основе сделок
  • Лямбда Кайла: Скользящая OLS-регрессия изменений цены на подписанный поток ордеров
  • Неликвидность Амихуда: Скользящее вычисление с эпсилоном для численной стабильности
  • VPIN: Вычисление по корзинам объёма с настраиваемым размером и длиной окна
  • Интеграция с Bybit: Функции для получения данных книги ордеров и сделок в реальном времени

Интеграция данных Bybit

Реализация подключается к REST API Bybit v5 для получения:

  1. Данных книги ордеров (/v5/market/orderbook): Несколько уровней глубины, цены бид и аск с количествами
  2. Последних сделок (/v5/market/recent-trade): Цена, количество, сторона (покупка/продажа) и временная метка

Для производственного использования рекомендуется:

  • Использовать потоки WebSocket вместо REST-опроса для меньшей задержки
  • Поддерживать локальную реплику книги ордеров с инкрементальными обновлениями
  • Буферизовать сделки для вычислений по скользящим окнам
  • Хранить вычисленные признаки в базе данных временных рядов для обучения ML

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

  1. Микроструктурные признаки улавливают информацию, невидимую для традиционного технического анализа. Книга ордеров, поток сделок и их взаимодействие раскрывают поведение участников на самом детальном уровне.

  2. Дисбаланс ордеров — сильнейший одиночный краткосрочный предиктор. Асимметрия между давлением покупки и продажи надёжно прогнозирует краткосрочное направление цены.

  3. VPIN обнаруживает информированную торговлю в реальном времени. В отличие от классической модели PIN, VPIN вычисляется из данных о сделках без сложной оценки.

  4. Лямбда Кайла количественно оценивает информационное содержание потока ордеров. Рост лямбды сигнализирует об ухудшении ликвидности и увеличении информационной асимметрии.

  5. Комбинации признаков мощнее отдельных признаков. ML-модели, объединяющие несколько микроструктурных признаков, улавливают эффекты взаимодействия.

  6. Rust обеспечивает производительность для вычислений микроструктуры в реальном времени. Абстракции с нулевой стоимостью, безопасность памяти и предсказуемая производительность идеальны для систем с чувствительностью к задержке.

  7. Численная стабильность важна. Вычисления микроструктуры включают отношения, регрессии и бегущие статистики, которые могут давать NaN или бесконечность без надлежащей обработки.

  8. Эффективный спред раскрывает скрытые издержки. Сравнение эффективного и котируемого спредов выявляет скрытую ликвидность или токсичность книги ордеров.