
Strategi ini adalah sistem perdagangan komprehensif yang menggabungkan garis rata-rata bergerak, indikator relatif kuat, dan indikator kekuatan tren. Melalui kolaborasi kolaborasi dari beberapa indikator teknis, menangkap tren pasar dengan tepat dan pengendalian risiko yang efektif. Sistem ini menggunakan mekanisme stop-loss yang dinamis, memastikan rasio risiko / keuntungan perdagangan, dan menyesuaikan diri dengan lingkungan pasar yang berbeda dengan penyesuaian parameter indikator secara fleksibel.
Strategi ini didasarkan pada tiga indikator utama: indeks bergerak cepat dan lambat ((EMA), indikator relatif kuat ((RSI) dan indikator tren rata-rata ((ADX)). Ketika EMA cepat melewati EMA lambat, sistem akan memeriksa apakah RSI berada di daerah non-overbought (<60) dan memastikan bahwa ADX menunjukkan kekuatan tren yang cukup (<15)). Apabila kondisi ini terpenuhi, sistem akan mengeluarkan beberapa sinyal.
Strategi ini membangun sistem perdagangan yang relatif utuh melalui penggunaan komposit dari beberapa indikator teknis. Keunggulan utamanya adalah meningkatkan keandalan sinyal perdagangan melalui sinkronisasi indikator, sementara keamanan perdagangan dijamin melalui mekanisme kontrol risiko yang dinamis. Meskipun ada beberapa keterbatasan yang melekat, strategi ini masih memiliki ruang untuk perbaikan yang lebih besar melalui arah optimasi yang disarankan.
/*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")