Strategi Purata Pergerakan Dwi Lanjutan dan Sistem Penapis Volatiliti ATR

EMA ATR MA
Tarikh penciptaan: 2024-11-29 16:14:30 Akhirnya diubah suai: 2024-11-29 16:14:30
Salin: 0 Bilangan klik: 559
1
fokus pada
1617
Pengikut

Strategi Purata Pergerakan Dwi Lanjutan dan Sistem Penapis Volatiliti ATR

Gambaran keseluruhan

Ini adalah strategi perdagangan kuantitatif yang menggabungkan penapis Indeks Moving Average (EMA) Crossover dan Average True Rate (ATR). Strategi ini meningkatkan kadar Sharpe dan prestasi keseluruhan strategi dengan mengenal pasti trend yang kuat dan berdagang di bawah persekitaran pasaran yang bergelombang. Strategi ini menggunakan 50 dan 200 kitaran EMA untuk menangkap trend jangka panjang dan menengah, sambil menggunakan indikator ATR untuk menilai turun naik pasaran, dan hanya berdagang apabila turun naik melebihi paras tertentu.

Prinsip Strategi

Logik teras strategi ini merangkumi dua bahagian utama: penilaian trend dan penapisan kadar turun naik. Dalam penilaian trend, strategi ini menggunakan EMA 50 kitaran sebagai garis cepat, EMA 200 kitaran sebagai garis perlahan, menghasilkan isyarat berganda ketika melintasi garis perlahan pada garis cepat, menghasilkan isyarat kosong ketika melintasi.

Kelebihan Strategik

  1. Mekanisme penapisan kadar turun naik meningkatkan kestabilan strategi secara ketara, meningkatkan kadar kemenangan dengan berdagang hanya dalam persekitaran turun naik yang tinggi
  2. ATR dikira menggunakan peratusan, yang membolehkan penapis kadar turun naik untuk pelbagai jenis dalam julat harga
  3. Gabungan dengan garis rata-rata jangka panjang, ia dapat menangkap trend besar dengan berkesan dan mengurangkan kesan bunyi jangka pendek
  4. Logik strategi mudah dan jelas, parameter yang agak sedikit, mengurangkan risiko overfitting
  5. Mengendalikan risiko dengan berkesan dengan menetapkan pengurusan kedudukan yang munasabah (posisi 10%)

Risiko Strategik

  1. Indeks EMA mempunyai keterlambatan yang boleh menyebabkan kelewatan masa masuk dan keluar dalam pasaran yang bergolak
  2. Walaupun terdapat penapisan ATR, penembusan palsu boleh berlaku dalam pasaran yang bergolak
  3. Had ATR tetap mungkin tidak sesuai untuk semua keadaan pasaran
  4. Tidak mengambil kira perubahan kitaran pasaran, parameter mungkin perlu disesuaikan pada peringkat pasaran yang berbeza Ia adalah disyorkan untuk menguruskan risiko ini dengan cara menghentikan kerugian secara dinamik dan membangunkan simpanan secara beransur-ansur.

Arah pengoptimuman strategi

  1. Memperkenalkan nilai terhad ATR yang dinamik, menyesuaikan diri mengikut keadaan pasaran
  2. Meningkatkan penunjuk pengesahan kekuatan trend, seperti DMI atau ADX
  3. Mempunyai mekanisme pembinaan dan pemindahan gudang secara berturutan untuk mengurangkan risiko masuk dan keluar tunggal
  4. Tambah modul analisis bermusim, dengan parameter yang berbeza dalam kitaran pasaran yang berbeza
  5. Membangunkan mekanisme pilihan kitaran linear yang beradaptasi untuk meningkatkan kebolehlakuan strategi

ringkaskan

Ini adalah strategi yang menggabungkan petunjuk teknikal klasik dengan falsafah pengurusan risiko moden. Strategi ini mempunyai kesederhanaan yang kuat dan pada masa yang sama mempunyai kepraktisan yang kuat. Walaupun terdapat beberapa risiko yang wujud, strategi ini masih mempunyai nilai aplikasi yang baik melalui pengoptimuman yang munasabah dan langkah-langkah pengurusan risiko.

Kod sumber strategi
/*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)