Разработка алгоритма breakout trading
Breakout стратегия: цена долгое время консолидируется в определённом диапазоне, затем пробивает его границу — это сигнал для входа в направлении пробоя. Логика: накопившаяся энергия при консолидации выражается в сильном направленном движении после пробоя.
Типы пробоев
Price level breakout: пробой исторического максимума/минимума, психологических уровней (round numbers), уровней Фибоначчи.
Volatility breakout (Bollinger Band Squeeze): при сужении Bollinger Bands (низкая волатильность) ожидается взрывное движение. Торгуем в направлении первого выхода за полосы.
Range breakout (Donchian): пробой N-периодного максимума или минимума. Простой и эффективный подход.
Pattern breakout: пробой уровней треугольника, клина, флага. Описан в системе распознавания паттернов.
Фильтрация ложных пробоев
Главная проблема breakout торговли — false breakouts. Цена кратко вышла за уровень и вернулась обратно. Методы фильтрации:
Close confirmation: сигнал только при закрытии свечи за уровнем (не intrabar пробой).
ATR filter: минимальное расстояние пробоя = 0.5 × ATR. Маленький пробой — вероятно ложный.
Volume confirmation: объём при пробое должен быть > 1.5× среднего. Пробой без объёма = слабый сигнал.
Time filter: пробой в активную торговую сессию (для крипты — перекрытие Азия/Европа или Европа/США по времени) надёжнее.
Retest подтверждение: ждём откат к пробитому уровню (ретест), подтверждение отскока → более надёжный вход. Менее агрессивный подход, но меньше false positives.
Entry, stop и target
Entry: немедленно при закрытии confirmable свечи за уровнем, или при ретесте уровня.
Stop-loss: за противоположную границу уровня + ATR buffer. Например, при пробое выше $50,000 стоп под $49,500 (уровень) − $200 (буфер).
Target projection:
- Range height projection: если консолидация занимала $500, добавляем $500 к точке пробоя
- Fibonacci extension: 127.2% или 161.8% от диапазона
- Next key level: ближайший значимый уровень поддержки/сопротивления выше
Volatility-based position sizing
def breakout_position_size(capital, entry, stop, risk_pct=0.01):
risk_per_unit = abs(entry - stop)
risk_amount = capital * risk_pct
qty = risk_amount / risk_per_unit
return qty
Стек: Python + pandas + ta-lib, CCXT для биржевого API, PostgreSQL для хранения уровней и сигналов. Сканирование по закрытии каждой свечи, алерты через Telegram при срабатывании breakout.







