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

Глава 264: Моделирование Price Impact с помощью машинного обучения

Введение

Price impact — неблагоприятное движение цены, вызванное сделкой — является одним из наиболее критически важных, но недооцененных факторов в количественном трейдинге. Стратегия, которая выглядит прибыльной на бумаге, может легко стать убыточной, если учесть реалистичные издержки исполнения. Понимание, измерение и прогнозирование price impact необходимо для:

  • Оптимального исполнения: Минимизации стоимости ликвидации или набора позиции
  • Анализа транзакционных издержек (TCA): Оценки качества работы брокера и алгоритмов
  • Построения портфеля: Учета реалистичных издержек в оптимизации
  • Маркет-мейкинга: Управления рисками инвентаря с точными прогнозами влияния
  • Исследования альфы: Отделения реального сигнала от артефактов рыночного влияния

В этой главе мы исследуем математические основы price impact — от классической теории микроструктуры рынка до современных подходов машинного обучения — с полной реализацией на Rust и интеграцией с Bybit для криптовалютных рынков.

Теоретические основы

Что такое Price Impact?

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

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

Price impact обычно разделяют на:

  • Временное влияние: Транзиторное ценовое смещение, которое обращается после завершения сделки
  • Постоянное влияние: Устойчивое изменение цены, отражающее новую информацию, включенную в цену

Закон квадратного корня

Одно из наиболее устойчивых эмпирических наблюдений в микроструктуре рынка — price impact масштабируется приблизительно как квадратный корень от размера ордера. Модель квадратного корня:

$$\Delta P / P = \sigma \cdot \text{sign}(Q) \cdot \eta \cdot \left(\frac{|Q|}{V}\right)^\delta$$

где:

  • $\sigma$ — дневная волатильность
  • $Q$ — знаковый размер ордера (положительный для покупок)
  • $V$ — средний дневной объем (ADV)
  • $\eta$ — коэффициент влияния (обычно от 0.1 до 1.0)
  • $\delta$ — показатель степени (эмпирически близок к 0.5)

Соотношение квадратного корня $\delta \approx 0.5$ наблюдалось на:

  • Рынках акций (NYSE, NASDAQ, LSE)
  • Фьючерсных рынках
  • Валютном рынке
  • Криптовалютных рынках

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

Калибровка через лог-линеаризацию

Для калибровки модели по наблюдаемым данным берем логарифмы:

$$\ln\left(\frac{|\Delta P / P|}{\sigma}\right) = \ln(\eta) + \delta \cdot \ln\left(\frac{|Q|}{V}\right)$$

Это простая линейная регрессия $y = a + bx$, где:

  • $y = \ln(|\Delta P / P| / \sigma)$
  • $x = \ln(|Q| / V)$
  • $a = \ln(\eta)$, т.е. $\eta = e^a$
  • $b = \delta$

Модель Альмгрена-Крисса

Модель Альмгрена-Крисса (2000) закладывает основу для оптимального исполнения сделок. Она моделирует задачу ликвидации $X$ акций за $T$ периодов при минимизации компромисса между ожидаемой стоимостью и дисперсией стоимости.

Декомпозиция влияния

Модель разделяет влияние на:

  • Постоянное влияние: $g(v) = \gamma \cdot v$ (пропорционально скорости торговли)
  • Временное влияние: $h(v) = \epsilon \cdot \text{sign}(v) + \eta \cdot v$ (фиксированный спред + линейное)

где $v = n_j / \tau$ — скорость торговли (акции за период).

Оптимальная траектория

Оптимальная траектория исполнения минимизирует:

$$\min_{n_1, \ldots, n_N} \left[ E[\text{cost}] + \lambda \cdot \text{Var}[\text{cost}] \right]$$

при условии $\sum n_j = X$ (все акции должны быть исполнены).

Решение:

$$X_j = X \cdot \frac{\sinh(\kappa(T - t_j)\tau)}{\sinh(\kappa T \tau)}$$

где:

  • $\kappa = \sqrt{\lambda \sigma^2 / \tilde{\eta}}$
  • $\tilde{\eta} = \eta - \gamma\tau/2$
  • $\lambda$ — параметр неприятия риска

Ключевой вывод: При большом $\lambda$ (высокое неприятие риска) трейдер исполняет быстро, чтобы избежать неопределенности. При малом $\lambda$ трейдер распределяет исполнение равномерно для минимизации влияния.

Ожидаемая стоимость и дисперсия

Ожидаемая стоимость следования оптимальной траектории:

$$E[\text{cost}] = \frac{1}{2}\gamma X^2 + \sum_{j=1}^{N} \left[\epsilon |n_j| + \tilde{\eta} \frac{n_j^2}{\tau}\right]$$

Дисперсия стоимости:

$$\text{Var}[\text{cost}] = \sigma^2 \tau \sum_{j=1}^{N} X_{j-1}^2$$

Машинное обучение для предсказания влияния

Классические модели улавливают доминирующие эффекты, но упускают важные нелинейные взаимодействия. Модели ML могут учитывать:

  1. Признаки книги заявок: Спред, дисбаланс глубины, позиция в очереди
  2. Рыночный режим: Кластеризация волатильности, моментум, состояние mean-reversion
  3. Временные паттерны: Время суток, день недели, эффекты вокруг событий
  4. Кросс-активные сигналы: Поток заявок по коррелированным активам

Базовая линейная регрессия

Простейший ML-подход — мультивариативная линейная регрессия:

$$\hat{y} = w_0 + \sum_{i=1}^{n} w_i x_i$$

Типичные признаки:

  • Уровень участия: $|Q| / \text{ADV}$
  • Относительный спред: $\text{spread} / P_{\text{mid}}$
  • Реализованная волатильность
  • Знак ордера (индикатор покупки/продажи)
  • Признаки профиля объема

Нейросетевой предсказатель

Для улавливания нелинейных зависимостей используется нейронная сеть прямого распространения:

$$h_1 = \text{ReLU}(W_1 x + b_1)$$ $$h_2 = \text{ReLU}(W_2 h_1 + b_2)$$ $$\hat{y} = W_3 h_2 + b_3$$

Сеть обучается с MSE-функцией потерь методом обратного распространения и стохастического градиентного спуска.

Анализ транзакционных издержек (TCA)

TCA — это пост-торговый анализ качества исполнения. Ключевые метрики:

Implementation Shortfall

Разница между ценой принятия решения (ценой прибытия) и фактической ценой исполнения:

$$\text{IS} = \frac{(P_{\text{exec}} - P_{\text{arrival}}) \cdot \text{sign}(Q)}{P_{\text{arrival}}}$$

Отклонение от VWAP

Сравнение цены исполнения с объемно-взвешенной средней ценой:

$$\text{VWAP Slippage} = \frac{(P_{\text{exec}} - \text{VWAP}) \cdot \text{sign}(Q)}{\text{VWAP}}$$

Стоимость спреда

Стоимость пересечения бид-аск спреда:

$$\text{Spread Cost} = \frac{\text{spread}}{2 \cdot P_{\text{mid}}}$$

Обзор реализации на Rust

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

Модель квадратного корня

Структура SquareRootModel инкапсулирует классическую модель влияния с поддержкой калибровки:

pub struct SquareRootModel {
pub eta: f64, // Коэффициент влияния
pub delta: f64, // Показатель (~0.5)
pub volatility: f64, // Дневная волатильность
pub avg_daily_volume: f64, // ADV
}

Ключевые методы:

  • estimate_impact(order_size) — Вычисляет дробное изменение цены
  • estimate_cost(order_size, mid_price) — Долларовая стоимость влияния
  • calibrate(sizes, impacts) — Подгоняет eta и delta по наблюдаемым данным

Модель Альмгрена-Крисса

AlmgrenChrissModel вычисляет оптимальные траектории исполнения:

pub struct AlmgrenChrissModel {
pub gamma: f64, // Коэффициент постоянного влияния
pub eta: f64, // Коэффициент временного влияния
pub epsilon: f64, // Полуспред
pub volatility: f64, // Дневная волатильность
pub risk_aversion: f64, // Лямбда
}

Нейросетевой предсказатель

MLImpactPredictor — двухслойная нейронная сеть для регрессии с полным обратным распространением ошибки.

Анализатор транзакционных издержек

TransactionCostAnalyzer предоставляет комплексный TCA-анализ, комбинируя модель квадратного корня и опциональную ML-модель.

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

Торговый пример получает реальные данные свечей BTCUSDT через публичный API Bybit:

async fn fetch_bybit_candles(symbol: &str, interval: &str, limit: usize)
-> Result<Vec<Candle>>

Пример последовательно:

  1. Вычисляет реализованную волатильность и средний объем
  2. Симулирует торговые записи с реалистичным проскальзыванием
  3. Калибрует модель квадратного корня
  4. Вычисляет оптимальные траектории Альмгрена-Крисса для разных уровней неприятия риска
  5. Обучает линейную и нейросетевую модели предсказания влияния
  6. Выполняет полный TCA-анализ
  7. Бенчмаркирует скорость вывода всех моделей

Применение в криптовалютном трейдинге

Алгоритмы исполнения

Модели price impact определяют дизайн алгоритмов исполнения:

  • TWAP: Равномерное разделение ордеров. Соответствует Альмгрену-Криссу с $\lambda = 0$.
  • VWAP: Следует ожидаемому профилю объема.
  • Implementation Shortfall: Напрямую оптимизирует целевую функцию Альмгрена-Крисса.
  • Адаптивные алгоритмы: Используют оценки влияния в реальном времени для корректировки скорости исполнения.

Маркет-мейкинг

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

  • Установки спредов, достаточных для покрытия ожидаемого неблагоприятного отбора
  • Управления инвентарем с пониманием влияния своих хедж-сделок
  • Обнаружения токсичного потока ордеров

Оптимизация портфеля с учетом влияния

$$\max_{w} \left[\mu^T w - \frac{\lambda}{2} w^T \Sigma w - \text{ImpactCost}(w - w_{\text{current}})\right]$$

Это штрафует большие изменения портфеля, приводя к более плавной ребалансировке.

Практические соображения

Особенности криптовалютных рынков

  • Фрагментированная ликвидность: Ликвидность распределена по множеству бирж
  • Торговля 24/7: Нет закрывающего аукциона для концентрации ликвидности
  • Высокая волатильность: Большие естественные движения цен могут маскировать влияние
  • Ставки финансирования: Бессрочные фьючерсы имеют периодическое финансирование

Ограничения моделей

  • Закон квадратного корня — эмпирическая закономерность, а не физический закон
  • Альмгрен-Крисс предполагает постоянные параметры; в реальности волатильность и ликвидность меняются
  • ML-модели могут переобучаться на конкретные рыночные режимы
  • Все модели предполагают, что влияние — функция только характеристик сделки

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

  1. Price impact масштабируется как квадратный корень от размера ордера — наиболее универсальное наблюдение в микроструктуре рынка. Удвоение размера ордера увеличивает влияние лишь на ~41%.

  2. Модель Альмгрена-Крисса предоставляет строгий способ компромисса между скоростью исполнения и неопределенностью стоимости.

  3. Машинное обучение расширяет классические модели, улавливая нелинейные зависимости между характеристиками сделки и реализованным влиянием.

  4. Анализ транзакционных издержек необходим для оценки качества исполнения.

  5. Калибровка важнее сложности модели. Хорошо откалиброванная модель квадратного корня часто превосходит плохо обученную нейронную сеть.

  6. Модели влияния позволяют строить лучшие торговые стратегии — от оптимальных алгоритмов исполнения до оптимизации портфеля с учетом влияния.

Запуск кода

Окно терминала
cd 264_price_impact_modeling/rust
# Запуск всех тестов (11 тестов)
cargo test
# Запуск торгового примера с данными Bybit
cargo run --example trading_example

Литература

  1. Kyle, A. S. (1985). “Continuous Auctions and Insider Trading.” Econometrica.
  2. Almgren, R., & Chriss, N. (2000). “Optimal Execution of Portfolio Transactions.” Journal of Risk.
  3. Bershova, N., & Rakhlin, D. (2013). “The Non-Linear Market Impact of Large Trades.” Annals of Finance.
  4. Bacry, E., et al. (2015). “Market Impacts and the Life Cycle of Investor Orders.”
  5. Toth, B., et al. (2011). “Anomalous Price Impact and the Critical Nature of Liquidity in Financial Markets.” Physical Review X.
  6. Cont, R., Kukanov, A., & Stoikov, S. (2014). “The Price Impact of Order Book Events.” Journal of Financial Econometrics.
  7. Bucci, F., et al. (2020). “Co-Impact: Crowding Effects in Institutional Trading Activity.” Quantitative Finance.