Strategi ini menggunakan titik berhenti dan kerugian yang dinamik untuk berdagang. Titik berhenti dan kerugian disesuaikan secara langsung dengan harga semasa dan kadar turun naik.
Logik urus niaga:
Hitung purata purata pergerakan sebenar dalam tempoh tertentu (seperti 20 hari)
Apabila berada dalam keadaan bullish, stop loss adalah harga maksimum tolak ATR
Apabila berada dalam keadaan turun naik, stop loss plus ATR adalah harga minimum
Perdagangan terbalik apabila harga melebihi titik berhenti
Mengubah keadaan trend apabila harga menembusi titik berhenti rugi
Sesuaikan Stop Loss dengan keadaan baru
Strategi ini memanfaatkan ATR secara automatik untuk menetapkan stop loss, dan membolehkan pelacakan dinamik. Ia dapat mengunci keuntungan tepat pada masanya dan mengelakkan kerugian berkembang.
ATR mengira stop loss secara automatik
Pengesanan dinamik, pelacakan harga dalam masa nyata
Penghentian Kerosakan, Pengendalian Risiko
Parameter ATR memerlukan pengoptimuman ujian berulang
Hentikan terlalu dekat, mudah dihentikan
Perhatian terhadap perubahan dalam masa nyata nilai ATR
Strategi ini menggunakan ATR yang secara dinamik menetapkan titik hentian hentian, untuk mencapai penjejakan automatik. Mengoptimumkan parameter ATR dapat memperoleh kesan hentian yang lebih baik. Tetapi terlalu dekat dengan hentian hentian perlu berhati-hati.
/*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)