Strategi ini menggunakan target keuntungan dinamis dan stop loss yang disesuaikan berdasarkan harga dan volatilitas saat ini.
Logikanya adalah:
Menghitung rentang rata-rata yang benar (ATR) selama periode (misalnya 20 hari)
Dalam uptrend, target keuntungan/stop adalah harga tertinggi dikurangi ATR kelipatan
Dalam downtrend, target keuntungan/stop adalah harga terendah ditambah kelipatan ATR
Perdagangan terbalik ketika harga melebihi target keuntungan/stop
Perubahan tren ketika harga melanggar target/stop profit
Sesuaikan target/stop profit berdasarkan kondisi tren baru
Strategi ini memanfaatkan ATR untuk secara otomatis menetapkan target dan berhenti laba yang dinamis. Hal ini memungkinkan penguncian keuntungan tepat waktu dan mencegah kerugian yang berlebihan.
ATR secara otomatis menghitung tingkat profit/stop
Jalur penyesuaian dinamis harga dalam waktu nyata
Pengendalian risiko pengambilan keuntungan dan penghentian tepat waktu
Parameter ATR membutuhkan optimasi
Berhenti terlalu dekat risiko dihentikan keluar
Perlu memantau perubahan ATR secara real time
Strategi ini menggunakan ATR untuk secara dinamis mengatur tingkat profit/stop untuk trailing otomatis.
/*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)