Strategi Pengesanan Trend Crossover Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2023-09-28 11:52:16
Tag:

Ringkasan

Strategi ini menggunakan prinsip crossover purata bergerak berganda digabungkan dengan penunjuk penjejakan trend untuk menentukan dan mengikuti trend. Idea utama adalah untuk pergi lama apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang dan pergi pendek apabila purata bergerak jangka pendek melintasi di bawah purata bergerak jangka panjang. Arah trend keseluruhan juga ditentukan oleh purata bergerak 100 hari untuk mengelakkan pecah palsu.

Logika Strategi

Strategi ini terdiri terutamanya daripada sistem silang purata bergerak berganda dan sistem penjejakan trend.

Sistem crossover purata bergerak berganda mengandungi EMA1 pantas dan EMA2 perlahan. Tempoh lalai adalah 10 hari untuk EMA1 dan 20 hari untuk EMA2. Isyarat beli dihasilkan apabila EMA1 melintasi di atas EMA2. Isyarat jual dihasilkan apabila EMA1 melintasi di bawah EMA2.

EMA 100 hari (EMA100) ditambahkan untuk menentukan arah trend keseluruhan. Isyarat beli hanya dihasilkan apabila harga berada dalam trend menaik (harga di atas EMA 100 hari). Isyarat jual hanya dihasilkan apabila harga berada dalam trend menurun (harga di bawah EMA 100 hari). Ini menapis kebanyakan situasi pecah palsu.

Panah beli dan jual juga digambarkan pada lilin untuk memaparkan isyarat perdagangan secara visual.

Sistem penjejakan trend menggunakan garis hari intraday dan kitaran untuk mengesahkan arah trend lagi. Intraday menggunakan purata bergerak Heikin-Ashi 5 minit dan 60 minit manakala kitaran menggunakan purata bergerak 8 hari dan 12 hari garis harian.

Isyarat perdagangan hanya dihasilkan apabila pertimbangan intraday dan kitaran bersetuju.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah integrasi kedua-dua sistem penjejakan trend dan sistem silang purata bergerak, yang berkesan menapis isyarat palsu dan mengekalkan pengeluaran dalam tahap yang boleh diterima.

Khususnya, kelebihan sistem crossover purata bergerak berganda adalah:

  1. Logik yang mudah dan mudah difahami, sesuai untuk pemula.

  2. Mengikuti trend, mengelakkan perdagangan terhadap trend.

  3. Tempoh EMA cepat dan perlahan yang boleh disesuaikan, disesuaikan dengan kitaran yang berbeza.

  4. Keuntungan yang kuat dalam trend utama.

Menambah EMA100 mempunyai kelebihan:

  1. Mengelakkan perdagangan menentang trend, mengurangkan kerugian.

  2. Mengikuti trend, mengekalkan pengeluaran yang terkawal.

Sistem pengesanan trend mempunyai kelebihan:

  1. Analisis jangka masa berbilang, mengelakkan bunyi dari satu tempoh.

  2. Memastikan keselarasan dengan arah trend utama, mengurangkan pengeluaran.

  3. Heikin-Ashi meluruskan bunyi bising, hanya menangkap trend.

Analisis Risiko

Beberapa risiko yang perlu diperhatikan untuk strategi ini:

  1. Pertukaran yang kerap dan kos perdagangan tambahan semasa penyatuan yang berpanjangan.

  2. Isyarat terlambat, ketinggalan peringkat awal trend.

  3. Kerugian yang teruk apabila trend utama berbalik.

  4. Prestasi bergantung pada pengoptimuman parameter.

Penyelesaian:

  1. Mengurangkan kekerapan dagangan semasa penyatuan.

  2. Memendekkan tempoh EMA untuk mendapatkan isyarat trend lebih awal.

  3. Gunakan stop loss untuk mengawal kerugian tunggal.

  4. Mengoptimumkan parameter untuk produk dan keadaan pasaran yang berbeza.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam bidang berikut:

  1. Uji lebih banyak kombinasi untuk mencari tempoh optimum.

  2. Tambah lebih banyak penghakiman jangka masa, contohnya baris bulanan atau suku tahunan.

  3. Menggabungkan mekanisme stop loss seperti bergerak atau berhenti eksponensial.

  4. Gabungkan dengan penunjuk jumlah seperti On Balance Volume.

  5. Meningkatkan masa kemasukan menggunakan pengayun yang lebih cepat seperti MACD.

  6. Pengoptimuman parameter untuk lebih banyak produk dan aset.

Kesimpulan

Strategi ini menggabungkan kekuatan sistem crossover purata bergerak dan sistem penjejakan trend berganda, mengelakkan kelemahan sistem tunggal. Analisis jangka masa berbilang memastikan arah perdagangan yang betul sementara kawalan penarikan sangat baik. Pengoptimuman lanjut dapat menyesuaikannya dengan lebih banyak persekitaran pasaran untuk kegunaan praktikal.


/*backtest
start: 2023-09-20 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © askkuldeeprandhawa

//@version=4

strategy("KSR Strategy", overlay=true)



par1=input(10)
par2=input(20)
ema1=ema(close,par1)
ema2=ema(close,par2)
buy=ema1>ema2
sell=ema2<ema1
mycolor= iff(buy,color.green,iff(sell,color.blue,color.red))
barcolor(color=mycolor)



ema100=ema(close,100)
ibuy=crossover(ema1,ema2)
iSell=crossunder(ema1,ema2)

varp=tostring(close[1])
plotshape(ibuy, "Up Arrow", shape.triangleup, location.belowbar, color.green, 0, 0,"Buy" , color.green, true, size.tiny)
plotshape(iSell, "Down Arrow", shape.triangledown, location.abovebar, color.red, 0, 0, "Sell", color.red, true, size.tiny)

crossed =crossover(ema(close,par1), ema(close,par2))
// if crossed
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.green, 
//          textcolor=color.white,
//          style=label.style_labelup, yloc=yloc.belowbar)
         
crossed2 =crossunder(ema(close,par1), ema(close,par2))
// if crossed2
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.red, 
//          textcolor=color.white,
//          style=label.style_labeldown, yloc=yloc.abovebar)
         
plot(ema(close,par1),"EMA Short",color=color.white)
plot(ema(close,par2),"EMA Long",color=color.orange)


longCondition = crossover(ema(close, par1), ema(close, par2))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(ema(close, par1), ema(close, par2))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)




ma1_len = input(title="MA1", type=input.integer, defval=8, minval=1, maxval=100, step=1)
ma2_len = input(title="MA2", type=input.integer, defval=12, minval=1, maxval=100, step=1)

o = ema(open, ma1_len)
c = ema(close, ma1_len)
h = ema(high, ma1_len)
l = ema(low, ma1_len)

tim1=input('D',"Short Time")
tim2=input('W',"Long Time")

ema_p=input(title="EMA Period", type=input.integer, defval=16, minval=1, maxval=100, step=1)
refma = ema(close, ema_p)
plot(refma, title="EMA" , linewidth=1, color=close < refma ? color.orange : color.blue)
ha_t = heikinashi(syminfo.tickerid)
ha_o = security(ha_t, tim2, o)
ha_c = security(ha_t, tim2, c)
ha_h = security(ha_t, tim2, h)
ha_l = security(ha_t, tim2, l)
o2 = ema(ha_o, ma2_len)
c2 = ema(ha_c, ma2_len)
h2 = ema(ha_h, ma2_len)
l2 = ema(ha_l, ma2_len)
ha_col = ha_c > ha_o ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c > ha_o ? color.green : color.red, location=location.bottom)


ha_t1 = heikinashi(syminfo.tickerid)
ha_o1 = security(ha_t1, tim1, o)
ha_c1 = security(ha_t1, tim1, c)
ha_h1 = security(ha_t1, tim1, h)
ha_l1 = security(ha_t1, tim1, l)
o3 = ema(ha_o1, ma2_len)
c3 = ema(ha_c1, ma2_len)
h3 = ema(ha_h1, ma2_len)
l3 = ema(ha_l1, ma2_len)
ha_col1 = ha_c1 > ha_o1 ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c1 > ha_o1 ? color.green : color.red, location=location.top)







Lebih lanjut