Trend Mengikut Strategi dengan Hentian Dinamik

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

img

Ringkasan

Strategi ini menghasilkan isyarat perdagangan apabila harga melintasi EMA dan menggunakan ATR sebagai stop loss dinamik untuk menguruskan risiko.

Cara Ia Bekerja

Logika utama ialah:

  1. Mengira ATR sebagai garis stop loss, nilai ATR menentukan jarak stop nLoss

  2. Sumber harga adalah harga penutupan secara lalai, gunakan penutupan Heikin Ashi jika pilihan Heikin Ashi h diaktifkan

  3. xATRTrailingStop menyemak garis stop loss dinamik berdasarkan perbandingan harga dengan berhenti sebelumnya

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

  5. Isyarat silang EMA, di atas EMA adalah isyarat beli, di bawah isyarat jual

  6. Masuk perdagangan pada isyarat beli/jual, keluar pada isyarat bertentangan

  7. Bar warna berdasarkan kedudukan, isyarat tanda dan garis stop loss

Strategi ini mengikuti trend dengan berhenti dinamik berdasarkan ATR. Ia boleh mengenal pasti trend dan menguruskan risiko dengan berkesan.

Kelebihan

Kelebihan adalah:

  1. Hentikan dinamik berasaskan ATR menyesuaikan diri dengan turun naik pasaran

  2. Penapis EMA mengurangkan isyarat palsu dari bunyi bising

  3. Pilihan Heikin Ashi penapis bunyi dan mengenal pasti trend

  4. Clear long/short position avoids whipsaws from trailing stop order dalam bahasa Inggeris

  5. Bantuan visual seperti garisan, label dan pewarnaan

  6. Sederhana dan mudah difahami logik untuk mengubah suai

  7. Tempoh ATR yang boleh disesuaikan dan pengganda untuk pasaran yang berbeza

Ringkasnya, dengan menggabungkan trend berikut dan berhenti dinamik, strategi ini boleh menangkap trend dan menguruskan risiko dengan baik untuk perdagangan ayunan.

Risiko

Terdapat beberapa risiko yang perlu dipertimbangkan:

  1. Isyarat EMA mungkin ketinggalan pergerakan jangka pendek yang hilang

  2. Pemicu stop loss yang kerap mungkin dalam pasaran yang bergolak

  3. Tiada pertimbangan kos seperti komisen

  4. Kekurangan kawalan saiz kedudukan

  5. Prestasi bergantung pada penyusunan parameter

  6. Risiko whipsaws di pasaran yang berbeza

  7. Memerlukan pemantauan dan campur tangan

Risiko boleh dikurangkan dengan mengoptimumkan parameter, menambah penapis, mengukur kedudukan dengan betul, memantau prestasi, dan campur tangan apabila perlu.

Pengoptimuman

Beberapa cara untuk meningkatkan strategi:

  1. Sesuaikan parameter ATR untuk pasaran yang berbeza

  2. Uji purata bergerak lain untuk menapis isyarat

  3. Tambah penunjuk penapis trend untuk kebarangkalian yang lebih tinggi

  4. Melaksanakan had saiz kedudukan

  5. Tambah syarat kemasukan seperti jumlah, jarak dari MA

  6. Menggabungkan kos seperti komisen dalam berhenti

  7. Mengoptimumkan masa masuk dan keluar dengan lebih banyak isyarat

  8. Memperkenalkan mengambil keuntungan atau hentian

  9. Pengoptimuman parameter automatik

Dengan menggabungkan lebih banyak teknik untuk masuk, keluar, penapis, dan penyesuaian parameter, strategi dapat diperkukuhkan lagi.

Kesimpulan

Strategi ini menggabungkan berhenti dinamik dan trend berikut dengan baik. Dengan berhenti yang berkesan, penjejakan trend yang lancar, kemudahan penggunaan, dan penyesuaian, ia sesuai untuk trend perdagangan ayunan. Tetapi pengurusan risiko, pemantauan, dan penyesuaian parameter yang betul diperlukan. Apabila digunakan dengan baik di pasaran trend, hasil yang baik dapat dicapai. Secara keseluruhan ia menyediakan pendekatan yang mudah dan praktikal untuk menggabungkan perdagangan trend dan pengurusan 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 lanjut