Разработка системы stop-loss менеджмента
Stop-loss менеджмент — это не просто выставить ордер. Это система принятия решений о размещении, перемещении и исполнении защитных ордеров на протяжении всего жизненного цикла позиции.
Стратегии размещения начального стопа
ATR-based: стоп на N × ATR ниже входа. N = 1.5–2.5 в зависимости от стратегии. Адаптируется к волатильности.
Structure-based: стоп за ближайшим структурным уровнем (swing low/high, поддержка/сопротивление). Логически обоснован: если структурный уровень пробит — идея торговли неверна.
Volatility-based (Chandelier): стоп за N × ATR ниже максимума позиции. Автоматически trailing.
Percentage-based: простой фиксированный % от входа. Менее адаптивен, но прост.
Перемещение стопа
Break-even: после достижения TP1 или N% прибыли — переносим стоп в точку входа. «Бесплатная позиция».
class StopLossManager:
def __init__(self, entry_price, initial_stop, side='long'):
self.entry_price = entry_price
self.stop_price = initial_stop
self.side = side
self.state = 'initial' # initial, break_even, trailing
def check_breakeven_trigger(self, current_price, breakeven_trigger_pct=0.015):
if self.side == 'long' and self.state == 'initial':
profit_pct = (current_price - self.entry_price) / self.entry_price
if profit_pct >= breakeven_trigger_pct:
self.stop_price = self.entry_price
self.state = 'break_even'
return True
return False
def update_trailing_stop(self, current_price, highest_price, trail_pct=0.02):
if self.state in ('break_even', 'trailing'):
new_stop = highest_price * (1 - trail_pct)
if new_stop > self.stop_price:
self.stop_price = new_stop
self.state = 'trailing'
Hard vs Soft stop
Hard stop: лимитный или рыночный ордер на бирже. Исполняется автоматически без участия бота. Надёжнее, но может дать slippage при быстром движении.
Soft stop: мониторинг цены в коде, отправка ордера при достижении уровня. Гибче (можно применять логику), но зависит от работоспособности бота.
Рекомендация: оба одновременно. Soft stop отменяет Hard stop при нормальной работе. Hard stop — страховка на случай сбоя бота.
Исполнение при gap
При gap-открытии (цена прыгнула через уровень стопа):
- Лимитный стоп может не исполниться
- Рыночный исполнится по худшей доступной цене
- Stop-limit (специфичный тип ордера): триггер по стопу, исполнение лимитом
Настройка stop-limit: trigger = $44,000, limit = $43,500. Исполнится если цена при gap не ушла ниже $43,500. Иначе остаётся как лимитный ордер на открытой позиции.
Мониторинг стопов
Dashboard с визуализацией всех открытых позиций, их стопами и расстоянием до стопа в %:
| Символ | Вход | Стоп | Расстояние | Статус |
|---|---|---|---|---|
| BTC/USDT | $45,000 | $44,100 | 2.0% | Break-even |
| ETH/USDT | $3,200 | $3,000 | 6.25% | Initial |
Алерт при приближении цены к стопу на 50% от начальной дистанции.
Разрабатываем систему управления стопами с автоматическим переносом в break-even, trailing stop, поддержкой hard/soft стопов и мониторингом всех позиций.







