Dual Moving Average Oscillation Breakthrough Strategy (Strategi Terobosan Rata-rata Bergerak Berganda)

Penulis:ChaoZhang, Tanggal: 2023-11-27 17:44:49
Tag:

img

Gambaran umum

Strategi terobosan oscillasi rata-rata bergerak ganda menghitung dua rata-rata bergerak dari periode yang berbeda untuk membentuk saluran dan menilai tren osilasi harga.

Prinsip Strategi

Langkah-langkah utama dari strategi ini adalah:

  1. Menghitung dua rata-rata bergerak, satu dengan periode yang lebih pendek dan satu dengan periode yang lebih lama.

  2. Tambahkan satu ATR di atas dan di bawah MA yang lebih pendek untuk membentuk saluran.

  3. Sinyal beli dihasilkan ketika harga menembus saluran ke atas. Sinyal jual dihasilkan ketika harga menembus saluran ke bawah.

  4. 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.

Analisis Keuntungan

Keuntungan dari strategi ini:

  1. Saluran MA ganda mencerminkan kisaran osilasi harga saat ini.

  2. Parameter ATR memungkinkan rentang saluran untuk melacak volatilitas pasar secara real time.

  3. Penyaringan tren utama menghindari sinyal palsu di pasar yang berosilasi.

  4. Peraturannya sederhana dan mudah dimengerti.

Analisis Risiko

Risiko:

  1. Terobosan yang gagal dapat menyebabkan kehilangan peluang yang baik. dapat dikurangi dengan mengambil keuntungan dan masuk kembali.

  2. Penghakiman tren arus utama memiliki keterlambatan waktu dan tidak dapat menghilangkan semua sinyal palsu.

  3. Stop loss dapat menembus pasar yang volatile.

Arahan Optimasi

Cara untuk mengoptimalkan strategi ini:

  1. Mengoptimalkan parameter MA untuk produk yang berbeda.

  2. Optimalkan parameter ATR untuk melacak volatilitas dengan lebih baik.

  3. Tambahkan filter tambahan seperti indikator volume dan volatilitas untuk lebih menghindari sinyal palsu.

  4. Gunakan pembelajaran mesin untuk mengoptimalkan parameter secara otomatis.

Kesimpulan

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)



Lebih banyak