
La estrategia es un sistema de seguimiento de tendencias que combina múltiples indicadores técnicos, principalmente para determinar la dirección de la tendencia basándose en el indicador Supertrend, y combina la confirmación de la fuerza de la tendencia con el ADX (índice de tendencia promedio) y la determinación de la franja de fluctuación del RSI (índice de fuerza relativa) para optimizar el momento de entrada. La estrategia adopta un modelo unidireccional de multiplicación para mejorar la precisión y la fiabilidad de las operaciones mediante la verificación cruzada de múltiples indicadores.
La lógica central de la estrategia se basa en los siguientes tres componentes clave:
Las condiciones de entrada deben cumplirse al mismo tiempo:
Condiciones de la posición: Cuando la dirección de la Supertrend se vuelve hacia arriba, la [[supertrendDirection == 1) ejecuta una posición cerrada]].
La estrategia construye un sistema de seguimiento de tendencias relativamente completo a través de la combinación de múltiples indicadores técnicos. La principal ventaja de la estrategia es que mejora la fiabilidad de las señales de negociación mediante la verificación cruzada de diferentes indicadores, pero también enfrenta los desafíos de la latencia de la señal y la optimización de los parámetros. A través de la orientación de optimización propuesta, la estrategia espera mejorar aún más su adaptabilidad y estabilidad sobre la base de mantener las ventajas existentes.
/*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")