Triple Moving Average Trend Tracking Multi-Indicator Combination Quantitative Trading Strategy

EMA DMI DPO RSI ATR ADX
Tarikh penciptaan: 2025-01-17 14:57:26 Akhirnya diubah suai: 2025-01-17 14:57:26
Salin: 1 Bilangan klik: 334
1
fokus pada
1617
Pengikut

Triple Moving Average Trend Tracking Multi-Indicator Combination Quantitative Trading Strategy

Gambaran keseluruhan

Strategi tersebut ialah sistem mengikut arah aliran berdasarkan berbilang penunjuk teknikal, menggabungkan Purata Pergerakan (EMA), Indeks Pergerakan Arah (DMI), Pengayun Harga Detrended (DPO), Indeks Kekuatan Relatif (RSI) dan Julat Sebenar Purata (ATR). ) dan penunjuk teknikal lain untuk mengenal pasti arah aliran yang kukuh dan berdagang melalui pelbagai pengesahan isyarat. Idea teras reka bentuk strategi adalah untuk berdagang hanya selepas mengesahkan pelbagai ciri pasaran seperti arah aliran, momentum dan turun naik, untuk meningkatkan kadar kejayaan urus niaga.

Prinsip Strategi

Strategi ini menggunakan purata bergerak eksponen tiga kali ganda (EMA) sebagai sistem pertimbangan arah aliran teras, digabungkan dengan penunjuk teknikal lain untuk pengesahan isyarat berbilang:

  1. EMA pantas (10 hari) digunakan untuk menangkap momentum harga jangka pendek
  2. EMA jangka sederhana (25 hari) sebagai penapis arah aliran jangka sederhana
  3. EMA perlahan (50 hari) mentakrifkan arah aliran keseluruhan
  4. DMI (14 hari) digunakan untuk mengesahkan kekuatan arah aliran
  5. DPO digunakan untuk menentukan sejauh mana harga menyimpang daripada arah aliran
  6. RSI (14 hari) digunakan untuk mengukur momentum dan keadaan terlebih beli dan terlebih jual
  7. ATR (14 hari) digunakan untuk menetapkan sasaran stop loss dan keuntungan

Keadaan pencetus isyarat dagangan:

  • Keadaan panjang: Garisan pantas melintasi garisan tengah dan berada di atas garisan perlahan, ADX>25, RSI>50, DPO>0
  • Syarat jualan pendek: Garis pantas melintasi garis tengah dan berada di bawah garis perlahan, ADX>25, RSI<50, DPO

Kelebihan Strategik

  1. Pengesahan isyarat berbilang meningkatkan kebolehpercayaan transaksi dan mengurangkan risiko isyarat palsu
  2. Menggabungkan ciri penjejakan arah aliran dan momentum, ia boleh menangkap arah aliran yang kukuh dengan berkesan
  3. Laraskan sasaran henti rugi dan keuntungan secara dinamik melalui ATR untuk menyesuaikan diri dengan perubahan dalam turun naik pasaran
  4. Mekanisme pengurusan risiko yang sistematik, risiko setiap transaksi dikawal dalam 2% daripada akaun
  5. Logik strategi adalah jelas, dan fungsi setiap komponen adalah jelas, yang mudah untuk nyahpepijat dan dioptimumkan.

Risiko Strategik

  1. Isyarat pelarian palsu yang kerap mungkin berlaku dalam pasaran yang tidak menentu
  2. Penunjuk berbilang boleh mengesahkan bahawa isyarat masuk ditangguhkan
  3. Ambang ADX tetap mungkin berkelakuan tidak konsisten dalam persekitaran pasaran yang berbeza
  4. Dalam pembalikan pantas, anda mungkin menghadapi anjakan yang besar
  5. Pengoptimuman parameter boleh menyebabkan data sejarah terlalu sesuai

Langkah kawalan risiko:

  • Gunakan henti rugi dinamik ATR untuk menyesuaikan diri dengan turun naik pasaran
  • Melaksanakan pengurusan risiko nisbah tetap
  • Pengesahan silang berbilang penunjuk untuk mengurangkan isyarat palsu

Arah pengoptimuman strategi

  1. Memperkenalkan mekanisme parameter penyesuaian untuk melaraskan parameter penunjuk secara dinamik mengikut persekitaran pasaran
  2. Menambah modul pengenalan persekitaran pasaran untuk menggunakan peraturan dagangan yang berbeza di bawah keadaan pasaran yang berbeza
  3. Optimumkan mekanisme keluar dan pertimbangkan untuk menambah isyarat pembalikan arah aliran dan pengambilan untung separa
  4. Memperkenalkan analisis volum dagangan untuk meningkatkan kebolehpercayaan isyarat
  5. Membangunkan mekanisme kawalan anjakan untuk mengurangkan kedudukan atau menggantung dagangan apabila kerugian berterusan

ringkaskan

Strategi ini membina sistem perdagangan penjejakan arah aliran yang lengkap melalui aplikasi gabungan pelbagai penunjuk teknikal. Ciri utama strategi ini ialah pengesahan isyarat yang ketat dan kawalan risiko yang munasabah, dan ia sesuai untuk menjejak arah aliran jangka sederhana dan panjang pada tahap harian. Walaupun terdapat ketinggalan tertentu, prestasi keseluruhan strategi adalah stabil melalui kawalan risiko yang ketat dan pengesahan isyarat berganda. Adalah disyorkan untuk memberi perhatian kepada pilihan persekitaran pasaran apabila memohon dalam perdagangan sebenar, dan mengoptimumkan parameter mengikut ciri-ciri varieti tertentu.

Kod sumber strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy("Daily Strategy with Triple EMA, DMI, DPO, RSI, and ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Input parameters
fastEmaLength = input.int(10, title="Fast EMA Length")
mediumEmaLength = input.int(25, title="Medium EMA Length")
slowEmaLength = input.int(50, title="Slow EMA Length")
dmiLength = input.int(14, title="DMI Length")
adxSmoothing = input.int(14, title="ADX Smoothing")
dpoLength = input.int(14, title="DPO Length")
rsiLength = input.int(14, title="RSI Length")
atrLength = input.int(14, title="ATR Length")
riskPercentage = input.float(2.0, title="Risk Percentage", step=0.1)
atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss", step=0.1)
tpMultiplier = input.float(2.0, title="ATR Multiplier for Take Profit", step=0.1)

// Calculate EMAs
fastEma = ta.ema(close, fastEmaLength)
mediumEma = ta.ema(close, mediumEmaLength)
slowEma = ta.ema(close, slowEmaLength)

// Calculate other indicators
[adx, diPlus, diMinus] = ta.dmi(dmiLength, adxSmoothing)
dpo = close - ta.sma(close, dpoLength)
rsi = ta.rsi(close, rsiLength)
atr = ta.atr(atrLength)

// Trading logic
longCondition = ta.crossover(fastEma, mediumEma) and fastEma > slowEma and mediumEma > slowEma and adx > 25 and rsi > 50 and dpo > 0
shortCondition = ta.crossunder(fastEma, mediumEma) and fastEma < slowEma and mediumEma < slowEma and adx > 25 and rsi < 50 and dpo < 0

// Risk management
riskAmount = (strategy.equity * riskPercentage) / 100
stopLoss = atr * atrMultiplier
takeProfit = atr * tpMultiplier

// Entry and exit logic
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Long", "Buy", stop=close - stopLoss, limit=close + takeProfit)

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Short", "Sell", stop=close + stopLoss, limit=close - takeProfit)

// Plot indicators
plot(fastEma, color=color.green, title="Fast EMA")
plot(mediumEma, color=color.orange, title="Medium EMA")
plot(slowEma, color=color.red, title="Slow EMA")
hline(25, "ADX Threshold", color=color.gray, linestyle=hline.style_dotted)