Розробка алгоритму momentum trading
Momentum — один з найбільш статистично доведених феноменів фінансових ринків. Активи, які росли останні N періодів, статистично схильні продовжувати рост. Jegadeesh та Titman задокументували це у 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.
Механіка крипто momentum
У крипто momentum посилюється кількома факторами:
- Retail FOMO (Fear of Missing Out) при рості
- Shorts squeeze при сильному русі вверх
- On-chain активність зростає при зростанні ціни
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 фільтри та сигнали
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 днів)
- Correlation filter: не утримуємо більш 3 висококорельованих позицій одночасно
- Volatility scaling: зменшуємо розмір позиції при високій волатильності
Стек: Python + pandas, CCXT для даних та виконання, PostgreSQL для історії. Алгоритм запускається по розкладу (щодня або щотижня для rotation стратегій), результати відображаються в Grafana dashboard.







