Target Laba Dinamis ATR dan Strategi Stop Loss

Penulis:ChaoZhang, Tanggal: 2023-09-14 16:22:53
Tag:

Logika Strategi

Strategi ini menggunakan target keuntungan dinamis dan stop loss yang disesuaikan berdasarkan harga dan volatilitas saat ini.

Logikanya adalah:

  1. Menghitung rentang rata-rata yang benar (ATR) selama periode (misalnya 20 hari)

  2. Dalam uptrend, target keuntungan/stop adalah harga tertinggi dikurangi ATR kelipatan

  3. Dalam downtrend, target keuntungan/stop adalah harga terendah ditambah kelipatan ATR

  4. Perdagangan terbalik ketika harga melebihi target keuntungan/stop

  5. Perubahan tren ketika harga melanggar target/stop profit

  6. 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.

Keuntungan

  • ATR secara otomatis menghitung tingkat profit/stop

  • Jalur penyesuaian dinamis harga dalam waktu nyata

  • Pengendalian risiko pengambilan keuntungan dan penghentian tepat waktu

Risiko

  • Parameter ATR membutuhkan optimasi

  • Berhenti terlalu dekat risiko dihentikan keluar

  • Perlu memantau perubahan ATR secara real time

Ringkasan

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)
    
    

Lebih banyak