Ehlers Strategi Siklus Cyber Stochastic

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

img

Gambaran umum

Ehlers Stochastic Cyber Cycle Strategy adalah strategi perdagangan kuantitatif yang menghasilkan sinyal perdagangan menggunakan indikator siklus stokastik Ehlers.

Logika Strategi

Strategi ini pertama-tama membangun indikator siklus halus, kemudian membangun nilai indikator stokastik berdasarkan indikator tersebut. Generasi sinyal perdagangan ditentukan oleh penyeberangan garis rata-rata bergerak dari nilai indikator stokastik ini.

Secara khusus, indikator siklus halus dihitung sebagai berikut:

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

Di mana src adalah data harga masukan, seperti harga penutupan Indikator ini menggabungkan harga saat ini dan harga dari 3 periode waktu sebelumnya untuk membangun sinyal siklus halus.

Berdasarkan indikator yang dihaluskan ini, siklus siklus stokastik kemudian dapat dihitung:

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 perhitungan ini berisi perbedaan urutan kedua dari sinyal periodik yang dihaluskan, dan nilai dari dua siklus sebelumnya. α adalah faktor penghalusan yang menyesuaikan berat nilai siklus baru dan lama.

Akhirnya, nilai nilai acak 0-100 dihitung berdasarkan indikator siklus ini. Dan sinyal nilai sinyal dibangun berdasarkan rata-rata pergerakan 10 hari nilai1. Sinyal perdagangan dikeluarkan ketika garis rata-rata bergerak sinyal melintasi atas atau bawah.

Keuntungan dari Strategi

Strategi ini menggabungkan indikator stokastik dan indikator siklus untuk mengintegrasikan keuntungan keduanya. Dibandingkan dengan strategi tren sederhana seperti moving average, strategi ini dapat lebih baik menangkap peluang siklus dan dengan demikian mencapai hasil yang lebih baik.

Keuntungan utama adalah:

  1. Indikator siklus dapat mengidentifikasi pola siklus, indikator stokastik memberikan peluang perdagangan
  2. Desain indikator ganda dapat secara efektif menyaring sinyal palsu
  3. Parameter yang dapat disesuaikan sesuai dengan lingkungan pasar yang berbeda

Risiko dari Strategi

Risiko utama dari strategi ini adalah:

  1. Pengaturan parameter yang tidak benar dapat menyebabkan perdagangan yang sering, meningkatkan biaya perdagangan dan biaya slippage
  2. Tidak dapat secara efektif menangani pasar dengan fluktuasi harga yang keras yang dapat menyebabkan kerugian besar
  3. Indikator siklus sangat bergantung pada pemasangan kurva, pemasangan yang tidak benar dapat menghasilkan sinyal yang salah

Risiko dapat dikendalikan dengan mengoptimalkan pengaturan parameter, menetapkan titik stop loss, menggabungkan indikator penyaringan lainnya, dll.

Arahan Optimasi

Strategi ini juga dapat dioptimalkan dalam aspek berikut:

  1. Gabungkan dengan indikator teknis lain untuk penyaringan sinyal, seperti Bollinger Bands, RSI, dll, untuk mengurangi sinyal palsu
  2. Tambahkan mekanisme keluar adaptif, menyesuaikan titik stop loss secara dinamis sesuai dengan volatilitas pasar
  3. Menggunakan metode pembelajaran mesin untuk mengoptimalkan parameter secara otomatis untuk beradaptasi secara dinamis dengan pasar
  4. Mengoptimalkan pemanfaatan modal melalui leverage, compounding dan cara lainnya

Kesimpulan

Strategi Siklus Siber Stokastik Ehlers mengintegrasikan keuntungan dari indikator stokastik dan siklus melalui desain sinyal ganda untuk mengontrol risiko secara efektif, dan dapat mencapai pengembalian yang baik di pasar dengan siklisitas yang kuat.


/*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 banyak