Разработка алгоритма momentum trading
Momentum — один из наиболее статистически доказанных феноменов финансовых рынков. Активы, которые росли последние N периодов, статистически склонны продолжать рост. Фернандес Мозес и Джегадиш задокументировали это ещё в 1993 году на акциях. На крипторынке momentum работает, но с особенностями: он может резко разворачиваться.
Типы momentum стратегий
Cross-sectional momentum (relative): среди N активов покупаем топ-K (лучшие за период), продаём (или не держим) аутсайдеров. Portfolio rotation каждые N дней.
Time-series momentum (absolute): покупаем актив, если его 12-месячная доходность положительна. Продаём/шортим если отрицательна.
Short-term momentum: покупаем при сильном краткосрочном импульсе (1–5 дней). Требует активного управления.
Измерение momentum
Rate of Change (ROC):
ROC(n) = (Close - Close[n]) / Close[n] × 100
Relative Strength: относительная доходность актива vs рынок за период.
MACD histogram: разность между MACD линией и сигнальной линией. Нарастающий histogram = усиливающийся momentum.
ADX: сила тренда. ADX > 25 с ростом = сильный восходящий momentum.
Механика crypto momentum
В крипте momentum усиливается несколькими факторами:
- Retail FOMO (Fear of Missing Out) при росте
- Shorts squeeze при сильном движении вверх
- On-chain activity нарастает при росте цены
Momentum scoring для нескольких активов:
def calculate_momentum_scores(prices_df, lookback=30):
returns = prices_df.pct_change(lookback)
# Нормализуем по волатильности
vol = prices_df.pct_change().rolling(lookback).std()
risk_adjusted_momentum = returns / vol
return risk_adjusted_momentum.iloc[-1].sort_values(ascending=False)
Portfolio rotation: каждую неделю покупаем топ-5 по risk-adjusted momentum из заданного universe. Продаём выбывших из топа.
Momentum filters и signals
Trend filter: входим только при momentum > 0 И цена > SMA(200). Защищает от покупки в медвежьем рынке.
Volume confirmation: momentum сигнал подтверждается высоким объёмом. Momentum без объёма — слабый сигнал.
Breakout confirmation: momentum + пробой ключевого уровня = высокоприоритетный сигнал.
Momentum crashes
Momentum стратегии страдают от «краш» событий — резких разворотов после перегрева. Защита:
- Быстрый trailing stop (2–3 ATR)
- Max holding period (автоматическое закрытие после N дней)
- Корреляционный фильтр: не держать более 3 высококоррелированных позиций одновременно
- Volatility scaling: уменьшаем размер позиции при высокой волатильности
Стек: Python + pandas, CCXT для данных и исполнения, PostgreSQL для истории. Алгоритм запускается по расписанию (ежедневно или еженедельно для rotation стратегий), результаты отображаются в Grafana dashboard.







