Strategi Breakout Crossover Rata-rata Bergerak Ganda

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

img

Gambaran umum

Strategi ini menghasilkan sinyal masuk LONG atau SHORT ketika rata-rata bergerak sederhana 30 hari yang cepat dan rata-rata bergerak sederhana 33 hari yang lambat dari harga saham bersilang.

Prinsip Strategi

Inti dari strategi ini adalah untuk menghitung MA 30 hari cepat dan MA 33 hari lambat. Garis cepat dapat merespons perubahan harga lebih cepat sementara garis lambat memiliki efek penyaringan yang lebih baik. Ketika garis cepat menembus garis lambat ke atas, sinyal beli dihasilkan. Ini menunjukkan harga mulai naik dan garis cepat telah merespons sementara garis lambat masih tertinggal. Ketika garis cepat menembus garis lambat ke bawah, sinyal jual dihasilkan. Ini menunjukkan harga mulai menurun sementara garis cepat telah merespons tetapi garis lambat masih tertinggal.

Melalui desain crossover MA yang cepat dan lambat, ia dapat menghasilkan sinyal perdagangan ketika tren baru dimulai, dan keluar pada sinyal yang berlawanan, secara efektif menangkap tren harga jangka menengah hingga panjang.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Menggunakan rata-rata bergerak sederhana, mudah dipahami dan diterapkan
  2. Kombinasi jalur cepat dan jalur lambat dapat merespons perubahan harga dengan cepat dan juga memiliki efek penyaringan
  3. Sinyal salib emas dan salib kematian sederhana dan jelas, mudah dioperasikan
  4. Dapat secara efektif menangkap tren jangka menengah hingga panjang
  5. Keluar dengan cepat pada sinyal yang berlawanan untuk mengendalikan risiko

Analisis Risiko

Ada juga beberapa risiko untuk strategi ini:

  1. Ini dapat menghasilkan beberapa sinyal palsu ketika harga terikat kisaran, menyebabkan over-trading
  2. Tidak bisa menangani perubahan harga yang ekstrim yang disebabkan oleh peristiwa tak terduga dengan sangat baik
  3. Parameter seperti periode MA mungkin perlu dioptimalkan, pengaturan yang tidak tepat akan mempengaruhi kinerja strategi
  4. Biaya perdagangan mempengaruhi profitabilitas sampai batas tertentu

Metode seperti optimasi parameter, pengaturan tingkat stop loss, hanya perdagangan ketika tren jelas dll dapat digunakan untuk mengendalikan dan mengurangi risiko tersebut.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan periode MA dan jenis crossover untuk menemukan kombinasi parameter yang optimal
  2. Tambahkan filter indikator teknis lainnya misalnya volume perdagangan, MACD dll untuk mengurangi sinyal palsu
  3. Tambahkan mekanisme stop loss adaptif alih-alih hanya sinyal stop loss yang berlawanan
  4. Set parameter desain dan aturan stop loss untuk produk yang berbeda
  5. Mengintegrasikan metode pembelajaran mesin untuk menyesuaikan parameter secara dinamis

Melalui pengujian dan optimalisasi, aturan strategi dapat terus ditingkatkan untuk mendapatkan sinyal perdagangan yang lebih dapat diandalkan di berbagai lingkungan pasar.

Ringkasan

Singkatnya, strategi breakout crossover MA ganda ini cukup sederhana dan praktis. Dengan menggabungkan MA cepat dan MA lambat, ia dapat secara efektif mengidentifikasi awal tren jangka menengah hingga panjang dan menghasilkan sinyal perdagangan yang relatif dapat diandalkan. Juga, aturan stop lossnya mudah diterapkan. Dengan optimasi lebih lanjut, strategi ini dapat 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 banyak