Ehlers Strategi Siklus Siber Stochastic

Penulis:ChaoZhang, Tarikh: 2024-01-17 16:03:30
Tag:

img

Ringkasan

Strategi Siklus Siber Stokastik Ehlers adalah strategi perdagangan kuantitatif yang menghasilkan isyarat perdagangan menggunakan penunjuk kitaran stokastik Ehlers. Strategi ini menggabungkan kelebihan penunjuk stokastik dan penunjuk kitaran, bertujuan untuk menangkap peluang siklik di pasaran.

Logika Strategi

Strategi ini mula-mula membina penunjuk kitaran yang halus, kemudian membina nilai penunjuk stokastik berdasarkan penunjuk itu. Penjanaan isyarat perdagangan ditentukan oleh persilangan garis purata bergerak nilai penunjuk stokastik ini.

Khususnya, penunjuk kitaran halus dikira sebagai:

smooth = (src + 2 * src[1] + 2 * src[2] + src[3]) / 6

Di mana src adalah data harga input, seperti harga penutupan. Penunjuk ini menggabungkan harga semasa dan harga 3 tempoh masa sebelumnya untuk membina isyarat kitaran yang halus.

Berdasarkan penunjuk yang dihaluskan ini, kitaran kitaran stokastik kemudian boleh dikira:

cycle := (1 - .5 * alpha) * (1 - .5 * alpha) *  
           (smooth - 2 * smooth[1] + smooth[2]) +  
           2 * (1 - alpha) * cycle[1] -  
           (1 - alpha) * (1 - alpha) * cycle[2]

Rumus pengiraan ini mengandungi perbezaan urutan kedua isyarat berkala yang dihaluskan, dan nilai dua kitaran sebelumnya. α adalah faktor penghalusan yang menyesuaikan berat nilai kitaran baru dan lama.

Akhirnya, nilai nilai rawak 0-100 dikira berdasarkan penunjuk kitaran ini. dan isyarat nilai isyarat dibina berdasarkan purata bergerak 10 hari nilai1. isyarat perdagangan dikeluarkan apabila garis purata bergerak isyarat melintasi ke atas atau ke bawah.

Kelebihan Strategi

Strategi ini menggabungkan penunjuk stokastik dan penunjuk kitaran untuk mengintegrasikan kelebihan kedua-duanya. Berbanding dengan strategi trend mudah seperti purata bergerak, strategi ini dapat menangkap peluang kitaran dengan lebih baik dan dengan itu mencapai hasil yang lebih baik.

Kelebihan utama ialah:

  1. Penunjuk kitaran boleh mengenal pasti corak kitaran, penunjuk stokastik menyediakan peluang perdagangan
  2. Reka bentuk penunjuk berganda dapat menapis isyarat palsu dengan berkesan
  3. Parameter yang boleh disesuaikan sesuai dengan persekitaran pasaran yang berbeza

Risiko Strategi

Risiko utama strategi ini ialah:

  1. Tetapan parameter yang tidak betul boleh membawa kepada perdagangan yang kerap, meningkatkan kos dagangan dan kos seluncur
  2. Tidak dapat mengendalikan pasaran dengan turun naik harga yang ganas, yang boleh menyebabkan kerugian besar
  3. Indikator kitaran bergantung kepada pemasangan lengkung, pemasangan yang tidak betul boleh menghasilkan isyarat yang salah

Risiko boleh dikawal dengan mengoptimumkan tetapan parameter, menetapkan titik stop loss, menggabungkan penapis lain, dan lain-lain.

Arahan pengoptimuman

Strategi ini juga boleh dioptimumkan dalam aspek berikut:

  1. Gabungkan dengan penunjuk teknikal lain untuk penapisan isyarat, seperti Bollinger Bands, RSI, dll., untuk mengurangkan isyarat palsu
  2. Tambah mekanisme keluar adaptif, menyesuaikan titik stop loss secara dinamik mengikut turun naik pasaran
  3. Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan parameter secara automatik untuk menyesuaikan diri dengan pasaran secara dinamik
  4. Mengoptimumkan penggunaan modal melalui leverage, compounding dan cara lain

Kesimpulan

Strategi Siklus Siber Stokastis Ehlers mengintegrasikan kelebihan penunjuk stokastis dan kitaran melalui reka bentuk isyarat berganda untuk mengawal risiko dengan berkesan, dan dapat mencapai pulangan yang baik di pasaran dengan siklisiti yang kuat. Dengan pengoptimuman lanjut, strategi ini boleh menjadi strategi perdagangan kuantitatif yang berbaloi untuk disyorkan.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ehlers Stochastic 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
len = input(8, title = "Stochastic len")
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]

value1 = stoch(cycle, cycle, cycle, len) / 100
value2 = 2 * ((4 * value1 + 3 * value1[1] + 2 * value1[2] + value1[3]) / 10 - 0.5)

signal = value2
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)

Lebih lanjut