Strategi stop-profit dan stop-loss dinamis ATR


Tanggal Pembuatan: 2023-09-14 16:22:53 Akhirnya memodifikasi: 2023-09-14 16:22:53
menyalin: 0 Jumlah klik: 904
1
fokus pada
1617
Pengikut

Prinsip Strategi

Strategi ini menggunakan stop loss stop loss yang dinamis untuk melakukan perdagangan. Stop loss stop loss disesuaikan secara real-time berdasarkan harga dan fluktuasi saat ini.

Logika transaksi:

  1. Hitung rata-rata real amplitude ATR untuk periode tertentu (misalnya 20 hari)

  2. Ketika dalam posisi bullish, stop loss stop loss adalah harga tertinggi dikurangi ATR

  3. Stop loss plus ATR adalah harga terendah saat berada di posisi turun

  4. Perdagangan reverse ketika harga melebihi titik stop loss

  5. Perubahan tren saat harga melewati titik stop loss

  6. Mengatur Stop Loss Berdasarkan Status Baru

Strategi ini memanfaatkan ATR secara otomatis untuk mengatur stop loss, dan memungkinkan pelacakan dinamis.

Keunggulan Strategis

  • ATR secara otomatis menghitung stop loss

  • Pengaturan dinamis, pelacakan harga secara real-time

  • Penghentian Kerugian, Pengendalian Risiko

Risiko Strategis

  • Parameter ATR membutuhkan pengoptimalan pengujian berulang

  • Stop loss terlalu dekat, mudah rusak

  • Perhatikan perubahan real-time nilai ATR

Meringkaskan

Strategi ini menggunakan ATR untuk mengatur stop loss secara dinamis, untuk melakukan pelacakan otomatis. Optimalisasi parameter ATR dapat memberikan efek stop loss yang lebih baik. Namun, stop loss yang terlalu dekat harus digunakan dengan hati-hati.

Kode Sumber Strategi
/*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)