
Die Strategie ist ein integriertes Handelssystem mit einer Kombination aus Moving Averages, relativ starken Indikatoren und Indikatoren für die Trendstärke. Durch die synchronisierte Zusammenarbeit von mehreren technischen Indikatoren wird eine genaue Erfassung der Markttrends und eine effektive Kontrolle des Risikos ermöglicht. Das System verwendet eine dynamische Stop-Loss-Mechanismus, um das Risiko-Gewinn-Verhältnis des Handels zu gewährleisten, während die Indikatorparameter durch flexible Anpassung an verschiedene Marktumstände angepasst werden.
Die Strategie basiert hauptsächlich auf drei Kernindikatoren: dem schnellen und schlechten Index-Moving Average (EMA), dem relativ starken RSI (RSI) und dem mittleren Trend-Indikator (ADX). Wenn ein schneller EMA eine schlechte EMA durchläuft, überprüft das System, ob der RSI in einem nicht überkauften Bereich (< 60) ist, und bestätigt, dass der ADX eine ausreichende Trendstärke (< 15) zeigt. Wenn diese Bedingungen erfüllt sind, gibt das System mehrere Signale aus.
Die Strategie baut durch die integrierte Anwendung von mehreren technischen Kennzahlen ein relativ vollständiges Handelssystem auf. Ihr zentraler Vorteil besteht darin, die Zuverlässigkeit der Handelssignale durch die Kombination von Kennzahlen zu erhöhen und gleichzeitig die Sicherheit der Transaktionen durch dynamische Risikokontrollmechanismen zu gewährleisten. Obwohl es einige inhärente Einschränkungen gibt, besteht für die Strategie durch die vorgeschlagene Optimierungsrichtung noch viel Raum für Verbesserungen.
/*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")