Эта стратегия использует динамические цели прибыли и стоп-лосс, которые корректируются на основе текущей цены и волатильности.
Логика такова:
Расчет среднего истинного диапазона (ATR) за период (например, 20 дней)
В восходящем тренде целевая прибыль/стоп - это максимальная цена минус кратный ATR
При понижающемся тренде целевая прибыль/стоп - это самая низкая цена плюс кратный ATR
Обратная торговля, когда цена превышает целевую прибыль/остановка
Изменение тренда при превышении цены целевого показателя прибыли/остановки
Корректировка целевой прибыли/остановки прибыли на основе нового состояния тренда
Стратегия использует ATR для автоматического установления динамических целей и остановок прибыли, что позволяет своевременно зафиксировать прибыль и предотвратить чрезмерные потери.
ATR автоматически рассчитывает уровни прибыли/остановки
Динамические регулировочные пути цены в режиме реального времени
Своевременное получение прибыли и прекращение контроля риска
Параметры ATR требуют оптимизации
Если остановиться слишком близко, то рискуешь быть вычеркнутым.
Необходимо следить за изменениями ATR в режиме реального времени
Эта стратегия использует ATR для динамического настройки уровня прибыли / остановки для автоматического отслеживания. Настройка ATR может улучшить производительность остановки.
/*backtest start: 2023-01-01 00:00:00 end: 2023-09-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Dhananjay Volatility stop strategy v1.0", overlay=true) length = input(20) mult = input(1) atr_ = atr(length) max1 = max(nz(max_[1]), close) min1 = min(nz(min_[1]), close) is_uptrend_prev = nz(is_uptrend[1], true) stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_ vstop_prev = nz(vstop[1]) vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop) is_uptrend = close - vstop1 >= 0 is_trend_changed = is_uptrend != is_uptrend_prev max_ = is_trend_changed ? close : max1 min_ = is_trend_changed ? close : min1 vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1 plot(vstop, color = is_uptrend ? green : red, style=line, linewidth=2) bearish = close < vstop bullish = close > vstop if (bullish) strategy.entry("Buy", strategy.long, 1) if (bearish) strategy.entry("Sell", strategy.short, 1)