Tren Mengikuti Strategi dengan Hentikan Dinamis

Penulis:ChaoZhang, Tanggal: 2023-11-01 13:46:28
Tag:

img

Gambaran umum

Strategi ini menghasilkan sinyal perdagangan ketika harga melintasi EMA dan menggunakan ATR sebagai stop loss dinamis untuk mengelola risiko.

Cara Kerjanya

Logika kunci adalah:

  1. Menghitung ATR sebagai garis stop loss, nilai ATR menentukan stop distance nLoss

  2. Sumber harga adalah harga penutupan secara default, gunakan Heikin Ashi close jika opsi Heikin Ashi h diaktifkan

  3. xATRTrailingStop melacak garis stop loss dinamis berdasarkan perbandingan harga dengan stop sebelumnya

  4. Posisi pos adalah 1 untuk panjang ketika harga melintasi di atas garis stop loss, -1 untuk pendek ketika melintasi di bawah, sebaliknya 0

  5. Sinyal silang EMA, di atas EMA adalah sinyal beli, di bawah adalah sinyal jual

  6. Masukkan perdagangan pada sinyal beli/jual, keluar pada sinyal berlawanan

  7. Bar warna berdasarkan posisi, tanda tanda dan garis stop loss

Strategi ini mengikuti tren dengan berhenti dinamis berdasarkan ATR. Ini dapat mengidentifikasi tren dan mengelola risiko secara efektif.

Keuntungan

Keuntungannya adalah:

  1. Stop dinamis berbasis ATR beradaptasi dengan volatilitas pasar

  2. Filter EMA mengurangi sinyal palsu dari kebisingan

  3. Opsional Heikin Ashi menyaring kebisingan dan mengidentifikasi tren

  4. Clear long/short position avoids whipsaws from trailing stop order (Pengertian posisi panjang/pendek menghindari whipsaws dari trailing stop order):

  5. Bantuan visual seperti garis, label dan pewarnaan

  6. Sederhana dan mudah dipahami logika untuk memodifikasi

  7. Periode ATR dan pengganda yang dapat disesuaikan untuk pasar yang berbeda

Singkatnya, dengan menggabungkan tren mengikuti dan berhenti dinamis, strategi ini dapat menangkap tren dan mengelola risiko dengan baik untuk perdagangan ayunan.

Risiko

Ada beberapa risiko yang harus dipertimbangkan:

  1. Sinyal EMA mungkin tertinggal dari pergerakan jangka pendek yang hilang

  2. Pemicu stop loss yang sering mungkin terjadi di pasar yang bergolak

  3. Tidak mempertimbangkan biaya seperti komisi

  4. Kurangnya kontrol ukuran posisi

  5. Kinerja tergantung pada pengaturan parameter

  6. Risiko whipsaws di berbagai pasar

  7. Membutuhkan pemantauan dan intervensi

Risiko dapat dikurangi dengan mengoptimalkan parameter, menambahkan filter, mengukur posisi dengan benar, memantau kinerja, dan campur tangan bila diperlukan.

Optimalisasi

Beberapa cara untuk meningkatkan strategi:

  1. Sesuaikan parameter ATR untuk pasar yang berbeda

  2. Uji rata-rata bergerak lainnya untuk menyaring sinyal

  3. Tambahkan indikator filter tren untuk kemungkinan yang lebih tinggi

  4. Menerapkan batasan ukuran posisi

  5. Tambahkan kondisi masuk seperti volume, jarak dari MA

  6. Masukkan biaya seperti komisi ke stop

  7. Optimalkan waktu masuk dan keluar dengan lebih banyak sinyal

  8. Memperkenalkan profit taking atau trailing stops

  9. Optimasi parameter otomatis

Dengan menggabungkan lebih banyak teknik untuk masuk, keluar, filter, dan penyesuaian parameter, strategi dapat lebih diperkuat.

Kesimpulan

Strategi ini menggabungkan berhenti dinamis dan mengikuti tren dengan baik. Dengan berhenti yang efektif, pelacakan tren yang mulus, kemudahan penggunaan, dan kustomisasi, ini cocok untuk tren perdagangan swing. Tetapi manajemen risiko, pemantauan, dan penyesuaian parameter yang tepat diperlukan. Ketika diterapkan dengan baik di pasar tren, hasil yang baik dapat dicapai. Secara keseluruhan, ini memberikan pendekatan sederhana dan praktis untuk menggabungkan perdagangan tren dan manajemen risiko.


/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. 

// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

xATR  = atr(c)
nLoss = a * xATR

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close

xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
   iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), 
   iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
 
pos = 0   
pos :=	iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
   iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
   
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

ema   = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

buy  = src > xATRTrailingStop and above 
sell = src < xATRTrailingStop and below

barbuy  = src > xATRTrailingStop 
barsell = src < xATRTrailingStop 

plotshape(buy,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

barcolor(barbuy  ? color.green : na)
barcolor(barsell ? color.red   : na)

strategy.entry("long",   true, when = buy)
strategy.entry("short", false, when = sell)

Lebih banyak