Strategi Breakout Crossover Rata-rata Pergerakan Ganda


Tanggal Pembuatan: 2023-11-27 16:21:45 Akhirnya memodifikasi: 2023-11-27 16:21:45
menyalin: 0 Jumlah klik: 553
1
fokus pada
1617
Pengikut

Strategi Breakout Crossover Rata-rata Pergerakan Ganda

Ringkasan

Strategi ini dilakukan dengan menghitung rata-rata bergerak cepat 30 hari dan rata-rata bergerak lambat 33 hari dari saham dan melakukan entry LONG atau SHORT ketika mereka mengalami Gold Fork atau Dead Fork. Dengan stop loss segera ketika ada sinyal sebaliknya. Ini dapat secara efektif menangkap perubahan tren.

Prinsip Strategi

Inti dari strategi ini adalah dengan menghitung 30 hari cepat rata-rata dan 33 hari lambat rata-rata. The line cepat dapat lebih cepat merespons perubahan harga dan line lambat memiliki efek riak yang lebih baik. Ketika garis cepat dari bawah menembus garis lambat dan naik menghasilkan sinyal beli. Ini berarti bahwa harga mulai naik dan line cepat telah merespons tetapi line lambat masih tertinggal.

Dengan cara ini, Anda dapat menghasilkan sinyal perdagangan saat tren dimulai, dan berhenti ketika sinyal sebaliknya muncul. Dengan cara ini, Anda dapat secara efektif menangkap tren harga garis tengah dan panjang. Anda juga dapat menghindari terlalu banyak fluktuasi pasar.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan:

  1. Menggunakan Simple Moving Average, mudah dipahami dan diterapkan
  2. Kombinasi jalur cepat dan lambat, memiliki efek riak baik untuk merespons perubahan harga dengan cepat
  3. Sinyal garpu emas dan garpu mati sederhana, jelas, dan mudah dioperasikan
  4. Ini adalah salah satu cara yang paling efektif untuk menangkap tren jangka panjang.
  5. Hentikan dengan cepat saat sinyal reversal muncul, untuk mengendalikan risiko

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Ketika harga berada dalam keadaan goyah, sinyal palsu yang berulang dapat menyebabkan perdagangan yang terlalu sering
  2. Tidak mampu menanggapi perubahan harga yang drastis yang disebabkan oleh insiden tak terduga.
  3. Parameter yang dipilih, seperti periode rata-rata, mungkin perlu dioptimalkan, dan pengaturan yang salah dapat mempengaruhi kinerja kebijakan
  4. Biaya transaksi akan mempengaruhi keuntungan

Risiko ini dapat dikendalikan dan dikurangi dengan cara seperti pengoptimalan parameter, pengaturan stop loss, dan perdagangan hanya saat tren jelas.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Optimalkan siklus rata-rata dan jenis silang untuk menemukan kombinasi parameter optimal
  2. Menambahkan filter untuk indikator teknis lainnya, seperti volume perdagangan, MACD, dll, untuk mengurangi sinyal palsu
  3. Menambahkan mekanisme adaptive stop loss, bukan hanya reverse signal stop loss
  4. Kombinasi parameter desain dan aturan stop loss untuk berbagai komoditas
  5. Metode yang menggabungkan pembelajaran mesin dan parameter penyesuaian dinamis

Melalui pengujian dan pengoptimalan, aturan strategi dapat terus ditingkatkan untuk mendapatkan sinyal perdagangan yang lebih andal dalam berbagai kondisi pasar.

Meringkaskan

Strategi penembusan silang dua rata-rata ini secara keseluruhan relatif sederhana dan praktis, dengan kombinasi rata-rata cepat dan rata-rata lambat, dapat secara efektif mengidentifikasi awal tren garis tengah dan panjang, menghasilkan sinyal perdagangan yang lebih andal. Selain itu, aturan stop lossnya juga mudah diterapkan. Dengan pengoptimalan lebih lanjut, strategi ini dapat menjadi sistem kuantitatif yang layak dimiliki dalam jangka panjang.

Kode Sumber Strategi
/*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)