Ehlers Stochastic Cyber Cycle Strategy adalah strategi perdagangan kuantitatif yang menghasilkan sinyal perdagangan menggunakan indikator siklus stokastik Ehlers.
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.
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:
Risiko utama dari strategi ini adalah:
Risiko dapat dikendalikan dengan mengoptimalkan pengaturan parameter, menetapkan titik stop loss, menggabungkan indikator penyaringan lainnya, dll.
Strategi ini juga dapat dioptimalkan dalam aspek berikut:
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)