Розробка алгоритму trailing stop
Trailing stop — динамічний stop-loss, який рухається вслід за ціною у прибутковому напрямку, але не відкатується назад при русі проти позиції. Фіксує прибуток при розвороті, дозволяє прибутковим угодам «текти».
Типи trailing stop
Percentage trailing stop: стоп на фіксованому % нижче (для лонга) максимальної досягнутої ціни.
class TrailingStop:
def __init__(self, trail_pct=0.02):
self.trail_pct = trail_pct
self.highest_price = None
self.stop_price = None
def update(self, current_price):
if self.highest_price is None or current_price > self.highest_price:
self.highest_price = current_price
self.stop_price = current_price * (1 - self.trail_pct)
return self.stop_price
def is_triggered(self, current_price):
return current_price <= self.stop_price
ATR trailing stop: стоп на N × ATR нижче максимуму. Адаптується до волатильності. Chandelier Exit — популярна реалізація: стоп = highest_high(22) − 3 × ATR(22).
Parabolic SAR: вбудований trailing stop індикатор. Автоматично прискорюється при продовженні тренду (acceleration factor 0.02–0.2).
Практичні нюанси
Ринковий vs limit стоп: ринковий гарантує виконання, але gap може спричинити значний slippage. Limit — краща ціна, але ризик невиконання при швидкому русі.
Біржові trailing stops: Binance та Bybit підтримують native trailing stop ордери (параметр callbackRate). Краще ніж програмний — виконується на біржі навіть якщо бот offline.
Activation price: trailing stop починає відслідження тільки після досягнення ціни активації. Корисно: входимо $40k, активуємо trailing при досягненні $42k (фіксуючи мінімум 5% прибутку).
Розробляємо trailing stop модуль з підтримкою відсоткового та ATR-based trailing, native біржевих ордерів та програмного backup якщо native недоступна.







