Strategi Penembusan Crossover Rata-rata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2023-11-27 16:21:45
Tag:

img

Ringkasan

Strategi ini menghasilkan isyarat masuk LONG atau SHORT apabila purata bergerak mudah 30 hari yang cepat dan purata bergerak mudah 33 hari harga saham yang perlahan bersilang. Ia keluar dari kedudukan dengan serta-merta apabila isyarat bertentangan berlaku. Ini dapat menangkap perubahan trend dengan berkesan.

Prinsip Strategi

Inti strategi ini adalah untuk mengira MA 30 hari yang cepat dan MA 33 hari yang perlahan. Garis cepat boleh bertindak balas terhadap perubahan harga dengan lebih cepat sementara garis perlahan mempunyai kesan penapisan yang lebih baik. Apabila garis pantas menembusi garis perlahan ke atas, isyarat beli dihasilkan. Ini menunjukkan harga mula meningkat dan garis pantas telah bertindak balas sementara garis perlahan masih tertinggal. Apabila garis pantas menembusi garis perlahan ke bawah, isyarat jual dihasilkan. Ini menunjukkan harga mula menurun sementara garis pantas telah bertindak balas tetapi garis perlahan masih tertinggal.

Melalui reka bentuk silang MA yang cepat dan perlahan, ia boleh menghasilkan isyarat perdagangan apabila trend baru bermula, dan keluar pada isyarat bertentangan, dengan berkesan menangkap trend harga jangka menengah hingga panjang.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan purata bergerak yang mudah, ia mudah difahami dan dilaksanakan
  2. Gabungan talian pantas dan talian perlahan boleh bertindak balas terhadap perubahan harga dengan cepat dan juga mempunyai kesan penapisan
  3. Palang emas dan tanda-tanda salib maut adalah mudah dan jelas, mudah untuk mengendalikan
  4. Dapat menangkap dengan berkesan trend jangka menengah hingga panjang
  5. Keluar dengan cepat pada isyarat bertentangan untuk mengawal risiko

Analisis Risiko

Terdapat juga beberapa risiko untuk strategi ini:

  1. Ia boleh menjana beberapa isyarat palsu apabila harga adalah julat terikat, menyebabkan over-dagang
  2. Tidak dapat menangani perubahan harga yang melampau yang disebabkan oleh peristiwa yang tidak dijangka dengan baik
  3. Parameter seperti tempoh MA mungkin memerlukan pengoptimuman, tetapan yang tidak betul akan mempengaruhi prestasi strategi
  4. Kos dagangan memberi kesan kepada keuntungan ke tahap tertentu

Kaedah-kaedah seperti pengoptimuman parameter, penetapan paras kehilangan berhenti, hanya berdagang apabila trend jelas dan lain-lain boleh digunakan untuk mengawal dan mengurangkan risiko tersebut.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan tempoh MA dan jenis silang untuk mencari kombinasi parameter yang optimum
  2. Tambah penapis penunjuk teknikal lain seperti jumlah dagangan, MACD dll untuk mengurangkan isyarat palsu
  3. Tambah mekanisme stop kehilangan adaptif bukannya hanya sebaliknya isyarat stop kehilangan
  4. Set parameter reka bentuk dan peraturan hentian kerugian untuk produk yang berbeza
  5. Menggabungkan kaedah pembelajaran mesin untuk menyesuaikan parameter secara dinamik

Melalui ujian dan pengoptimuman, peraturan strategi boleh terus ditingkatkan untuk mendapatkan isyarat perdagangan yang lebih boleh dipercayai di pelbagai persekitaran pasaran.

Ringkasan

Ringkasnya, strategi pecah silang MA berganda ini agak mudah dan praktikal. Dengan menggabungkan MA cepat dan MA perlahan, ia dapat mengenal pasti permulaan trend jangka menengah hingga panjang dengan berkesan dan menghasilkan isyarat perdagangan yang agak boleh dipercayai. Juga, peraturan stop lossnya mudah dilaksanakan. Dengan pengoptimuman lanjut, strategi ini boleh menjadi sistem kuantitatif jangka panjang yang bermanfaat.


/*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"}]
*/

//@version=3
//future strategy
//strategy(title = "es1!_1minute_hull", default_qty_type = strategy.fixed, initial_capital=250000,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2, calc_on_order_fills=false, calc_on_every_tick=false,pyramiding=0)
//strategy.risk.max_position_size(2)
//stock strategy
strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=1000000, overlay = false)//, calc_on_order_fills=true, calc_on_every_tick=true)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true,initial_capital=250000, default_qty_type = strategy.percent_of_equity)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true, commission_type=strategy.commission.percent,commission_value=.005,default_qty_value=10000)
//strategy.risk.allow_entry_in(strategy.direction.long) // There will be no short entries, only exits from long.




testStartYear = 2010
testStartMonth = 1
testStartDay = 1
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testEndYear = 2039
testEndMonth = 1
testEndDay = 1
testPeriodEnd = timestamp(testEndYear,testEndMonth,testEndDay,0,0)


testPeriod() =>
    //true
    time >= testPeriodStart and time <= testPeriodEnd ? true : false

fast_length = 30
slow_length = 33

ema1 = 0.0
ema2 = 0.0

volumeSum1 = sum(volume, fast_length)
volumeSum2 = sum(volume, slow_length)

//ema1 := (((volumeSum1 - volume) * nz(ema1[1]) + volume * close) / volumeSum1)
ema1 :=  ema(close,fast_length)
//ema2 := (((volumeSum2 - volume) * nz(ema2[1]) + volume * close) / volumeSum2)
ema2 :=  ema(close,slow_length)



plot(ema1,color=#00ff00, linewidth=3)
plot(ema2, color=#ffff00, linewidth=3)

go_long = crossover(ema1,ema2)
go_short = crossunder(ema1,ema2)

if testPeriod()
    strategy.entry("long_ride", strategy.long, when=go_long)
    strategy.entry("short_ride", strategy.short,when=go_short)
    
        
    strategy.close("long_ride",when=go_short)
    strategy.close("short_ride",when=go_long)
    

Lebih lanjut