Strategi Pemecahan Purata Pergerakan Berganda


Tarikh penciptaan: 2023-11-27 16:21:45 Akhirnya diubah suai: 2023-11-27 16:21:45
Salin: 0 Bilangan klik: 553
1
fokus pada
1617
Pengikut

Strategi Pemecahan Purata Pergerakan Berganda

Gambaran keseluruhan

Strategi ini dilakukan dengan mengira purata bergerak 30 hari yang cepat dan purata bergerak 33 hari yang perlahan untuk saham dan membuat masuk LONG atau SHORT apabila mereka berlaku garpu emas atau garpu mati. Ia berhenti dengan serta-merta apabila isyarat sebaliknya berlaku. Ini dapat menangkap perubahan trend dengan berkesan.

Prinsip Strategi

Strategi ini berpusat pada pengiraan rata-rata 30 hari cepat dan rata-rata 33 hari perlahan. Garis cepat bertindak balas lebih cepat terhadap perubahan harga dan garis perlahan mempunyai kesan gelombang yang lebih baik.

Melalui reka bentuk silang garis rata-rata yang pantas dan perlahan ini, anda boleh menghasilkan isyarat perdagangan ketika trend bermula, dan berhenti ketika isyarat sebaliknya muncul, dengan berkesan menangkap trend harga garis tengah dan panjang. Pada masa yang sama, anda juga tidak akan terganggu oleh banyak turun naik pasaran.

Analisis kelebihan

Strategi ini mempunyai beberapa kelebihan:

  1. Menggunakan purata bergerak sederhana, mudah difahami dan dilaksanakan
  2. Gabungan antara garis pantas dan perlahan, mempunyai kesan riak dan bertindak balas dengan cepat terhadap perubahan harga
  3. Isyarat garpu emas dan garpu mati mudah, jelas dan mudah dikendalikan
  4. Menerima trend jangka panjang dengan berkesan
  5. Hentikan dengan cepat apabila isyarat pembalikan muncul, risiko boleh dikawal

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Apabila harga berada dalam keadaan goyah, beberapa isyarat palsu mungkin berlaku yang menyebabkan perdagangan yang terlalu kerap
  2. Tidak dapat menangani dengan baik perubahan harga yang ketara disebabkan oleh peristiwa yang tidak dijangka
  3. Parameter yang dipilih seperti kitaran purata mungkin memerlukan pengoptimuman, dan penyetempatan yang tidak betul akan menjejaskan prestasi strategi
  4. Perbelanjaan urus niaga akan memberi kesan kepada keuntungan

Risiko ini boleh dikawal dan dikurangkan dengan kaedah seperti pengoptimuman parameter, penyetempatan titik-titik kerugian, dan perdagangan hanya apabila trend jelas.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Mengoptimumkan kitaran purata dan jenis silang untuk mencari kombinasi parameter yang optimum
  2. Menambah penapis untuk petunjuk teknikal lain seperti jumlah dagangan, MACD dan lain-lain untuk mengurangkan isyarat palsu
  3. Menambah mekanisme adaptatif, bukan hanya reverse signal
  4. Kombinasi parameter reka bentuk dan peraturan hentian untuk pelbagai barangan
  5. Kaedah yang menggabungkan pembelajaran mesin dan parameter penyesuaian dinamik

Melalui ujian dan pengoptimuman, peraturan strategi boleh terus diperbaiki untuk mendapatkan isyarat perdagangan yang lebih dipercayai dalam keadaan pasaran yang berbeza.

ringkaskan

Strategi penembusan silang dua garis rata-rata ini agak mudah dan praktikal secara keseluruhan, dengan menggabungkan garis rata-rata cepat dan garis rata-rata perlahan, ia dapat mengenal pasti permulaan trend garis tengah dan panjang dengan berkesan, menghasilkan isyarat perdagangan yang lebih dipercayai. Aturan berhenti-rugi juga mudah dilaksanakan. Dengan pengoptimuman lanjut, strategi ini boleh menjadi sistem kuantitatif yang bernilai untuk memegang jangka panjang.

Kod 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)