Розробка алгоритму trend following
Trend following — одна з найдовгоживучих торговельних стратегій: слідуємо за трендом, поки він не скінчиться. Відмінність від momentum: momentum передбачає продовження на основі минулої дохідності, trend following просто слідує за поточним рухом за допомогою технічних індикаторів.
Ідентифікація тренду
Moving Average crossover: класика. EMA(9) перетинає EMA(21) знизу вверх → висхідний тренд, входимо в лонг. Обернено → низхідний, входимо в шорт або виходимо.
Dual Moving Average System: два ковзні середні (швидкий + повільний). Позиція утримується поки швидкий > повільний.
Triple MA system: три MA (швидкий, середній, повільний). Бичачий сигнал: швидкий > середній > повільний.
Donchian Channel: канал з N-періодного максимуму (верхня межа) та мінімуму (нижня). Пробій верхньої межі = вхід у лонг. Класика Turtle Traders Річарда Денніса.
Параметри та оптимізація
Типові параметри для крипторинку (потребують оптимізації):
| Стратегія | Швидкий MA | Повільний MA | Таймфрейм |
|---|---|---|---|
| Короткострокова | EMA 9 | EMA 21 | 1h–4h |
| Середньострокова | EMA 21 | EMA 55 | 4h–1D |
| Довгострокова | SMA 50 | SMA 200 | 1D |
| Donchian | N=20 (entry) | N=10 (exit) | 1D |
Position sizing через ATR
Розмір позиції визначається через ATR (Average True Range) замість фіксованого % капіталу:
def calculate_position_size(capital, entry_price, atr, risk_pct=0.01):
risk_amount = capital * risk_pct
stop_distance = 2 * atr
qty = risk_amount / stop_distance
return qty
Це гарантує однаковий грошовий ризик на кожну угоду незалежно від волатильності активу.
Trailing stop
Trend following без trailing stop — це не trend following. Позиція утримується поки тренд продовжується, закривається коли він закінчується:
- ATR trailing stop: стоп змістається вверх на N × ATR нижче максимальної досягнутої ціни
- Chandelier Exit: 3×ATR від N-періодного maximum
- MA trailing: виходимо якщо ціна закрилась нижче EMA(21)
Pyramiding
Додавання до прибуткових позицій при продовженні тренду — ключова техніка turtle trading. При кожному наступному ATR-русі у напрямку тренду додаємо позицію (зменшеного розміру). Максимум 4 додавання.
Вимога: кожне додавання тільки якщо поточна сумарна позиція прибуткова.
Entry фільтри
Щоб не торгувати при слабкому тренді:
- ADX > 20 перед входом
- Volume вище середнього при пробої
- Volatility не екстремально висока (ATR < 2× середнього — не торгуємо під час паніки на ринку)
Backtesting
Trend following системи добре працюють на довгострокових тестах, але мають значні drawdown періоди. Ключові метрики: MAR Ratio (CAGR / Max Drawdown), Calmar Ratio, відсоток прибуткових угод (зазвичай низький, 30–40%, але winners більші за losers).
Стек: Python, pandas, CCXT, PostgreSQL. Система працює у реальному часі, перевіряючи умови на кожному закритті свічки обраного таймфрейму. Підтримка кількох інструментів одночасно з контролем кореляції портфеля.







