Strategi Dagangan Purata Bergerak Eksponensial Heiken Ashi

Penulis:ChaoZhang, Tarikh: 2023-12-22 13:18:34
Tag:

img

Ringkasan

Strategi ini menggabungkan purata bergerak Heiken Ashi yang perlahan dan purata bergerak eksponensial untuk mengenal pasti trend dan membuat perdagangan panjang / pendek semasa pasaran yang sedang trend.

Logika Strategi

Strategi ini menggunakan penunjuk berikut:

  1. Slow Heiken Ashi: Jenis lilin khas yang dikira menggunakan harga purata bar sebelumnya, menapis bunyi pasaran dan mengenal pasti trend.

  2. Exponential Moving Average: Purata harga yang diluruskan dengan berat eksponensial yang digunakan.

Logik perdagangan khusus adalah:

  1. Pergi panjang apabila harga melintasi di atas EMA 100 hari, pergi pendek apabila harga melintasi di bawah EMA 100 hari.

  2. Posisi keluar apabila harga terbuka Heiken Ashi melintasi harga penutupan (isyarat pembalikan berpotensi). Posisi panjang ditutup pada persilangan terbalik dan kedudukan pendek juga.

Analisis Kelebihan

Strategi ini menggabungkan isyarat trend-mengikuti dan pembalikan, menangkap perubahan harga yang besar semasa pasaran trend sambil mengelakkan kerugian yang berlebihan apabila trend berbalik.

  1. EMA menentukan arah trend pasaran secara keseluruhan, mengelakkan gangguan dari turun naik tempatan.

  2. Crossover Heiken Ashi menyediakan pengesanan awal potensi pembalikan.

  3. Penapis KAMA adaptif mengurangkan isyarat palsu.

Analisis Risiko

  1. Penembusan EMA yang tiba-tiba dan besar boleh membawa kepada kerugian yang diperkuat.

  2. Isyarat pembalikan mungkin tertunda.

  3. Parameter EMA yang tidak mencukupi memberi kesan negatif terhadap prestasi. Parameter harus disesuaikan dengan produk dan persekitaran pasaran yang berbeza.

Arahan pengoptimuman

  1. Menggabungkan penunjuk tambahan seperti MACD dan Bollinger Bands untuk mengelakkan kesilapan EMA / Heiken Ashi serentak.

  2. Mengoptimumkan parameter EMA secara dinamik berdasarkan turun naik pasaran, mengetatkan berhenti / meningkatkan toleransi slippage dengan sewajarnya.

  3. Menggunakan pembelajaran mesin untuk menyesuaikan parameter secara automatik, peraturan penapis dan meningkatkan ketahanan.

Kesimpulan

Strategi ini agak mudah dan praktikal secara keseluruhan, menggabungkan kedua-dua elemen trend dan pembalikan. Dengan parameter dan kawalan risiko yang disesuaikan dengan baik, ia mengekalkan potensi keuntungan yang baik. Penambahbaikan lanjut boleh dibangunkan pada arah pengoptimuman untuk menjadikan strategi lebih adaptif.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-19 10:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("NoScoobies Slow Heiken Ashi and Exponential Moving average Strategy 2.2", overlay=true)

//SHA
p=input(6,title='Period')
fastend=input(0.666,step=0.001)
slowend=input(0.0645,step=0.0001)
kama(close,amaLength)=>
    diff=abs(close[0]-close[1])
    signal=abs(close-close[amaLength])
    noise=sum(diff, amaLength)
    efratio=noise!=0 ? signal/noise : 1
    smooth=pow(efratio*(fastend-slowend)+slowend,2)
    kama=nz(kama[1], close)+smooth*(close-nz(kama[1], close))
    kama
hakamaper=1
Om=sma(open,p)
Hm=sma(high,p)
Lm=sma(low,p)
Cm=sma(close,p)
vClose=(Om+Hm+Lm+Cm)/4
vOpen= kama(vClose[1],hakamaper)
vHigh= max(Hm,max(vClose, vOpen))
vLow=  min(Lm,min(vClose, vOpen))
asize=vOpen-vClose
size=abs(asize)

//MMAR
exponential = input(true, title="Exponential MA")
src = close
ma05 = exponential ? ema(src, 05) : sma(src, 05)
ma10 = exponential ? ema(src, 10) : sma(src, 10)
ma15 = exponential ? ema(src, 15) : sma(src, 15)
ma20 = exponential ? ema(src, 20) : sma(src, 20)
ma25 = exponential ? ema(src, 25) : sma(src, 25)
ma30 = exponential ? ema(src, 30) : sma(src, 30)
ma35 = exponential ? ema(src, 35) : sma(src, 35)
ma40 = exponential ? ema(src, 40) : sma(src, 40)
ma45 = exponential ? ema(src, 45) : sma(src, 45)
ma50 = exponential ? ema(src, 50) : sma(src, 50)
ma55 = exponential ? ema(src, 55) : sma(src, 55)
ma60 = exponential ? ema(src, 60) : sma(src, 60)
ma65 = exponential ? ema(src, 65) : sma(src, 65)
ma70 = exponential ? ema(src, 70) : sma(src, 70)
ma75 = exponential ? ema(src, 75) : sma(src, 75)
ma80 = exponential ? ema(src, 80) : sma(src, 80)
ma85 = exponential ? ema(src, 85) : sma(src, 85)
ma90 = exponential ? ema(src, 90) : sma(src, 90)
ma95 = exponential ? ema(src, 95) : sma(src, 95)
ma100 = exponential ? ema(src, 100) : sma(src, 100)

longcondition=src>ma100
shortcondition=src<ma100
long=longcondition and size<size[1] and (vOpen<vClose or vOpen>vClose)
short=shortcondition and size<size[1] and (vOpen>vClose or vOpen<vClose)
close_long=longcondition and crossunder(open, vClose)
close_short=shortcondition and crossover(open, vClose)
_close=close_long[2] or close_short[2]

if long
    strategy.entry("LONG", strategy.long)
    strategy.close("LONG", when = _close)
if short
    strategy.entry("SHORT", strategy.short)
    strategy.close("SHORT", when = _close)
    


Lebih lanjut