Strategi terobosan oscillasi rata-rata bergerak ganda menghitung dua rata-rata bergerak dari periode yang berbeda untuk membentuk saluran dan menilai tren osilasi harga.
Langkah-langkah utama dari strategi ini adalah:
Menghitung dua rata-rata bergerak, satu dengan periode yang lebih pendek dan satu dengan periode yang lebih lama.
Tambahkan satu ATR di atas dan di bawah MA yang lebih pendek untuk membentuk saluran.
Sinyal beli dihasilkan ketika harga menembus saluran ke atas. Sinyal jual dihasilkan ketika harga menembus saluran ke bawah.
Sinyal perdagangan yang valid hanya dihasilkan ketika terobosan jangka pendek sejajar dengan arah tren arus utama.
Dengan mengikuti langkah-langkah ini, strategi ini menangkap titik terobosan dalam tren osilasi dan menghindari sinyal palsu dengan merujuk pada tren arus utama.
Keuntungan dari strategi ini:
Saluran MA ganda mencerminkan kisaran osilasi harga saat ini.
Parameter ATR memungkinkan rentang saluran untuk melacak volatilitas pasar secara real time.
Penyaringan tren utama menghindari sinyal palsu di pasar yang berosilasi.
Peraturannya sederhana dan mudah dimengerti.
Risiko:
Terobosan yang gagal dapat menyebabkan kehilangan peluang yang baik. dapat dikurangi dengan mengambil keuntungan dan masuk kembali.
Penghakiman tren arus utama memiliki keterlambatan waktu dan tidak dapat menghilangkan semua sinyal palsu.
Stop loss dapat menembus pasar yang volatile.
Cara untuk mengoptimalkan strategi ini:
Mengoptimalkan parameter MA untuk produk yang berbeda.
Optimalkan parameter ATR untuk melacak volatilitas dengan lebih baik.
Tambahkan filter tambahan seperti indikator volume dan volatilitas untuk lebih menghindari sinyal palsu.
Gunakan pembelajaran mesin untuk mengoptimalkan parameter secara otomatis.
Strategi terobosan osilasi MA ganda ini menangkap tren osilasi melalui saluran MA ganda dan penyaringan arus utama. Dengan aturannya yang sederhana dan jelas, ini adalah contoh yang sangat baik untuk mempelajari strategi perdagangan terobosan. Optimasi lebih lanjut dalam parameter dan penyaringan sinyal dapat meningkatkan profitabilitas dan stabilitasnya.
/*backtest start: 2022-11-20 00:00:00 end: 2023-11-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Anuj4912 //@version=4 strategy("Anuj4912", overlay=true) res = input(title="Time Frame", defval="120") Factor=input(1, minval=1,maxval = 100) Pd=input(1, minval=1,maxval = 100) tp = input(500,title="Take Profit") sl = input(400,title="Stop Loss") Up=hl2-(Factor*atr(Pd)) Dn=hl2+(Factor*atr(Pd)) MUp=request.security(syminfo.tickerid,res,hl2-(Factor*atr(Pd))) MDn=request.security(syminfo.tickerid,res,hl2+(Factor*atr(Pd))) Mclose=request.security(syminfo.tickerid,res,close) TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn MTrendUp=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp MTrendDown=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1) Tsl = Trend==1? TrendUp: TrendDown MTrend = Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1) MTsl = MTrend==1? MTrendUp: MTrendDown linecolor = Trend == 1 ? green : red plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend") Mlinecolor = MTrend == 1 ? blue : orange plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend") plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0) plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0) up = Trend == 1 and Trend[1] == -1 and MTrend == 1 down = Trend == -1 and Trend[1] == 1 and MTrend == -1 plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0) plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0) golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 strategy.entry("Buy", strategy.long,when=golong) strategy.exit("Close Buy","Buy",profit=tp,loss=sl) strategy.entry("Sell", strategy.short,when=goshort) strategy.exit("Close Sell","Sell",profit=tp,loss=sl)