Разработка AI-модели прогнозирования цен активов
Прогнозирование цен финансовых активов — задача с высокой шумностью и конкурентной средой. EMH (Efficient Market Hypothesis) в слабой форме говорит: прошлые цены уже учтены рынком. Но на практике micro-inefficiencies существуют, особенно на коротких горизонтах, в менее ликвидных активах и при аномалиях.
Постановка задачи
Не "предсказать цену", а "найти edge": Практическая цель — не точная цена через N дней, а сигнал с положительным ожидаемым значением после транзакционных издержек. Даже модель с MAPE 3% на акциях S&P500 бесполезна, если Sharpe ratio стратегии < 0.
Горизонты и их специфика:
- Intraday (минуты-часы): microstructure signals, order flow imbalance
- Short-term (1-5 дней): momentum, mean reversion
- Medium-term (1-4 недели): earnings, macro catalysts
- Long-term (месяцы): fundamental valuation, factor exposure
Features по категориям
Price-based (технический анализ):
- Returns: log returns за 1, 5, 10, 21 торговый день
- Momentum: 12-1 month momentum (Jegadeesh-Titman factor)
- RSI, MACD, Bollinger Band width — осцилляторы как функции от цены
- Volatility: realized volatility за 5/21/63 дней
Volume-based:
- Volume relative to 20-day average
- Price × Volume (доллар-объём)
- On-Balance Volume (OBV)
- VWAP deviation
Fundamental (для акций):
- P/E, P/B, EV/EBITDA
- EPS growth YoY
- Revenue growth
- Debt/Equity
Alternative data:
- Sentiment из Twitter/Reddit (NLP score)
- Google Trends для consumer stocks
- Satellite imagery (retail parking lots, commodity stores)
- Job postings growth (Glassdoor, LinkedIn)
Архитектура модели
Gradient Boosting (быстрый, интерпретируемый):
import lightgbm as lgb
# Cross-sectional ranking model
model = lgb.LGBMRanker(
objective='lambdarank',
n_estimators=500,
learning_rate=0.05,
max_depth=6
)
Ranking model: для каждого периода предсказываем порядок акций по доходности. Топ-децили покупаем, нижние — шортим (long-short equity strategy).
LSTM для последовательностей:
# Для одного инструмента с временным контекстом
model = Sequential([
LSTM(64, return_sequences=True, input_shape=(60, n_features)),
Dropout(0.2),
LSTM(32),
Dropout(0.2),
Dense(1)
])
60 дней исторических данных → предсказание доходности на 5 дней вперёд.
Temporal Fusion Transformer: лучший выбор при наличии known future covariates (дата earnings, macro events calendar) и 100+ инструментов одновременно.
Правильная валидация
Purged Walk-Forward Cross-Validation:
- Training: t=0 до t=T
- Purge gap: T до T+embargo (устраняем look-ahead из overlapping labels)
- Test: T+embargo до T+embargo+H
- Embargo period: обычно равен горизонту прогноза
Метрики:
- IC (Information Coefficient): корреляция предсказанных и реальных рангов доходности
- IC > 0.05 — слабый, IC > 0.10 — хороший
- ICIR (IC Information Ratio): IC / std(IC) — стабильность
- Sharpe ratio стратегии из сигнала — главная практическая метрика
Из модели в торговую стратегию
Модель → сигнал → позиция → PnL — цепочка с несколькими этапами потерь:
- Signal generation: score ранжирования по universe акций
- Portfolio construction: mean-variance optimization (Markowitz) или equal-weight децили
- Risk управление: ограничения на sector/factor exposure, max position size
- Transaction cost model: bid-ask spread, market impact (Almgren-Chriss)
- Backtesting: с реальными TC и slippage — ключевое!
Реализация через Zipline / Backtrader / QuantConnect или кастомный backtester.
Распространённые ошибки:
- Survivorship bias: обучение только на ныне существующих акциях
- Look-ahead bias в фундаментальных данных (Compustat point-in-time данные)
- Игнорирование transaction costs — модель работает в backtest, не в продакшне
Сроки: базовая cross-sectional модель ранжирования с backtest — 6-8 недель. Полноценная система с alternative data, portfolio construction и transaction cost model — 3-5 месяцев.







