Sumber daya yang dimuat... Pemuatan...

Strategi EMA Dual Lanjutan dengan Sistem Filter Volatilitas ATR

Penulis:ChaoZhang, Tanggal: 2024-11-29 16:14:30
Tag:EMAATRMA

img

Gambaran umum

Ini adalah strategi perdagangan kuantitatif yang menggabungkan crossover Exponential Moving Average (EMA) dengan filter Average True Range (ATR). Strategi ini bertujuan untuk mengidentifikasi tren yang kuat dan melakukan perdagangan dalam kondisi pasar yang sangat volatilitas, secara efektif meningkatkan rasio Sharpe dan kinerja keseluruhan.

Prinsip Strategi

Untuk menentukan tren, strategi ini menggunakan EMA 50 periode sebagai garis cepat dan EMA 200 periode sebagai garis lambat, menghasilkan sinyal panjang ketika garis cepat melintasi di atas garis lambat dan sinyal pendek ketika melintasi di bawah. Untuk penyaringan volatilitas, strategi menghitung nilai ATR 14 periode dan mengubahnya menjadi persentase harga, hanya memungkinkan posisi ketika persentase ATR melebihi ambang batas yang telah ditetapkan (default 2%).

Keuntungan Strategi

  1. Mekanisme penyaringan volatilitas secara signifikan meningkatkan stabilitas strategi dengan hanya berdagang di lingkungan volatilitas tinggi
  2. Menggunakan perhitungan ATR berdasarkan persentase membuat filter volatilitas dapat disesuaikan dengan instrumen pada tingkat harga yang berbeda
  3. Kombinasi rata-rata bergerak jangka menengah dan jangka panjang secara efektif menangkap tren utama sambil mengurangi kebisingan jangka pendek
  4. Logika strategi yang sederhana dan jelas dengan relatif sedikit parameter, mengurangi risiko overfit
  5. Pengendalian risiko yang efektif melalui manajemen posisi yang tepat (10% ukuran posisi)

Risiko Strategi

  1. Indikator EMA memiliki keterlambatan yang melekat, yang berpotensi menyebabkan penundaan waktu masuk dan keluar di pasar yang tidak stabil
  2. Penembusan palsu masih dapat terjadi di pasar yang berbeda, bahkan dengan penyaringan ATR
  3. Ambang batas ATR tetap mungkin tidak cocok untuk semua kondisi pasar
  4. Siklisitas pasar tidak dipertimbangkan, parameter mungkin perlu disesuaikan pada fase pasar yang berbeda Dianjurkan untuk menggunakan stop loss dinamis dan pembentukan posisi secara bertahap untuk mengelola risiko ini

Arah Optimasi Strategi

  1. Memperkenalkan ambang batas ATR dinamis yang beradaptasi dengan kondisi pasar
  2. Tambahkan indikator konfirmasi kekuatan tren seperti DMI atau ADX
  3. Menerapkan mekanisme pembentukan dan penutupan posisi bertahap untuk mengurangi risiko masuk/keluar tunggal
  4. Tambahkan modul analisis musiman untuk menggunakan parameter yang berbeda dalam siklus pasar yang berbeda
  5. Mengembangkan mekanisme pemilihan periode rata-rata bergerak adaptif untuk meningkatkan kemampuan adaptasi strategi

Ringkasan

Strategi ini menggabungkan indikator teknis klasik dengan konsep manajemen risiko modern. Dengan menggunakan EMA crossover untuk menangkap tren sambil menggunakan filter ATR untuk mengontrol waktu perdagangan, strategi ini mempertahankan kesederhanaan sambil mencapai kepraktisan yang kuat. Sementara beberapa risiko yang melekat ada, strategi ini masih memiliki nilai aplikasi yang baik melalui optimasi yang tepat dan langkah-langkah manajemen risiko. Pedagang disarankan untuk menyesuaikan parameter sesuai dengan karakteristik pasar tertentu dan preferensi risiko mereka sendiri dalam aplikasi praktis.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover with ATR Filter", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Inputs for Moving Averages
fastLength = input.int(50, title="Fast EMA Length")
slowLength = input.int(200, title="Slow EMA Length")

// Inputs for ATR Filter
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Multiplier")
atrThreshold = input.float(0.02, title="ATR Threshold (%)")

// Calculate EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)

// Calculate ATR
atr = ta.atr(atrLength)

// Convert ATR to a percentage of price
atrPct = atr / close

// Define Long Condition (Cross and ATR filter)
longCondition = ta.crossover(fastEMA, slowEMA) and atrPct > atrThreshold / 100

// Define Short Condition
shortCondition = ta.crossunder(fastEMA, slowEMA) and atrPct > atrThreshold / 100

// Define Exit Conditions
exitConditionLong = ta.crossunder(fastEMA, slowEMA)
exitConditionShort = ta.crossover(fastEMA, slowEMA)

// Long Entry
if (longCondition)
    strategy.entry("Long", strategy.long)

// Short Entry
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Long Exit
if (exitConditionLong)
    strategy.close("Long")

// Short Exit
if (exitConditionShort)
    strategy.close("Short")

// Plot EMAs for visual reference
plot(fastEMA, title="50 EMA", color=color.blue)
plot(slowEMA, title="200 EMA", color=color.red)

// Plot ATR for reference
plot(atrPct, title="ATR Percentage", color=color.orange, style=plot.style_line)
hline(atrThreshold / 100, "ATR Threshold", color=color.green)

Berkaitan

Lebih banyak