
Strategi ini adalah sistem perdagangan komprehensif yang menggabungkan garis rata-rata bergerak, penunjuk kekuatan yang agak kuat dan penunjuk kekuatan trend. Dengan kerjasama kerjasama pelbagai penunjuk teknikal, ia dapat menangkap tren pasaran dengan tepat dan mengawal risiko dengan berkesan. Sistem ini menggunakan mekanisme stop-loss yang dinamik, memastikan nisbah risiko dan keuntungan perdagangan, dan menyesuaikan diri dengan keadaan pasaran yang berbeza dengan menyesuaikan parameter penunjuk secara fleksibel.
Strategi ini berdasarkan kepada tiga petunjuk utama: Indeks Pergerakan Rata-rata Pergerakan Cepat dan Perlahan (EMA), Indeks Kecenderungan Kuat (RSI) dan Indeks Pergerakan Rata-rata Pergerakan Pergerakan (ADX). Apabila EMA pantas melintasi EMA perlahan, sistem akan memeriksa sama ada RSI berada di kawasan yang tidak terlalu beli (kurang daripada 60), sambil mengesahkan bahawa ADX menunjukkan kekuatan trend yang mencukupi (lebih daripada 15). Apabila syarat-syarat ini dipenuhi, sistem akan mengeluarkan beberapa isyarat.
Strategi ini membina sistem perdagangan yang agak lengkap melalui penggunaan komprehensif pelbagai petunjuk teknikal. Kelebihan utamanya adalah meningkatkan kebolehpercayaan isyarat perdagangan melalui sinkronisasi petunjuk, sambil memastikan keselamatan perdagangan melalui mekanisme kawalan risiko yang dinamik. Walaupun terdapat beberapa batasan yang melekat, strategi ini masih mempunyai ruang untuk penambahbaikan yang besar melalui arah pengoptimuman yang dicadangkan.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-23 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Enhanced EMA + RSI + ADX Strategy (Focused on 70% Win Rate)", overlay=true)
// Input parameters
lenFast = input.int(9, title="Fast EMA Length", minval=1)
lenSlow = input.int(21, title="Slow EMA Length", minval=1)
rsiPeriod = input.int(14, title="RSI Period")
adxPeriod = input.int(14, title="ADX Period")
adxSmoothing = input.int(1, title="ADX Smoothing")
adxThreshold = input.int(15, title="ADX Threshold")
riskRewardRatio = input.float(1.5, title="Risk/Reward Ratio")
rsiOverbought = input.int(60, title="RSI Overbought Level") // Adjusted for flexibility
rsiOversold = input.int(40, title="RSI Oversold Level")
// EMA Calculations
fastEMA = ta.ema(close, lenFast)
slowEMA = ta.ema(close, lenSlow)
// RSI Calculation
rsiValue = ta.rsi(close, rsiPeriod)
// ADX Calculation
[plusDI, minusDI, adxValue] = ta.dmi(adxPeriod, adxSmoothing)
// Entry Conditions with Confirmation
buyCondition = ta.crossover(fastEMA, slowEMA) and rsiValue < rsiOverbought and adxValue > adxThreshold
sellCondition = ta.crossunder(fastEMA, slowEMA) and rsiValue > rsiOversold and adxValue > adxThreshold
// Dynamic Exit Conditions
takeProfit = strategy.position_avg_price + (close - strategy.position_avg_price) * riskRewardRatio
stopLoss = strategy.position_avg_price - (close - strategy.position_avg_price)
// Entry logic
if (buyCondition)
strategy.entry("Buy", strategy.long)
strategy.exit("Sell", from_entry="Buy", limit=takeProfit, stop=stopLoss)
if (sellCondition)
strategy.close("Buy")
// Plotting EMAs
plot(fastEMA, color=color.new(color.green, 0), title="Fast EMA", linewidth=1)
plot(slowEMA, color=color.new(color.red, 0), title="Slow EMA", linewidth=1)
// Entry and exit markers
plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.normal, title="Buy Signal")
plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.normal, title="Sell Signal")
// Alerts
alertcondition(buyCondition, title="Buy Alert", message="Buy signal triggered")
alertcondition(sellCondition, title="Sell Alert", message="Sell signal triggered")