Розробка алгоритму 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 буфер. Наприклад, при пробої вище $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 для зберігання рівнів та сигналів. Сканування при закритті кожної свічки, alerty через Telegram при срабатуванні breakout.







