Розроблення AI-моделі прогнозування цін активів
Прогнозування цін фінансових активів — задача з високою зашумленістю та конкурентним середовищем. EMH (Efficient Market Hypothesis) у слабкій формі говорить: минулі ціни вже враховані ринком. Але на практиці micro-неефективності існують, особливо на коротких горизонтах, у менш ліквідних активах та при аномаліях.
Постановка задачі
Не "передбачити ціну", а "знайти edge": Практична мета — не точна ціна через N днів, а сигнал з позитивним очікуваним значенням після трансакційних видатків. Навіть модель з MAPE 3% на акціях S&P500 марна, якщо Sharpe ratio стратегії < 0.
Горизонти та їх специфіка:
- Intraday (хвилини-години): microstructure сигнали, order flow imbalance
- Short-term (1-5 днів): momentum, mean reversion
- Medium-term (1-4 тижні): earnings, macro catalysts
- Long-term (місяці): fundamental valuation, factor exposure
Фічи за категоріями
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 відносно 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 Management: обмеження на 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, а не у production
Строки: базова cross-sectional модель ранжування з backtest — 6-8 тижнів. Повноцінна система з alternative data, portfolio construction та transaction cost model — 3-5 місяців.







