Estrategia de tendencia basada en rango real promedio optimizado v6 (captura de tendencia fija)

ATR EMA SMMA RSI TSL
Fecha de creación: 2025-03-31 16:50:30 Última modificación: 2025-03-31 16:50:41
Copiar: 0 Número de Visitas: 417
2
Seguir
319
Seguidores

Estrategia de tendencia basada en rango real promedio optimizado v6 (captura de tendencia fija) Estrategia de tendencia basada en rango real promedio optimizado v6 (captura de tendencia fija)

Descripción general

Se trata de una estrategia de seguimiento de tendencias basada en el rango real medio (ATR), diseñada para capturar transacciones de alta probabilidad mediante la combinación de varios indicadores técnicos. La estrategia combina filtros ATR, indicadores de tendencias súper, bandas de tendencia de medias móviles de índices (EMA) y medias móviles simples (SMMA), confirmación de índices relativamente fuertes (RSI) y un sistema de stop loss dinámico para proporcionar un método de negociación completo y flexible.

Principio de estrategia

El principio central de la estrategia se basa en la interacción de múltiples indicadores técnicos:

  1. Identificación de tendencias: utiliza el indicador de tendencias súper (parámetros: factor 2, longitud 5) y las tendencias de 50 días de EMA y 8 días de SMMA para definir la dirección de las tendencias del mercado. Las tendencias están codificadas en color:

    • Verde: Tendencia al alza
    • Rojo: Tendencia a la baja
    • Gris: la etapa de la neutralidad
  2. Filtración inteligente de ATR: detección de expansión de volatilidad a través de un ATR de 14 períodos y un simple promedio móvil de 50 períodos, solo opera cuando el ATR sube o está por encima del 101% de su SMA, asegurando la entrada solo en tendencias fuertes.

  3. Condiciones de entrada:

    • Hacer más entradas: precio por encima de la EMA de 50 días, tendencia súper positiva, RSI > 45, ATR confirma la fuerza de la tendencia
    • Entrada al mercado: precio por debajo de la EMA de 50 días, súper tendencia bajista, RSI < 45, ATR confirma la intensidad de la tendencia
  4. El resultado es un cambio de velocidad.

    • Paralización: paralización adaptativa basada en el ATR de 5 veces
    • Detener el seguimiento de pérdidas: 3.5 veces el ATR
    • Cancelamiento de la garantía: se activa después de que el precio se mueva 2 veces el ATR
    • Detención fija: manejo de riesgo con un multiplicador de ATR de 0.8 veces

Ventajas estratégicas

  1. Filtración eficaz de la volatilidad del mercado para evitar el comercio en zonas de baja volatilidad
  2. Prevenir el exceso de operaciones y evitar la reentrada prematura mediante el bloqueo de bloqueo
  3. Capturar tendencias fuertes y seguir los stop loss permite que los beneficios continúen
  4. Reducción de las retiradas, detención de la base ATR para evitar grandes pérdidas
  5. Los parámetros son ajustables y se pueden ajustar el multiplicador ATR, el stop loss, el stop loss y el filtro RSI para diferentes mercados

Riesgo estratégico

  1. La excesiva dependencia de los indicadores técnicos puede dar lugar a falsas señales
  2. El resultado podría ser negativo en un mercado convulso.
  3. Los parámetros mal configurados pueden aumentar los costos de las transacciones
  4. El RSI confirma que puede haber perdido una rápida tendencia

Dirección de optimización de la estrategia

  1. Introducción de algoritmos de aprendizaje automático y ajuste dinámico de los parámetros
  2. Añadir filtros adicionales, como la confirmación de la entrega
  3. Explorar la combinación óptima de parámetros para diferentes mercados y marcos de tiempo
  4. Desarrollo de un mecanismo de verificación de marcos de tiempo múltiples

Resumir

Es una estrategia avanzada de seguimiento de tendencias que ofrece a los operadores una herramienta de negociación flexible y potente a través de la sinergia de múltiples indicadores y la gestión dinámica del riesgo. La respuesta y optimización continuas son la clave para aplicar esta estrategia con éxito.

Código Fuente de la Estrategia
/*backtest
start: 2024-03-31 00:00:00
end: 2025-03-29 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Optimized ATR-Based Trend Strategy v6 (Fixed Trend Capture)", overlay=true)

// 🔹 Input parameters
lengthSMMA = input(8, title="SMMA Length")
lengthEMA = input(50, title="EMA Length")
supertrendFactor = input(2.0, title="Supertrend Factor")
supertrendLength = input(5, title="Supertrend Length")
atrLength = input(14, title="ATR Length")  
atrSmoothing = input(50, title="ATR Moving Average Length")  
atrMultiplierTP = input.float(5.0, title="ATR Multiplier for Take-Profit", minval=1.0, step=0.5)  
atrMultiplierTSL = input.float(3.5, title="ATR Multiplier for Trailing Stop-Loss", minval=1.0, step=0.5)  // 🔹 Increased to ride trends
atrStopMultiplier = input.float(0.8, title="ATR Stop Multiplier", minval=0.5, step=0.1)  
breakEvenMultiplier = input.float(2.0, title="Break-Even Trigger ATR Multiplier", minval=1.0, step=0.1)
rsiLength = input(14, title="RSI Length")  

// 🔹 Indicator calculations
smma8 = ta.sma(ta.sma(close, lengthSMMA), lengthSMMA)  
ema50 = ta.ema(close, lengthEMA)  

// 🔹 Supertrend Calculation
[superTrend, _] = ta.supertrend(supertrendFactor, supertrendLength)

// 🔹 Supertrend Conditions
isBullishSupertrend = close > superTrend
isBearishSupertrend = close < superTrend

// 🔹 ATR Calculation for Smarter Filtering
atrValue = ta.atr(atrLength)
atrMA = ta.sma(atrValue, atrSmoothing)
atrRising = ta.rising(atrValue, 3)  // 🔹 More sensitive ATR detection
isTrending = atrValue > atrMA * 1.01 or atrRising  // 🔹 Loosened ATR filter

// 🔹 RSI Calculation
rsi = ta.rsi(close, rsiLength)

// 🔹 RSI Conditions (More Flexible)
isRSIBullish = rsi > 45  // 🔹 Lowered to capture early trends
isRSIBearish = rsi < 45  

// 🔹 TP Lock Mechanism
var bool tpHit = false  
if strategy.position_size == 0 and strategy.closedtrades > 0
    tpHit := true  

// 🔹 Supertrend Flip Detection (Resumes Trading After Trend Change)
trendFlip = (isBullishSupertrend and not isBullishSupertrend[1]) or (isBearishSupertrend and not isBearishSupertrend[1])
if trendFlip
    tpHit := false  

// 🔹 Entry Conditions
bullishEntry = close > ema50 and isBullishSupertrend and isRSIBullish and isTrending and not tpHit
bearishEntry = close < ema50 and isBearishSupertrend and isRSIBearish and isTrending and not tpHit

// 🔹 Dynamic Take-Profit, Stop-Loss, and Break-Even Stop
longTakeProfit = close + (atrValue * atrMultiplierTP)  
shortTakeProfit = close - (atrValue * atrMultiplierTP)  
longTrailStop = atrValue * atrMultiplierTSL  
shortTrailStop = atrValue * atrMultiplierTSL  

// ✅ Adjusted SL to Reduce Drawdown
longStopLoss = close - (atrValue * atrMultiplierTSL * atrStopMultiplier)
shortStopLoss = close + (atrValue * atrMultiplierTSL * atrStopMultiplier)

// ✅ Break-Even Stop Trigger (More Room for Trends)
longBreakEven = strategy.position_avg_price + (atrValue * breakEvenMultiplier)
shortBreakEven = strategy.position_avg_price - (atrValue * breakEvenMultiplier)

// 🔹 Strategy Execution (Fixed Take-Profit & Stop-Loss)
if (bullishEntry)
    strategy.entry("Buy", strategy.long)
    strategy.exit("TSL/TP", from_entry="Buy", stop=longStopLoss, trail_offset=longTrailStop, limit=longTakeProfit)
    strategy.exit("BreakEven", from_entry="Buy", stop=longBreakEven)

if (bearishEntry)
    strategy.entry("Sell", strategy.short)
    strategy.exit("TSL/TP", from_entry="Sell", stop=shortStopLoss, trail_offset=shortTrailStop, limit=shortTakeProfit)
    strategy.exit("BreakEven", from_entry="Sell", stop=shortBreakEven)

// 🔹 Trend Band
trendColor = isBullishSupertrend and smma8 > ema50 and close > ema50 ? color.green :
             isBearishSupertrend and smma8 < ema50 and close < ema50 ? color.red : color.gray
fill(plot(smma8, color=color.new(trendColor, 60), title="8 SMMA Band"),
     plot(ema50, color=color.new(trendColor, 60), title="50 EMA Band"),
     color=color.new(trendColor, 80), title="Trend Band")

// 🔹 Supertrend Line
plot(superTrend, color=color.gray, title="Supertrend", style=plot.style_line)