Strategi Penembusan Osilasi Purata Bergerak Berganda

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

img

Ringkasan

Strategi penembusan pergerakan purata bergerak berganda mengira dua purata bergerak dari tempoh yang berbeza untuk membentuk saluran dan menilai trend pengayun harga. Ia menghasilkan isyarat perdagangan apabila harga menembusi saluran. Strategi ini juga menggabungkan penilaian arah pasaran arus perdana untuk mengelakkan terobosan palsu.

Prinsip Strategi

Langkah utama strategi ini ialah:

  1. Hitung dua purata bergerak, satu dengan tempoh yang lebih pendek dan satu dengan tempoh yang lebih lama. MA yang lebih pendek mencerminkan trend harga semasa dan MA yang lebih lama mencerminkan trend harga arus perdana.

  2. Tambah satu ATR di atas dan di bawah MA yang lebih pendek untuk membentuk saluran. ATR mencerminkan turun naik pasaran semasa.

  3. Isyarat beli dihasilkan apabila harga menembusi saluran ke atas. Isyarat jual dihasilkan apabila harga menembusi saluran ke bawah.

  4. Menggabungkan penilaian trend arus perdana Isyarat perdagangan yang sah hanya dihasilkan apabila terobosan jangka pendek sejajar dengan arah trend arus perdana.

Dengan mengikuti langkah-langkah ini, strategi ini menangkap titik terobosan dalam trend berayun dan mengelakkan isyarat palsu dengan merujuk kepada trend arus perdana.

Analisis Kelebihan

Kelebihan strategi ini:

  1. Saluran MA berganda mencerminkan julat goyangan harga semasa.

  2. Parameter ATR membolehkan julat saluran untuk mengesan turun naik pasaran dalam masa nyata.

  3. Penapisan trend arus perdana mengelakkan isyarat palsu dalam pasaran berayun.

  4. Peraturan mudah dan mudah difahami.

Analisis Risiko

Risiko:

  1. Kejayaan yang gagal boleh menyebabkan peluang yang hilang.

  2. Penghakiman trend arus perdana mempunyai kelewatan masa dan tidak dapat menghapuskan semua isyarat palsu.

  3. Stop loss boleh menembusi pasaran yang tidak stabil.

Arahan pengoptimuman

Cara untuk mengoptimumkan strategi:

  1. Mengoptimumkan parameter MA untuk produk yang berbeza.

  2. Mengoptimumkan parameter ATR untuk mengesan volatiliti dengan lebih baik.

  3. Tambah penapis tambahan seperti penunjuk jumlah dan turun naik untuk mengelakkan isyarat palsu.

  4. Gunakan pembelajaran mesin untuk mengoptimumkan parameter secara automatik.

Kesimpulan

Strategi terobosan goyangan MA berganda ini menangkap trend goyangan melalui saluran MA berganda dan penapisan arus perdana. Dengan peraturan yang mudah dan jelas, ia adalah contoh yang sangat baik untuk mempelajari strategi perdagangan terobosan. Pengoptimuman lanjut dalam parameter dan penapisan isyarat dapat meningkatkan keuntungan dan kestabihannya.


/*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 lanjut