Strategi Kitaran Els Berdasarkan Pelicinan Isyarat


Tarikh penciptaan: 2024-02-19 10:42:34 Akhirnya diubah suai: 2024-02-19 10:42:34
Salin: 2 Bilangan klik: 334
1
fokus pada
1166
Pengikut

Strategi Kitaran Els Berdasarkan Pelicinan Isyarat

Gambaran keseluruhan

Strategi ini merancang strategi perdagangan kitaran Ehlers yang merampingkan isyarat perdagangan dengan mengira isyarat harga yang telah diproses dengan lancar, digabungkan dengan teori indikator kitaran yang dikemukakan oleh Ehlers. Strategi ini dapat menyaring bunyi pasaran dengan berkesan dan menghasilkan isyarat perdagangan yang lebih dipercayai.

Prinsip Strategi

  1. Sinyal harga asalsrc telah diproses dengan kelancaran tahap kedua, dan hasil kelancaran isyarat adalah smooth。

  2. Indikator kitaran dikira berdasarkan isyarat meluruskan cycle. Kaedah pengiraan adalah: cycle := (1 - .5 alpha) (1 - .5 alpha) (smooth - 2 smooth[1] + smooth[2]) + 2 (1 - alpha) cycle[1] - (1 - alpha) (1 - alpha) * cycle[2]

Di mana α adalah parameter meluruskan.

  1. Penunjuk kitaran diperhalusi dengan indeks tahap pertama, yang menghasilkan isyarat perdagangan akhir. Cara pengiraan adalah: signal := alpha2 cycle + (1 - alpha2) nz(signal[1])

Di mana α2 adalah parameter kelancaran satu darjah.

  1. Apabila signal di atas melalui signal[1] melakukan lebih banyak; apabila signal di bawah melewati signal[1] masa lapang.

Analisis kelebihan strategi

  1. Melalui penyelarasan tahap kedua isyarat harga, bunyi frekuensi tinggi dapat disaring dengan berkesan, menjadikan isyarat perdagangan lebih dipercayai.

  2. Dengan menggunakan teori kitaran Erss, kita dapat lebih tepat menentukan titik peralihan trend pasaran.

  3. Indeks peringkat pertama menapis kebisingan sebahagian daripada indikator pusingan, menghasilkan isyarat perdagangan yang lebih dipercayai.

  4. Keseluruhan proses strategi adalah munasabah, saintifik, parameter pengoptimuman ruang yang besar, prestasi cakera yang sangat baik.

Analisis risiko

  1. Seperti strategi penunjuk teknikal yang lain, strategi ini juga sensitif terhadap risiko sistemik pasaran. Ia mungkin menyebabkan kerugian yang lebih besar sekiranya berlaku peristiwa batu hitam yang besar.

  2. Oleh kerana proses pengiraan lebih rumit, penetapan parameter yang tidak betul boleh menyebabkan kelewatan pengiraan, yang akan menjejaskan kesan cakera keras. Perlu diuji dengan teliti untuk memastikan penetapan parameter adalah saintifik.

  3. Pengendalian lancar juga boleh menyebabkan isyarat perdagangan terlewat, mungkin tidak dapat menangkap titik perubahan pasaran tepat pada masanya, sehingga kehilangan peluang. Pengaturan parameter lancar yang perlu dipertandingkan.

Arah pengoptimuman strategi

  1. Anda boleh menguji pelbagai jenis algoritma kelancaran, seperti kelancaran indeks satu peringkat, kelancaran rata-rata, dan lain-lain, untuk mencari penyelesaian kelancaran yang optimum.

  2. Mekanisme penyesuaian parameter yang dapat disesuaikan boleh diperkenalkan, menyesuaikan parameter secara dinamik mengikut keadaan pasaran, meningkatkan kecergasan strategi.

  3. Anda boleh merancang strategi hentian dan hentian untuk mengurangkan risiko kerugian tunggal, sambil mengunci keuntungan.

  4. Model pembelajaran mesin boleh digabungkan dengan model lain, mewujudkan kombinasi model, dan memfilter isyarat perdagangan menggunakan model lain.

ringkaskan

Strategi ini merancang strategi perdagangan kitaran Els yang merata dengan isyarat harga dan pengiraan indikator kitaran Els. Strategi ini dapat menyaring kebisingan dengan berkesan dan menghasilkan isyarat perdagangan yang lebih dipercayai. Di samping itu, ruang parameter yang lebih besar, kesan keras yang baik.

Kod sumber strategi
/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ehlers Cyber Cycle Strategy",overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, commission_type = strategy.commission.percent, commission_value = 0.1)
src = input(hl2, title = "Source") 
alpha = input(.07, title = "Alpha")
lag = input(9, title = "Lag")
smooth = (src + 2 * src[1] + 2 * src[2] + src[3]) / 6

cycle = na
if na(cycle[7])
    cycle := (src - 2 * src[1] + src[2]) / 4
else
    cycle := (1 - .5 * alpha) * (1 - .5 * alpha) * (smooth - 2 * smooth[1] + smooth[2]) + 2 * (1 - alpha) * cycle[1] - (1 - alpha) * (1 - alpha) * cycle[2]

alpha2 = 1 / (lag + 1)
signal = na
signal := alpha2 * cycle + (1 - alpha2) * nz(signal[1])
oppositeTrade = input(true)
barsSinceEntry = 0
barsSinceEntry := nz(barsSinceEntry[1]) + 1
if strategy.position_size == 0
    barsSinceEntry := 0
if (crossover(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossunder(signal, signal[1]))
    strategy.entry("Long", strategy.long)
    barsSinceEntry := 0
if (crossunder(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossover(signal, signal[1]))
    strategy.entry("Short", strategy.short)
    barsSinceEntry := 0
if strategy.openprofit < 0 and barsSinceEntry > 8
    strategy.close_all()
    barsSinceEntry := 0
    
    
plot(0, title="ZeroLine", color=gray) 
plotSrc = signal
cyclePlot = plot(plotSrc, title = "CyberCycle", color = blue)
triggerPlot = plot(plotSrc[1], title = "Trigger", color = green)
fill(cyclePlot, triggerPlot, color = plotSrc < plotSrc[1] ? red : lime, transp = 50)