
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.
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:
Keadaan pencetus isyarat dagangan:
Langkah kawalan risiko:
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.
/*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)