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.
Strategi ini menggunakan penunjuk berikut:
Slow Heiken Ashi: Jenis lilin khas yang dikira menggunakan harga purata bar sebelumnya, menapis bunyi pasaran dan mengenal pasti trend.
Exponential Moving Average: Purata harga yang diluruskan dengan berat eksponensial yang digunakan.
Logik perdagangan khusus adalah:
Pergi panjang apabila harga melintasi di atas EMA 100 hari, pergi pendek apabila harga melintasi di bawah EMA 100 hari.
Posisi keluar apabila harga terbuka Heiken Ashi
Strategi ini menggabungkan isyarat trend-mengikuti dan pembalikan, menangkap perubahan harga yang besar semasa pasaran trend sambil mengelakkan kerugian yang berlebihan apabila trend berbalik.
EMA menentukan arah trend pasaran secara keseluruhan, mengelakkan gangguan dari turun naik tempatan.
Crossover Heiken Ashi menyediakan pengesanan awal potensi pembalikan.
Penapis KAMA adaptif mengurangkan isyarat palsu.
Penembusan EMA yang tiba-tiba dan besar boleh membawa kepada kerugian yang diperkuat.
Isyarat pembalikan mungkin tertunda.
Parameter EMA yang tidak mencukupi memberi kesan negatif terhadap prestasi. Parameter harus disesuaikan dengan produk dan persekitaran pasaran yang berbeza.
Menggabungkan penunjuk tambahan seperti MACD dan Bollinger Bands untuk mengelakkan kesilapan EMA / Heiken Ashi serentak.
Mengoptimumkan parameter EMA secara dinamik berdasarkan turun naik pasaran, mengetatkan berhenti / meningkatkan toleransi slippage dengan sewajarnya.
Menggunakan pembelajaran mesin untuk menyesuaikan parameter secara automatik, peraturan penapis dan meningkatkan ketahanan.
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)