Esta estrategia es un sistema de seguimiento de tendencias basado en velas Heikin-Ashi suavizadas y cruces de promedio móvil simple (SMA). Identifica los cambios de tendencia a través de la intersección de velas Heikin-Ashi suavizadas por EMA con una SMA de 44 períodos para capturar las principales oportunidades de tendencia en el mercado. La estrategia incorpora un mecanismo dinámico de gestión de posiciones que cierra automáticamente posiciones cuando los precios están demasiado cerca del promedio móvil a largo plazo, evitando los riesgos de oscilación en la consolidación de mercados.
La lógica central consiste en tres elementos clave: primero, convertir las velas tradicionales en velas Heikin-Ashi mediante el cálculo de la media aritmética de los precios abiertos, altos, bajos y cerrados para filtrar el ruido del mercado; segundo, usar una EMA de 6 períodos para suavizar la Heikin-Ashi, mejorando aún más la confiabilidad de la señal; finalmente, combinar el precio de cierre suavizado de Heikin-Ashi con una SMA de 44 períodos, generando señales largas en cruces ascendentes y señales cortas en cruces descendentes.
La estrategia construye un robusto sistema de seguimiento de tendencias mediante la combinación de velas Heikin-Ashi con sistemas SMA. Cuenta con mecanismos integrales de generación de señales y control de riesgos razonable, particularmente adecuado para mercados con características de tendencia distintas. La efectividad práctica de la estrategia se puede mejorar aún más a través de las direcciones de optimización sugeridas. En general, representa una estrategia de seguimiento de tendencias bien diseñada con lógica clara.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Smoothed Heikin Ashi with SMA Strategy", overlay=true) // Input parameters for SMAs s1 = input.int(11, title="Short SMA Period") s2 = input.int(44, title="Long SMA Period") noPositionThreshold = input.float(0.001, title="No Position Threshold", step=0.0001) // Calculate the original Heikin-Ashi values haClose = (open + high + low + close) / 4 var float haOpen = na haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2 haHigh = math.max(high, math.max(haOpen, haClose)) haLow = math.min(low, math.min(haOpen, haClose)) // Smoothing using exponential moving averages smoothLength = input.int(6, title="Smoothing Length") smoothedHaClose = ta.ema(haClose, smoothLength) smoothedHaOpen = ta.ema(haOpen, smoothLength) smoothedHaHigh = ta.ema(haHigh, smoothLength) smoothedHaLow = ta.ema(haLow, smoothLength) // Calculate SMAs smaShort = ta.sma(close, s1) smaLong = ta.sma(close, s2) // Plotting the smoothed Heikin-Ashi values plotcandle(smoothedHaOpen, smoothedHaHigh, smoothedHaLow, smoothedHaClose, color=(smoothedHaClose >= smoothedHaOpen ? color.green : color.red), title="Smoothed Heikin Ashi") plot(smaShort, color=color.blue, title="SMA Short") plot(smaLong, color=color.red, title="SMA Long") // Generate buy/sell signals based on SHA crossing 44 SMA longCondition = ta.crossover(smoothedHaClose, smaLong) shortCondition = ta.crossunder(smoothedHaClose, smaLong) noPositionCondition = math.abs(smoothedHaClose - smaLong) < noPositionThreshold // Strategy logic if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (noPositionCondition and strategy.position_size != 0) strategy.close_all("No Position") // Plot buy/sell signals plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small) plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small) plotshape(series=noPositionCondition and strategy.position_size != 0, location=location.belowbar, color=color.yellow, style=shape.labeldown, text="EXIT", size=size.small)