
Die Strategie ist ein Trend-Tracking-System, das mehrere technische Indikatoren kombiniert, um die Richtung des Trends zu bestimmen, die hauptsächlich auf dem Supertrend-Indikator basiert, und die Trendstärke in Verbindung mit der ADX (durchschnittlicher Trendindex) und der Schwankungsbereichsbestimmung des RSI (relativ starker Indikator) zu bestätigen, um die Einstiegszeit zu optimieren. Die Strategie nutzt eine einseitige Mehrfachmodell, um die Genauigkeit und Zuverlässigkeit der Transaktionen durch die Überprüfung mehrerer Indikatoren zu verbessern.
Die Kernlogik der Strategie basiert auf drei wichtigen Komponenten:
Die Teilnahmevoraussetzungen müssen gleichzeitig erfüllt sein:
Die Bedingungen für die Ausgleichszahlung: Wenn die Supertrend-Richtung nach oben wechselt, wird die [[supertrendDirection == 1) ausgegrenzt]].
Die Strategie baut durch die Kombination von mehreren technischen Indikatoren ein relativ gutes Trend-Tracking-Handelssystem auf. Die Kernstärke der Strategie besteht darin, die Zuverlässigkeit der Handelssignale durch die Kreuzprüfung verschiedener Indikatoren zu verbessern, aber gleichzeitig mit den Herausforderungen der Signalrückstands- und Parameteroptimierung zu kämpfen. Durch die vorgeschlagene Optimierungsrichtung wird die Strategie voraussichtlich ihre Anpassungsfähigkeit und Stabilität weiter verbessern, wobei die bestehenden Vorteile beibehalten werden.
/*backtest
start: 2025-02-13 00:00:00
end: 2025-02-20 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Supertrend + ADX Strategy", overlay=true)
// Parameter für ADX und Supertrend
diLength = input.int(14, title="DI Length")
adxSmoothing = input.int(14, title="ADX Smoothing")
adxThreshold = input.float(14)
supertrendFactor = input.float(3.0, title="Supertrend Factor")
supertrendPeriod = input.int(14, title="Supertrend Period")
// Berechnung von +DI, -DI und ADX
[diplus, diminus, adx] = ta.dmi(diLength, adxSmoothing)
// RSI-Berechnung
rsiLength = input.int(14, title="RSI Length")
rsi = ta.rsi(close, rsiLength)
// Supertrend-Berechnung
[supertrendValue, supertrendDirection] = ta.supertrend(supertrendFactor, supertrendPeriod)
// Long-Einstiegsbedingung
longCondition = supertrendDirection == -1 and adx > adxThreshold and (rsi < 40 or rsi > 60)
// Long-Ausstiegsbedingung (wenn Supertrend grün wird)
exitCondition = supertrendDirection == 1
// Visualisierung der Einstiegssignale (Pfeile)
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal")
plotshape(series=exitCondition, location=location.abovebar, color=color.red, style=shape.triangledown, title="Sell Signal")
// Supertrend-Plot im Chart
plot(supertrendValue, color=supertrendDirection == -1 ? color.yellow : color.red, linewidth=2, title="Supertrend Line")
// Alerts für Einstieg/Ausstieg
alertcondition(longCondition, title="Long Signal", message="Supertrend + ADX: Long Entry")
alertcondition(exitCondition, title="Exit Signal", message="Supertrend turned Green: Exit")
// Strategieausführung
if longCondition and supertrendDirection == -1
strategy.entry("Long", strategy.long)
if exitCondition
strategy.close("Long")