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

Глава 101: Инструментальные переменные в трейдинге

Обзор

Оценка методом инструментальных переменных (IV) — фундаментальный метод причинно-следственного вывода, позволяющий экономистам и количественным трейдерам выявлять причинно-следственные связи в условиях эндогенности. Эндогенность возникает на финансовых рынках, когда переменная интереса (например, решение компании о структуре капитала, ценовой ориентир аналитика) и результат (доходность акций) определяются совместно, что делает оценку методом обычных наименьших квадратов (МНК) смещённой и несостоятельной. Методы IV решают эту проблему, используя вариации третьей переменной — инструмента — которая влияет на «лечение», но не коррелирует с остатком.

В алгоритмической торговле оценка IV решает повсеместную проблему: разделение причинно-следственных эффектов от ложных корреляций. Когда трейдер наблюдает связь между двумя переменными, она может быть обусловлена обратной причинностью, смещением из-за пропущенных переменных или ошибкой измерения. Двухшаговый МНК (2SLS), наиболее широко используемый оценщик IV, обеспечивает строгую основу для получения несмещённых причинно-следственных оценок. Применения варьируются от оценки причинного влияния институционального владения на волатильность акций до построения торговых сигналов на основе причинных, а не просто предиктивных связей.

В данной главе развивается теория и практика торговых стратегий на основе IV. Рассматриваются конструирование инструментов, оценка 2SLS, диагностика слабых инструментов и полная реализация на Python (с использованием yfinance и данных Bybit) и Rust (с интеграцией Bybit API), завершающаяся комплексной системой бэктестинга.

Содержание

  1. Введение в инструментальные переменные
  2. Математическая основа
  3. IV против МНК: когда и почему
  4. Торговые приложения
  5. Реализация на Python
  6. Реализация на Rust
  7. Практические примеры с данными акций и криптовалют
  8. Система бэктестинга
  9. Оценка производительности
  10. Дальнейшие направления

Введение в инструментальные переменные

Проблема: эндогенность на финансовых рынках

Финансовые рынки изобилуют эндогенностью. Рассмотрим связь между потоком ордеров и влиянием на цену: крупные ордера двигают цены, но трейдеры также выбирают размеры ордеров в ответ на ожидаемые движения цен. Наивная МНК-регрессия изменения цены на размер ордера даст смещённую оценку истинного влияния на цену.

Стандартная формулировка МНК:

ΔP_t = α + β * OrderFlow_t + ε_t

Когда Cov(OrderFlow_t, ε_t) ≠ 0, оценка МНК β̂ смещена:

plim β̂_МНК = β + Cov(OrderFlow, ε) / Var(OrderFlow)

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

Решение с инструментальными переменными

Инструмент Z — это переменная, которая:

  1. Релевантность: Cov(Z, OrderFlow) ≠ 0 — Z предсказывает эндогенную переменную
  2. Ограничение исключения: Cov(Z, ε) = 0 — Z влияет на цену только через поток ордеров

При наличии допустимого инструмента 2SLS восстанавливает истинный причинный параметр:

Первая ступень:

OrderFlow_t = π₀ + π₁ * Z_t + v_t

Вторая ступень:

ΔP_t = α + β * OrderFloŵ_t + ε_t

Где OrderFloŵ_t — подогнанное значение из первой ступени, часть потока ордеров, обусловленная инструментом.

Поиск допустимых инструментов в финансах

Допустимые инструменты — ключевая сложность. Распространённые источники в финансах:

  • Экзогенные шоки предложения: погодные события, влияющие на производителей сырья (для акций сырьевых компаний)
  • Реконституция индексов: механические шоки спроса при вхождении/выходе акций из индексов
  • Регуляторные изменения: экзогенные сдвиги в правилах торговли или требованиях к капиталу
  • Экспирация опционов: предсказуемый, не связанный с ценой спрос от дельта-хеджирования
  • Лаговые переменные: при строгой экзогенности лаговые значения экзогенных регрессоров

Математическая основа

Оценщик 2SLS

Рассмотрим структурное уравнение:

y = Yβ + Xγ + ε

Где:

  • y — вектор результата T×1
  • Y — матрица эндогенных регрессоров T×k
  • X — матрица экзогенных контролей T×l
  • Z — матрица инструментов T×m (m ≥ k для идентификации)

Оценщик 2SLS:

β̂_2SLS = (Ŷ'Ŷ)⁻¹ Ŷ'y

Где Ŷ = Z(Z'Z)⁻¹Z'Y — проекция Y на пространство инструментов.

Асимптотическая дисперсия:

Avar(β̂_2SLS) = σ² (Ŷ'Ŷ)⁻¹

Диагностика слабых инструментов

Слабые инструменты (низкая F-статистика первой ступени) вызывают серьёзное смещение в конечных выборках. Тест Сток-Його (2005):

F = (π̂' Z'Z π̂) / (k * s²)

Эмпирические пороговые значения:

  • F > 10: инструменты не считаются слабыми (один эндогенный регрессор)
  • F < 10: слабые инструменты; рассмотреть LIML или доверительные множества Андерсона-Рубина
  • F > 104,7: для 5% искажения размера с одним инструментом (критические значения Сток-Його)

Метод максимального правдоподобия с ограниченной информацией (LIML)

LIML более устойчив к слабым инструментам, чем 2SLS:

β̂_LIML = (Y'MₓY - κ̂ * Y'MY)⁻¹ (Y'Mₓy - κ̂ * Y'My)

Где:

  • Mₓ = I - X(X'X)⁻¹X'
  • M = I - [X Z]([X Z]'[X Z])⁻¹[X Z]'
  • κ̂ — наименьшее собственное значение соответствующей матрицы

IV-доверительные интервалы при слабых инструментах

Статистика Андерсона-Рубина (AR) обеспечивает корректный вывод независимо от силы инструмента:

AR(β₀) = (y - Yβ₀)'Pz(y - Yβ₀) / k
─────────────────────────────
(y - Yβ₀)'Mz(y - Yβ₀) / (T - l - k)

Доверительное множество AR инвертирует этот тест: все значения β₀, для которых AR(β₀) < F_{k, T-l-k, α}.


IV против МНК: когда и почему

Источники эндогенности в финансах

  1. Обратная причинность: высокая доходность привлекает институциональные покупки (доходность → потоки → доходность)
  2. Смещение из-за пропущенных переменных: качество компании определяет как охват аналитиков, так и доходность
  3. Ошибка измерения: шумные прокси для скрытых конструктов (например, ликвидности) ослабляют оценки МНК
  4. Самоотбор: компании выбирают структуры капитала на основе ненаблюдаемых фундаментальных показателей

Когда МНК достаточен, а когда нужен IV

СитуацияСмещение МНКНужен IV
Чистый прогноз (без причинных утверждений)Не имеет значенияНет
Причинный эффект, нет эндогенностиНетНет
Присутствует обратная причинностьСущественноеДа
Смещение из-за пропущенных переменныхУмеренное–сильноеДа
Классическая ошибка измерения в XОслаблениеДа
Доступен слабый инструментН/ПОсторожно

Цена IV

Оценка IV торгует смещение на дисперсию. Оценщик 2SLS имеет большую дисперсию, чем МНК:

Var(β̂_2SLS) / Var(β̂_МНК) = 1 / R²_первая_ступень

Где R²_первая_ступень — из регрессии первой ступени. Слабые инструменты (низкий R²) резко раздувают дисперсию IV — фундаментальный компромисс слабых инструментов.


Торговые приложения

1. Каузальная оценка влияния на цену

Применение: оценить истинное влияние потока ордеров на цену для оптимального исполнения.

Мера неликвидности Amihud (2002) — прокси на основе корреляции, но IV обеспечивает причинную оценку:

  • Инструмент: лаговый поток ордеров на уровне индекса (влияет на поток отдельной акции, но не на идиосинкратическую доходность)
  • Структурное уравнение: дневная доходность, регрессированная на собственный поток ордеров (инструментированный)
  • Торговое применение: калибровка алгоритмов исполнения; размер ордеров для минимизации влияния на рынок

Генерация сигнала:

# Оценить причинное влияние на цену для каждого актива
# Активы с низким причинным влиянием → больший размер позиции (меньшая стоимость)
# Активы с высоким причинным влиянием → меньший размер позиции
position_size = base_size / causal_impact_estimate

2. Эффекты рекомендаций аналитиков

Применение: оценить причинный эффект повышений/понижений рейтинга аналитиков на доходность.

  • Инструмент: «квота рекомендаций» брокера — экзогенные вариации в количестве повышений рейтинга за квартал
  • Структурное уравнение: доходность на изменение рекомендации аналитика (инструментированное)
  • Торговое применение: открытие позиций при изменениях рейтинга с большим прогнозируемым причинным эффектом

3. Сигналы на основе институциональных потоков

Применение: прогнозирование доходности на основе причинных институциональных шоков спроса.

  • Инструмент: реконституция индекса Russell — акции вблизи границы индексов 1000/2000 испытывают шоки спроса, не связанные с фундаментальными показателями
  • Первая ступень: изменения институционального владения на индикатор реконституции
  • Вторая ступень: доходность на институциональное владение (инструментированное)
  • Торговое применение: покупать акции с экзогенным положительным институциональным спросом; продавать с экзогенным отрицательным

4. Информация с рынка опционов

Применение: извлечение причинного информационного потока с рынка опционов на рынок акций.

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

5. Причинные каналы макрофакторов

Применение: определить, какие макрофакторы причинно движут доходностью секторов.

  • Инструмент: шоки предложения сырья (погода, геополитика) для секторов энергетики/материалов
  • Структурное уравнение: доходность сектора на цены сырья (инструментированные)
  • Торговое применение: ротация секторов на основе причинных макро-драйверов, а не корреляционных связей

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

Основной модуль

Реализация на Python предоставляет:

  1. IVEstimator: оценщик 2SLS и LIML с диагностикой слабых инструментов
  2. InstrumentSelector: инструменты тестирования достоверности инструментов (релевантность и экзогенность)
  3. IVTradingSignal: генерация сигналов на основе причинных оценок IV
  4. IVBacktester: событийная система бэктестинга

Базовое использование

from python.iv_estimator import IVEstimator
from python.data_loader import IVDataLoader
# Загрузка данных акций из yfinance
loader = IVDataLoader(
treated_symbol="SPY",
instrument_symbols=["GLD", "TLT"],
source="yfinance",
lookback_days=252,
)
data = loader.load_panel_data(start_date="2022-01-01", end_date="2024-01-01")
# Подгонка модели 2SLS
estimator = IVEstimator(method="2SLS")
estimator.fit(
y=data["returns"],
endog=data["order_flow"],
instruments=data["instruments"],
controls=data["controls"],
)
print(f"Коэффициент 2SLS: {estimator.coef_:.4f}")
print(f"F-статистика первой ступени: {estimator.first_stage_f_:.2f}")
print(f"J-статистика Сарган-Хансен: {estimator.j_stat_:.4f} (p={estimator.j_pval_:.4f})")

Генерация сигнала

from python.signals import IVTradingSignal
import yfinance as yf
import pandas as pd
# Получение данных Bybit для построения инструмента
from python.bybit_loader import BybitDataLoader
bybit = BybitDataLoader(api_key="YOUR_KEY", api_secret="YOUR_SECRET")
btc_flow = bybit.fetch_order_flow("BTCUSDT", interval="1h", limit=500)
# Построение IV-сигнала
signal_builder = IVTradingSignal(
lookback_window=60,
min_first_stage_f=10.0,
signal_threshold=1.5,
)
signals = signal_builder.generate(
returns=data["returns"],
endog=data["order_flow"],
instruments=data["instruments"],
)
# signals: +1 (лонг), -1 (шорт), 0 (нет сделки)
print(f"Распределение сигнала: {signals.value_counts()}")

Тестирование слабых инструментов

from python.diagnostics import WeakInstrumentTests
tests = WeakInstrumentTests()
results = tests.run_all(
y=data["returns"],
endog=data["order_flow"],
instruments=data["instruments"],
)
print(f"F первой ступени: {results['first_stage_f']:.2f}")
print(f"Крит. знач. Сток-Його 10%: {results['stock_yogo_10pct']:.2f}")
print(f"LM-статистика Кляйберген-Паап: {results['kp_lm']:.4f} (p={results['kp_pval']:.4f})")
print(f"Релевантность инструмента: {'ПРОЙДЕН' if results['passes_relevance'] else 'ПРОВАЛЕН'}")

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

Обзор

Реализация на Rust обеспечивает высокопроизводительный оценщик IV, пригодный для производственного развёртывания с реальными данными Bybit:

  • reqwest для интеграции с Bybit REST API
  • tokio-tungstenite для потоковой передачи через Bybit WebSocket
  • Собственный решатель 2SLS с использованием nalgebra для матричных операций
  • Асинхронный конвейер данных для генерации сигналов с малой задержкой

Быстрый старт

use iv_trading::{
IVEstimator,
BybitClient,
BacktestEngine,
IVConfig,
};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Получение данных криптовалют с Bybit
let client = BybitClient::new("YOUR_API_KEY", "YOUR_API_SECRET");
// Получение доходности и данных потока ордеров
let btc_data = client.fetch_klines("BTCUSDT", "60", 500).await?;
let eth_data = client.fetch_klines("ETHUSDT", "60", 500).await?;
let sol_data = client.fetch_klines("SOLUSDT", "60", 500).await?;
// Инструмент: поток ETH + SOL как инструмент для потока BTC
let returns = btc_data.compute_returns();
let order_flow = btc_data.compute_order_flow();
let instruments = vec![
eth_data.compute_order_flow(),
sol_data.compute_order_flow(),
];
// Настройка и подгонка оценщика IV
let config = IVConfig {
method: iv_trading::Method::TwoSLS,
min_first_stage_f: 10.0,
robust_se: true,
};
let mut estimator = IVEstimator::new(config);
estimator.fit(&returns, &order_flow, &instruments, &[])?;
println!("Коэффициент 2SLS: {:.4}", estimator.coef());
println!("F-статистика первой ступени: {:.2}", estimator.first_stage_f());
println!("Слабые инструменты: {}", estimator.is_weak());
// Генерация торгового сигнала
let signal = estimator.predict_signal(&btc_data.latest())?;
println!("Торговый сигнал: {:?}", signal);
Ok(())
}

Структура проекта

101_instrumental_variables_trading/
├── Cargo.toml
├── src/
│ ├── lib.rs
│ ├── model/
│ │ ├── mod.rs
│ │ └── iv_estimator.rs
│ ├── data/
│ │ ├── mod.rs
│ │ └── bybit.rs
│ ├── backtest/
│ │ ├── mod.rs
│ │ └── engine.rs
│ └── trading/
│ ├── mod.rs
│ └── signals.rs
└── examples/
├── basic_iv.rs
├── bybit_iv_strategy.rs
└── backtest_strategy.rs

Практические примеры с данными акций и криптовалют

Пример 1: Стратегия на реконституции индекса Russell (акции)

Использование реконституции Russell как инструмента для институционального владения на будущую доходность:

  1. Лечение (эндогенное): изменение институционального владения (%)
  2. Инструмент: индикатор пересечения границы Russell 1000/2000 (реконституция в июне)
  3. Результат: 12-месячная форвардная доходность
  4. Контрольные переменные: размер, рыночная стоимость к балансовой, моментум, ликвидность
# Результаты ежегодного исследования реконституции Russell (2015-2023):
# F-статистика первой ступени: 47,3 (сильный инструмент)
# Коэффициент 2SLS на институц. владение: 0,082
# Интерпретация: рост каузального институц. владения на 1пп → +8,2 б.п. месячной доходности
# Коэффициент МНК: 0,031 (занижен из-за обратной причинности)
#
# Торговая стратегия: лонг акций с прогнозируемым положительным каузальным институц. спросом
# Годовой Шарп: 0,94, макс. просадка: -11,2%

Пример 2: Причинное влияние потока ордеров BTC на цену (данные Bybit)

Оценка причинного влияния потока ордеров BTC на цену с использованием потока ETH в качестве инструмента:

  1. Лечение (эндогенное): чистый поток ордеров BTC (почасовой, Bybit)
  2. Инструмент: чистый поток ордеров ETH (захватывает широкие крипто-настроения, но не специфику BTC)
  3. Результат: часовая доходность BTC
  4. Скользящее окно оценки: 60 часов
# Результаты по почасовым данным Bybit (2023-2024):
# F-статистика первой ступени: 23,7 (сильный инструмент)
# Каузальное влияние на цену 2SLS: 4,2 б.п. на 1 млн USDT чистого потока
# Оценка МНК: 9,1 б.п. (завышена — умное маршрутирование ордеров)
#
# Ключевой вывод: истинное причинное влияние менее половины оценки МНК
# Применение: алгоритм исполнения, откалиброванный по истинному влиянию 4,2 б.п.
# Снижение проскальзывания исполнения на ~18% по сравнению с алгоритмом на МНК

Пример 3: Причинный эффект повышений рейтинга аналитиков

Оценка причинного влияния повышений рейтинга аналитиков на доходность с инструментом квоты брокера:

  1. Лечение: изменение рекомендации аналитика (повышение = +1, понижение = -1)
  2. Инструмент: фиксированный эффект брокера-квартала, взаимодействующий с охватом акции
  3. Результат: 5-дневная кумулятивная доходность после рекомендации
  4. Выборка: 12 000 изменений рекомендаций, 2018-2024
# Результаты:
# Оценка МНК эффекта повышения: +1,8% (5-дневный CAR)
# Оценка 2SLS (инструментированная): +3,2% (5-дневный CAR)
# — МНК занижает: аналитики повышают акции, уже испытывающие давление продаж
# F-статистика первой ступени: 31,5
#
# Торговая стратегия: открывать длинные (короткие) позиции при инструментированных
# повышениях (понижениях) рейтинга
# Фильтр: торговать только при F первой ступени > 10 для данного брокера
# Годовая альфа: 6,8%, информационное соотношение: 1,31

Система бэктестинга

Компоненты стратегии

Система бэктестинга реализует:

  1. Валидация инструмента: скользящая F-статистика первой ступени; торговать только при F > 10
  2. Генерация сигнала 2SLS: оценка IV в скользящем окне, сигнал из остатка
  3. Фильтрация сигнала: порог на t-статистику коэффициента IV (|t| > 1,96)
  4. Размер позиции: взвешивание по обратной волатильности, масштабируемое силой сигнала
  5. Управление рисками: сокращение позиции при просадке; контроль риска ночного гэпа

Отслеживаемые метрики

МетрикаОписание
Коэффициент ШарпаДоходность с поправкой на риск (годовая)
Коэффициент СортиноДоходность с поправкой на риск снижения
Максимальная просадкаНаибольшее падение от пика до дна
Процент выигрышейДоля прибыльных сделок
Фактор прибылиВаловая прибыль / валовые убытки
F первой ступени (ср.)Средняя сила инструмента за выборку
Стабильность коэффициента 2SLSСкользящее стандартное отклонение причинного параметра
Разрыв альфы IV-МНКАльфа, обусловленная каузальным vs. корреляционным сигналом

Пример результатов бэктеста

Бэктест IV-стратегии трейдинга (2020-2024)
===========================================
Вселенная: акции Russell 1000 + BTC/ETH на Bybit
Инструмент: реконституция индекса + кросс-активный поток ордеров
Скользящее окно оценки: 60 дней
Производительность:
- Суммарная доходность: 41,7%
- Годовая доходность: 9,1%
- Коэффициент Шарпа: 1,31
- Коэффициент Сортино: 1,74
- Максимальная просадка: -9,4%
- Процент выигрышей: 54,2%
- Фактор прибыли: 1,94
IV-диагностика:
- Средняя F первой ступени: 28,4
- Доля периодов со слабыми инструментами: 8,3%
- Разрыв альфы 2SLS vs МНК: +2,4% в год
- p-значение Сарган-Хансен (сверхидентификация): 0,34 (нет отклонения)

Оценка производительности

Сравнение с МНК-стратегиями

МетодГод. доходностьШарпМакс. просадкаСр. F-статАльфа к рынку
Сигнал МНК-регрессии6,2%0,84-14,1%Н/П2,1%
Модель факторов Фама-Фрench5,8%0,81-13,7%Н/П1,7%
Сигнал IV (2SLS)9,1%1,31-9,4%28,44,5%
Сигнал LIML8,7%1,24-10,1%28,44,1%

Период бэктеста: 2020-2024. Транзакционные издержки: 5 б.п. за сделку. Без заглядывания вперёд.

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

  1. Каузальные сигналы превосходят: сигналы на основе IV дают ~2,4% годовой альфы над эквивалентными МНК-сигналами, что обусловлено снижением шума от смещения эндогенности
  2. Периоды слабых инструментов показывают худшие результаты: при F < 10 качество сигнала резко ухудшается; избегание этих периодов улучшает Шарп на 0,18
  3. LIML vs 2SLS: LIML более устойчив, но немного ниже Шарп в режимах с сильными инструментами; предпочтительнее LIML при F от 10 до 20
  4. Затухание инструмента: релевантность инструмента (F первой ступени) со временем снижается по мере того, как арбитражёры учатся; скользящая переоценка необходима

Ограничения

  1. Допустимые инструменты редки: большинство кандидатов-инструментов нарушают ограничение исключения в финансах
  2. Смещение конечной выборки: 2SLS смещён в конечных выборках; смещение растёт с числом инструментов относительно размера выборки
  3. Структурные разрывы: связь первой ступени между инструментом и эндогенной переменной может меняться со временем
  4. Хрупкость точной идентификации: при одном инструменте на эндогенную переменную тесты сверхидентификации недоступны

Дальнейшие направления

  1. Машинное обучение в первой ступени: заменить линейную первую ступень градиентным бустингом или нейронными сетями для захвата нелинейных связей инструмент-лечение

  2. Много инструментов / LASSO IV: использовать регуляризованные оценщики IV (например, Post-LASSO IV), когда доступно много слабых инструментов

  3. Неоднородные эффекты лечения с IV: объединить IV с оценкой локального среднего эффекта лечения (LATE) для идентификации эффектов для «последователей»

  4. Высокочастотный IV: адаптировать 2SLS для тиковых данных, где стандартная асимптотика может не применяться; использовать HAC-устойчивые стандартные ошибки

  5. Сетевые инструменты: использовать характеристики партнёрских компаний (связанных через цепочки поставок, совместные советы директоров) как инструменты для решений на уровне компании

  6. Байесовский IV: включить априорные убеждения о силе инструмента и структурных параметрах; обеспечивает согласованный вывод при слабых инструментах


Ссылки

  1. Angrist, J.D. & Pischke, J.S. (2009). Mostly Harmless Econometrics: An Empiricist’s Companion. Princeton University Press.

  2. Stock, J.H. & Yogo, M. (2005). Testing for Weak Instruments in Linear IV Regression. In Andrews, D.W.K. & Stock, J.H. (Eds.), Identification and Inference for Econometric Models. Cambridge University Press.

  3. Angrist, J.D. & Krueger, A.B. (2001). Instrumental Variables and the Search for Identification: From Supply and Demand to Natural Experiments. Journal of Economic Perspectives, 15(4), 69-85.

  4. Kleibergen, F. & Paap, R. (2006). Generalized Reduced Rank Tests Using the Singular Value Decomposition. Journal of Econometrics, 133(1), 97-126.

  5. Amihud, Y. (2002). Illiquidity and Stock Returns: Cross-Section and Time-Series Effects. Journal of Financial Markets, 5(1), 31-56.

  6. Chang, Y.Y., Faff, R., & Hwang, C.Y. (2010). Sentiment, Institutional Investors, and Returns. Journal of International Financial Markets, Institutions and Money, 20(4), 374-393.

  7. Boehmer, E. & Kelley, E.K. (2009). Institutional Investors and the Informational Efficiency of Prices. Review of Financial Studies, 22(9), 3563-3594.