Sumber dimuat naik... memuat...

Trend EMA Bertiga Berikutan Strategi Dagangan Kuantitatif Multi-Indikator

Penulis:ChaoZhang, Tarikh: 2025-01-17 14:57:26
Tag:EMADMIDPORSIATRADX

 Triple EMA Trend Following Multi-Indicator Quantitative Trading Strategy

Ringkasan

Strategi ini adalah sistem trend berikut berdasarkan pelbagai penunjuk teknikal, menggabungkan Moving Averages (EMA), Directional Movement Index (DMI), Detrended Price Oscillator (DPO), Relative Strength Index (RSI), dan Average True Range (ATR).

Prinsip Strategi

Strategi ini menggunakan sistem Triple Exponential Moving Average (EMA) sebagai mekanisme pengenalan trend utamanya, digabungkan dengan penunjuk teknikal lain untuk pengesahan isyarat berbilang: 1. EMA pantas (10 hari) menangkap momentum harga jangka pendek 2. EMA sederhana (25-hari) berfungsi sebagai penapis trend jangka sederhana 3. EMA perlahan (50 hari) menentukan arah trend keseluruhan 4. DMI (14 hari) mengesahkan kekuatan arah trend 5. DPO mengesahkan penyelewengan harga daripada trend 6. RSI (14-hari) mengukur momentum dan keadaan overbought/oversold 7. ATR (14-hari) menetapkan sasaran stop-loss dan keuntungan

Syarat Isyarat Perdagangan: - Panjang: EMA pantas melintasi EMA sederhana dengan kedua-dua di atas EMA perlahan, ADX>25, RSI>50, DPO>0 - Pendek: EMA pantas melintasi di bawah EMA sederhana dengan kedua-dua di bawah EMA perlahan, ADX>25, RSI<50, DPO<0

Kelebihan Strategi

  1. Pengesahan isyarat berbilang meningkatkan kebolehpercayaan dan mengurangkan isyarat palsu
  2. Menggabungkan ciri trend berikut dan momentum untuk menangkap trend yang berkesan
  3. Penyesuaian dinamik berhenti dan sasaran melalui ATR menyesuaikan diri dengan turun naik pasaran
  4. Pengurusan risiko sistematik mengehadkan setiap risiko perdagangan kepada 2% daripada akaun
  5. Logik strategi yang jelas dengan fungsi komponen yang ditakrifkan dengan baik memudahkan debugging dan pengoptimuman

Risiko Strategi

  1. Boleh menghasilkan isyarat pecah palsu yang kerap di pasaran yang berbeza
  2. Pengesahan pelbagai penunjuk boleh menyebabkan kemasukan yang tertunda
  3. Sempadan ADX tetap mungkin berprestasi tidak konsisten dalam keadaan pasaran yang berbeza
  4. Potensi pengeluaran yang signifikan semasa pembalikan pasaran yang cepat
  5. Risiko pengoptimuman parameter terlalu sesuai dengan data sejarah

Langkah-langkah Kawalan Risiko: - Hentikan dinamik berasaskan ATR menyesuaikan diri dengan turun naik pasaran - Pengurusan risiko perkadaran tetap - Pengesahan silang pelbagai penunjuk mengurangkan isyarat palsu

Arahan Pengoptimuman Strategi

  1. Memperkenalkan mekanisme parameter adaptif untuk menyesuaikan parameter penunjuk secara dinamik berdasarkan keadaan pasaran
  2. Tambah modul pengiktirafan persekitaran pasaran untuk menggunakan peraturan perdagangan yang berbeza dalam keadaan pasaran yang berbeza
  3. Mengoptimumkan mekanisme keluar dengan menggabungkan isyarat pembalikan trend dan mengambil keuntungan separa
  4. Menggabungkan analisis jumlah untuk meningkatkan kebolehpercayaan isyarat
  5. Membangunkan mekanisme kawalan pengeluaran untuk mengurangkan saiz kedudukan atau menghentikan perdagangan semasa kerugian berturut-turut

Ringkasan

Strategi ini membina sistem perdagangan trend yang lengkap melalui gabungan beberapa penunjuk teknikal. Ciri utamanya adalah pengesahan isyarat yang ketat dan kawalan risiko yang munasabah, sesuai untuk mengesan trend jangka menengah hingga panjang pada jangka masa harian. Walaupun terdapat beberapa kelewatan dalam isyarat, strategi ini menunjukkan prestasi keseluruhan yang kukuh melalui kawalan risiko yang ketat dan pengesahan isyarat berbilang. Apabila memohon untuk perdagangan langsung, pertimbangan yang teliti harus diberikan kepada pemilihan persekitaran pasaran dan pengoptimuman parameter untuk instrumen tertentu.


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


Berkaitan

Lebih lanjut