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

Глава 263: Прогнозирование потока ордеров

Введение

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

На современных электронных рынках каждая сделка оставляет след. Агрессивные покупатели поднимают аск; агрессивные продавцы бьют в бид. Дисбаланс между этими силами, измеренный на коротких временных горизонтах, содержит прогностическую информацию о том, куда двинутся цены. Для алгоритмических трейдеров систематическое измерение и прогнозирование потока ордеров является источником альфы, дополняющим более медленные сигналы, основанные на фундаментальном или техническом анализе.

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

Ключевые концепции

Дисбаланс потока ордеров (OFI)

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

Формально, пусть $P_t^b$ и $P_t^a$ обозначают лучшие цены бид и аск в момент времени $t$, а $V_t^b$ и $V_t^a$ — соответствующие объёмы. OFI в момент $t$ определяется как:

$$OFI_t = \Delta V_t^b - \Delta V_t^a$$

где:

$$\Delta V_t^b = \begin{cases} V_t^b & \text{если } P_t^b > P_{t-1}^b \ V_t^b - V_{t-1}^b & \text{если } P_t^b = P_{t-1}^b \ -V_{t-1}^b & \text{если } P_t^b < P_{t-1}^b \end{cases}$$

$$\Delta V_t^a = \begin{cases} -V_{t-1}^a & \text{если } P_t^a > P_{t-1}^a \ V_t^a - V_{t-1}^a & \text{если } P_t^a = P_{t-1}^a \ V_t^a & \text{если } P_t^a < P_{t-1}^a \end{cases}$$

Положительный OFI указывает на чистое давление покупателей; отрицательный OFI — на давление продавцов. Исследования Cont, Kukanov и Stoikov (2014) продемонстрировали, что OFI является сильным одновременным предиктором ценовых изменений в различных классах активов.

Кумулятивная дельта

Кумулятивная дельта — это накопительная сумма подписанного торгового объёма, где сделки, исполненные по цене аска (инициированные покупателем), положительны, а сделки, исполненные по цене бида (инициированные продавцом), отрицательны:

$$\Delta_T = \sum_{t=1}^{T} \left( V_t^{buy} - V_t^{sell} \right)$$

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

Агрессивные и пассивные ордера

Ордера можно классифицировать по степени их агрессивности:

  • Агрессивные ордера (рыночные ордера и исполняемые лимитные ордера) пересекают спред для немедленного исполнения. Они представляют срочность и убеждённость.
  • Пассивные ордера (неисполняемые лимитные ордера) размещаются в книге заявок и ждут, пока рынок придёт к ним. Они обеспечивают ликвидность и указывают на терпение.

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

Токсичность потока (VPIN)

Синхронизированная по объёму вероятность информированной торговли (VPIN) измеряет долю объёма, которая, вероятно, обусловлена информированными трейдерами. Она была представлена Easley, Lopez de Prado и O’Hara (2012) как прокси в реальном времени для риска неблагоприятного отбора.

Вычисление происходит следующим образом:

  1. Разделить поток сделок на объёмные корзины фиксированного размера $V$.
  2. Для каждой корзины $\tau$ классифицировать сделки как инициированные покупателем ($V_\tau^B$) или продавцом ($V_\tau^S$), используя тик-правило или классификацию массового объёма.
  3. Вычислить дисбаланс ордеров для каждой корзины: $|V_\tau^B - V_\tau^S|$.
  4. Усреднить по последним $n$ корзинам:

$$VPIN = \frac{1}{n} \sum_{\tau=1}^{n} \frac{|V_\tau^B - V_\tau^S|}{V}$$

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

Подходы машинного обучения

Логистическая регрессия для прогноза направления

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

Для вектора признаков $\mathbf{x}_t = [OFI_t, \Delta_t, VPIN_t, \text{spread}_t, \text{volume}_t]$ модель логистической регрессии оценивает:

$$P(y_t = 1 | \mathbf{x}_t) = \sigma(\mathbf{w}^T \mathbf{x}_t + b) = \frac{1}{1 + e^{-(\mathbf{w}^T \mathbf{x}_t + b)}}$$

Модель обучается минимизацией бинарной кросс-энтропийной функции потерь:

$$\mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} \left[ y_i \log \hat{y}_i + (1 - y_i) \log(1 - \hat{y}_i) \right]$$

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

Градиентный бустинг для нелинейных паттернов

Когда связи между признаками потока и направлением цены нелинейны, градиентный бустинг (XGBoost, LightGBM) часто превосходит линейные модели. Эти модели способны улавливать взаимодействия между признаками, например, комбинация высокого VPIN и большого OFI оказывается более предсказательной, чем каждый признак по отдельности.

Ключевые аспекты инженерии признаков для моделей градиентного бустинга:

  • Лаговые признаки: OFI, дельта и VPIN на нескольких периодах ретроспективы (1, 5, 10, 50 обновлений)
  • Скорость изменения: насколько быстро меняются метрики потока
  • Перекрёстные признаки: OFI, скорректированный на спред, дельта, нормализованная по объёму
  • Признаки глубины книги: объём на нескольких ценовых уровнях, не только на лучшем биде/аске

LSTM для последовательного потока

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

LSTM обрабатывает последовательность снимков потока ордеров ${\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_T}$ и учится извлекать временные зависимости:

$$\mathbf{f}_t = \sigma(\mathbf{W}f [\mathbf{h}{t-1}, \mathbf{x}_t] + \mathbf{b}_f)$$ $$\mathbf{i}_t = \sigma(\mathbf{W}i [\mathbf{h}{t-1}, \mathbf{x}_t] + \mathbf{b}_i)$$ $$\tilde{\mathbf{c}}_t = \tanh(\mathbf{W}c [\mathbf{h}{t-1}, \mathbf{x}_t] + \mathbf{b}_c)$$ $$\mathbf{c}_t = \mathbf{f}t \odot \mathbf{c}{t-1} + \mathbf{i}_t \odot \tilde{\mathbf{c}}_t$$ $$\mathbf{o}_t = \sigma(\mathbf{W}o [\mathbf{h}{t-1}, \mathbf{x}_t] + \mathbf{b}_o)$$ $$\mathbf{h}_t = \mathbf{o}_t \odot \tanh(\mathbf{c}_t)$$

Финальное скрытое состояние $\mathbf{h}_T$ подаётся через полносвязный слой и сигмоидную активацию для получения вероятностного прогноза.

Инженерия признаков

Дисбаланс бида/аска

Простейший признак потока — дисбаланс объёма на лучших биде и аске:

$$\text{Imbalance}_t = \frac{V_t^b - V_t^a}{V_t^b + V_t^a}$$

Этот показатель варьируется от -1 (весь объём на аске) до +1 (весь объём на биде). Его можно расширить на несколько уровней книги:

$$\text{Imbalance}t^{(k)} = \frac{\sum{i=1}^{k} V_{t,i}^b - \sum_{i=1}^{k} V_{t,i}^a}{\sum_{i=1}^{k} V_{t,i}^b + \sum_{i=1}^{k} V_{t,i}^a}$$

Сторона инициации сделки

Классификация того, была ли сделка инициирована покупателем или продавцом, является фундаментальной для анализа потока ордеров. Наиболее распространённые подходы:

  • Тик-правило: если цена сделки выше предыдущей сделки, классифицировать как инициированную покупателем. Если ниже — продавцом. Если равна — использовать предыдущую классификацию.
  • Алгоритм Lee-Ready: сравнить цену сделки с серединой текущего спреда бид-аск. Сделки выше середины — инициированы покупателем; ниже — продавцом. Для сделок в середине используется тик-правило.
  • Классификация массового объёма: для агрегированных данных, где отдельные сделки недоступны, приблизить разделение покупок/продаж с помощью нормальной функции распределения, применённой к изменению цены относительно диапазона бара.

Признаки токсичности потока

Помимо базового VPIN, несколько производных признаков отражают различные аспекты токсичности потока:

  • Скорость изменения VPIN: $\Delta VPIN_t = VPIN_t - VPIN_{t-k}$, показывающая, растёт или падает токсичность
  • Z-оценка VPIN: стандартизированный VPIN относительно его скользящего распределения, выделяющий аномальные уровни токсичности
  • Асимметричная токсичность: отдельные VPIN-подобные меры для сторон покупки и продажи, обнаруживающие направленную информированную торговлю

Применения

Генерация альфы

Сигналы потока ордеров могут генерировать альфу несколькими способами:

  1. Краткосрочное направление: OFI и кумулятивная дельта предсказывают следующие 1-100 тиков движения цены. Сильный положительный сигнал OFI запускает длинную позицию; возврат к среднему ожидается по мере поглощения дисбаланса.
  2. Подтверждение моментума: сигналы потока подтверждают или опровергают ценовой моментум. Растущие цены с положительной кумулятивной дельтой подтверждают тренд; растущие цены с отрицательной дельтой предупреждают о надвигающемся развороте.
  3. Событийный подход: внезапные скачки VPIN или дисбаланса потока ордеров могут сигнализировать о предстоящих новостях или крупной институциональной активности до того, как это полностью отразится в цене.

Обнаружение неблагоприятного отбора

Маркет-мейкеры постоянно сталкиваются с риском торговли против информированных контрагентов. Прогнозирование потока ордеров помогает:

  • Идентификация токсичного потока: периоды высокого VPIN указывают на то, что непропорциональная доля сделок исходит от информированных участников. Маркет-мейкерам следует расширить спреды или сократить котировки.
  • Корректировка запасов: когда индикаторы потока предполагают направленное давление, маркет-мейкеры могут смещать свои котировки для снижения нежелательного накопления запасов.
  • Выбор момента возвращения: после периода высокой токсичности метрики потока могут указать, когда безопасно возобновить нормальную маркет-мейкерскую деятельность.

Преимущество маркет-мейкинга

Продвинутые маркет-мейкеры используют прогнозирование потока ордеров для поддержания конкурентного преимущества:

  • Динамическая корректировка спреда: расширение спредов при высокой прогнозируемой токсичности; сужение при сбалансированном потоке.
  • Оптимизация позиции в очереди: использование прогнозов потока для принятия решений о добавлении или отмене ожидающих ордеров.
  • Управление запасами: смещение котировок в направлении, предложенном прогнозами потока, для проактивного управления инвентарным риском.

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

Наша реализация на Rust предоставляет полный набор инструментов для прогнозирования потока ордеров со следующими компонентами:

OrderFlowImbalance

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

CumulativeDelta

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

VPINCalculator

VPINCalculator реализует полный конвейер вычисления VPIN. Он накапливает сделки в объёмные корзины фиксированного размера, классифицирует направление каждой сделки, вычисляет абсолютный дисбаланс ордеров на корзину и усредняет по последним $n$ корзинам. Калькулятор использует тик-правило для классификации сделок и обрабатывает граничные случаи.

OrderFlowClassifier

OrderFlowClassifier реализует логистическую регрессию для бинарного прогноза направления цены. Он принимает векторы признаков, содержащие OFI, кумулятивную дельту, VPIN и дополнительные инженерные признаки. Обучение использует стохастический градиентный спуск с настраиваемой скоростью обучения и количеством эпох.

BybitClient

Структура BybitClient обеспечивает асинхронный HTTP-доступ к Bybit V5 API. Она получает данные kline (свечей) из эндпоинта /v5/market/kline и снимки книги заявок из /v5/market/orderbook.

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

Реализация подключается к REST API Bybit V5 для получения рыночных данных в реальном времени:

  • Эндпоинт Kline (/v5/market/kline): предоставляет OHLCV-данные свечей с настраиваемыми интервалами. Используется для классификации массового объёма и исторического бэктестинга.
  • Эндпоинт книги заявок (/v5/market/orderbook): предоставляет снимок текущей книги лимитных заявок с настраиваемой глубиной. Используется для вычисления OFI и признаков дисбаланса бида/аска.

Ссылки

  1. Cont, R., Kukanov, A., & Stoikov, S. (2014). The price impact of order book events. Journal of Financial Econometrics, 12(1), 47-88.
  2. Easley, D., Lopez de Prado, M. M., & O’Hara, M. (2012). Flow toxicity and liquidity in a high-frequency world. The Review of Financial Studies, 25(5), 1457-1493.
  3. Lee, C., & Ready, M. J. (1991). Inferring trade direction from intraday data. The Journal of Finance, 46(2), 733-746.
  4. Abad, D., & Yague, J. (2012). From PIN to VPIN: An introduction to order flow toxicity. The Spanish Review of Financial Economics, 10(2), 74-83.
  5. Gould, M. D., Porter, M. A., Williams, S., McDonald, M., Fenn, D. J., & Howison, S. D. (2013). Limit order books. Quantitative Finance, 13(11), 1709-1748.