Esta estrategia es un sistema de negociación adaptativo que combina el indicador ZigZag con el indicador Aroon. El indicador ZigZag filtra el ruido del mercado e identifica movimientos significativos de precios, mientras que el indicador Aroon confirma la fuerza de la tendencia y los puntos de reversión potenciales. A través de la combinación sinérgica de estos dos indicadores, la estrategia mantiene la sensibilidad a las tendencias y también captura los puntos de inflexión del mercado de manera oportuna.
La lógica central de la estrategia se basa en los siguientes elementos clave: El indicador ZigZag filtra las fluctuaciones a corto plazo mediante el establecimiento de un parámetro de profundidad (zigzagDepth), conservando solo movimientos de precios estadísticamente significativos. 2. El indicador Aroon genera Aroon Up y Aroon Down líneas mediante el cálculo del intervalo de tiempo entre los precios más altos y más bajos (AroonLength). Las señales de entrada son activadas por dos condiciones concurrentes: - Las posiciones largas se abren cuando Aroon Up cruza sobre Aroon Down y ZigZag muestra una tendencia al alza - Las posiciones cortas se abren cuando Aroon Down cruza sobre Aroon Up y ZigZag muestra una tendencia a la baja Las señales de salida se activan por cruces de indicadores de Aroon: - Las posiciones largas se cierran cuando Aroon Down cruza sobre Aroon Up. - Las posiciones cortas se cierran cuando Aroon Up cruza sobre Aroon Down.
La estrategia construye un sistema integral de seguimiento de tendencias a través de la combinación de los indicadores ZigZag y Aroon. Sus fortalezas se encuentran en su adaptabilidad y mecanismo de doble confirmación, mientras que se debe prestar atención a la selección de parámetros e impactos del entorno del mercado. A través de la optimización y mejora continuas, la estrategia muestra promesa de un rendimiento estable en la negociación real.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Zig Zag + Aroon Strategy", overlay=true) // Zig Zag parameters zigzagDepth = input(5, title="Zig Zag Depth") // Aroon parameters aroonLength = input(14, title="Aroon Length") // Zig Zag logic var float lastZigZag = na var float lastZigZagHigh = na var float lastZigZagLow = na var int direction = 0 // 1 for up, -1 for down // Calculate Zig Zag if (not na(high) and high >= ta.highest(high, zigzagDepth) and direction != 1) lastZigZag := high lastZigZagHigh := high direction := 1 if (not na(low) and low <= ta.lowest(low, zigzagDepth) and direction != -1) lastZigZag := low lastZigZagLow := low direction := -1 // Aroon calculation highestHigh = ta.highest(high, aroonLength) lowestLow = ta.lowest(low, aroonLength) aroonUp = (aroonLength - (bar_index - ta.highestbars(high, aroonLength))) / aroonLength * 100 aroonDown = (aroonLength - (bar_index - ta.lowestbars(low, aroonLength))) / aroonLength * 100 // Long entry condition longCondition = (ta.crossover(aroonUp, aroonDown)) and (lastZigZag == lastZigZagHigh) if (longCondition) strategy.entry("Long", strategy.long) // Short entry condition shortCondition = (ta.crossover(aroonDown, aroonUp)) and (lastZigZag == lastZigZagLow) if (shortCondition) strategy.entry("Short", strategy.short) // Exit conditions if (ta.crossover(aroonDown, aroonUp) and strategy.position_size > 0) strategy.close("Long") if (ta.crossover(aroonUp, aroonDown) and strategy.position_size < 0) strategy.close("Short") // Plot Zig Zag plot(lastZigZag, color=color.blue, title="Zig Zag", linewidth=2, style=plot.style_stepline) // Plot Aroon hline(70, "Aroon Up Overbought", color=color.red) hline(30, "Aroon Down Oversold", color=color.green) plot(aroonUp, color=color.green, title="Aroon Up") plot(aroonDown, color=color.red, title="Aroon Down")