Strategi Crossover Purata Bergerak Multi-SMA

Penulis:ChaoZhang, Tarikh: 2023-11-28 15:08:37
Tag:

img

Ringkasan

Strategi ini mengira purata bergerak SMA dari beberapa bingkai masa dan mengambil nilai purata untuk membina penunjuk purata bergerak. Ia menghasilkan isyarat beli apabila harga naik di atas purata bergerak dan isyarat jual apabila harga jatuh di bawah purata bergerak. Ini adalah strategi silang purata bergerak biasa.

Prinsip Strategi

  1. Mengira 5 purata bergerak SMA dari tempoh yang berbeza (8 hari, 21 hari, 50 hari, 100 hari, 200 hari)
  2. Ambil purata daripada 5 purata bergerak untuk mendapatkan indikator purata bergerak akhir
  3. Menghasilkan isyarat beli apabila harga penutupan meningkat di atas purata bergerak
  4. Menghasilkan isyarat jual apabila harga penutupan jatuh di bawah purata bergerak

Dengan rata-rata SMA beberapa bingkai masa, strategi ini dapat secara berkesan meluruskan kurva dan menapis pecah palsu.

Analisis Kelebihan

  1. Menggunakan purata bergerak pelbagai jangka masa dapat menapis bunyi pasaran dengan berkesan dan mengenal pasti trend
  2. Lemparan licin, elakkan menghasilkan terlalu banyak isyarat palsu
  3. Logik strategi adalah mudah dan jelas, mudah difahami dan dilaksanakan, sesuai untuk pemula untuk belajar
  4. Gabungan purata bergerak tempoh yang boleh disesuaikan untuk mengoptimumkan kesan penunjuk

Analisis Risiko

  1. Sistem purata bergerak tertinggal secara keseluruhan dan tidak dapat mengikuti perubahan harga dalam masa
  2. Apabila kegagalan pecah berlaku, titik kehilangan berhenti adalah jauh, dengan risiko kerugian yang lebih besar
  3. Garis stop loss sering dipicu dalam trend berayun

Risiko ini boleh dikurangkan dengan memendekkan beberapa tempoh purata bergerak dan menambah penunjuk lain untuk pengesahan.

Arahan pengoptimuman

  1. Mengoptimumkan gabungan tempoh purata bergerak untuk mencari parameter terbaik
  2. Tambah penunjuk seperti jumlah dagangan untuk mengesahkan isyarat pecah
  3. Menggabungkan penunjuk trend untuk mengelakkan isyarat palsu di pasaran berayun
  4. Membangunkan program pengoptimuman parameter automatik untuk mencari parameter optimum secara dinamik

Ringkasan

Idea keseluruhan strategi ini adalah jelas. Dengan mengintegrasikan purata bergerak beberapa bingkai masa, ia dapat mengenal pasti trend dengan berkesan dan merupakan strategi yang stabil dan praktikal. Walau bagaimanapun, kita juga perlu memberi perhatian kepada risiko kelewatan dan isyarat palsu. Melalui pengoptimuman lebih lanjut tetapan parameter, menambah penunjuk pengesahan, dan lain-lain, kita dapat terus meningkatkan strategi ini untuk menjadikannya alat perdagangan kuantitatif yang kuat.


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

//@version=3
strategy("STRATEGY AVERAGE MULTI_SMA", overlay=true)


sma1 = sma(close,input(title="SMA 1", defval=8))

sma2 = sma(close,input(title="SMA 2", defval=21))

sma3 = sma(close,input(title="SMA 3", defval=50))

sma4 = sma(close,input(title="SMA 4", defval=100))

sma5 = sma(close,input(title="SMA 5", defval=200))


mediaSMA= (sma1+sma2+sma3+sma4+sma5)/5

//color mediaSMA

MediaUP = mediaSMA>mediaSMA[1]
colorUP = (MediaUP ? #3CFF35 : na)

MediaDOWN = mediaSMA<mediaSMA[1]
colorDOWN =(MediaDOWN ? #FF0F03 : na)

colorN =(not MediaUP and not MediaDOWN and mediaSMA==mediaSMA[1] ? white : na )

plot(mediaSMA,title="Avarege MULTI_SMA UP", color=colorUP, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA DOWN", color=colorDOWN, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA UP NEUTRAL", color=colorN, style=circles, linewidth=2, transp=0)


//plot(sma1,color=blue,linewidth=1, style=line,transp=0,title="SMA 1")
//plot(sma2,color=yellow,linewidth=1, style=line,transp=0,title="SMA 2")
//plot(sma3,color=green,linewidth=1, style=line,transp=0,title="SMA 3")
//plot(sma4,color=purple,linewidth=1, style=line,transp=0,title="SMA 4")
//plot(sma5,color=red,linewidth=1, style=line,transp=0,title="SMA 5")


// Strategy

//BUY
comprar=close>mediaSMA and mediaSMA>mediaSMA[1] 
fechar=close<mediaSMA and mediaSMA<mediaSMA[1]
 
strategy.entry("BUY",strategy.long,when=comprar)
strategy.entry("SELL",strategy.short, when=fechar)

//SELL
vender=close<mediaSMA and mediaSMA<mediaSMA[1] 
fechar2=close>mediaSMA and mediaSMA>mediaSMA[1]

strategy.entry("SELL",strategy.short, when=vender)
strategy.entry("BUY", strategy.long,when=fechar2)



Lebih lanjut