
Strategi ini menggabungkan penggunaan Heiken Ashi yang perlahan dan purata bergerak indeks untuk mengenal pasti trend, untuk melakukan perdagangan panjang dan pendek dalam keadaan trend. Berdagang tinggi apabila harga melebihi 100 hari EMA, berdagang rendah apabila harga di bawah 100 hari EMA, dan berdagang rendah dalam keadaan tertentu.
Strategi ini menggunakan gabungan indikator berikut:
Heiken Ashi yang perlahan: satu jenis carta K yang khas, yang digunakan untuk melukis nilai rata-rata garis K terdahulu, yang boleh menapis bunyi pasaran dan mengenal pasti trend. Di sini ia dicapai melalui penapis Kama yang beradaptasi.
Purata bergerak indeks: purata purata selepas harga diluruskan dengan indeks, di mana EMA terdiri daripada lebih daripada 5 hari hingga 100 hari.
Logik urus niaga adalah seperti berikut:
Apabila harga naik melalui 100 hari EMA, buat lebih; apabila harga turun melalui 100 hari EMA, buat kosong.
Syarat kedudukan rata: Apabila harga pembukaan Heiken Ashi melintasi harga penutupnya (tanda pembalikan berpotensi), kedudukan berbilang kepala yang sesuai akan rata dengan melintasi terbalik, dan kedudukan kepala kosong akan sama.
Strategi ini menggabungkan penilaian trend dan isyarat pembalikan untuk menangkap turun naik harga yang lebih besar dalam keadaan trend, dan pada masa yang sama mengelakkan peningkatan kerugian melalui isyarat pembalikan.
Menggunakan EMA untuk menentukan arah trend global, dan mengelakkan tertipu oleh gegaran tempatan.
Heiken Ashi’s crossover signal dapat mengesan peluang untuk berbalik semula lebih awal.
Penapis Kama beradaptasi mengurangkan kemungkinan isyarat palsu.
Penembusan EMA yang besar boleh menyebabkan kerugian meluas. Anda boleh mengurangkan tempoh pegangan atau menetapkan hentian kerugian.
Isyarat pembalikan mungkin terlewat, anda boleh mempertimbangkan untuk mengurangkan saiz kedudukan untuk mengawal risiko.
Tetapan parameter EMA yang tidak betul juga boleh menjejaskan prestasi strategi, dan harus disesuaikan dengan pelbagai jenis dan keadaan pasaran.
Keupayaan untuk membuat keputusan dengan menggunakan pelbagai petunjuk untuk mengelakkan EMA dan Heiken Ashi daripada menghantar isyarat yang salah.
Parameter EMA boleh dioptimumkan dalam masa nyata mengikut kadar turun naik pasaran, mengetatkan stop loss apabila turun naik tinggi, dan melonggarkan titik slippage apabila turun naik rendah.
Mengoptimumkan tetapan parameter dan peraturan penapisan secara automatik berdasarkan algoritma pembelajaran mesin, menjadikan strategi lebih mantap.
Strategi ini agak mudah dan praktikal secara keseluruhan, tetapi dengan kombinasi trend dan pembalikan, masih ada ruang untuk keuntungan yang baik apabila pengoptimuman parameter dan kawalan risiko berada di tempat. Kemudian, strategi ini dapat disesuaikan dengan perubahan keadaan pasaran dengan cara pengoptimuman.
/*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)