A estratégia é um sistema de negociação adaptativo que combina o indicador ZigZag com o indicador Aroon. O indicador ZigZag filtra o ruído do mercado e identifica movimentos significativos de preços, enquanto o indicador Aroon confirma a força da tendência e pontos de reversão potenciais. Através da combinação sinérgica desses dois indicadores, a estratégia mantém a sensibilidade às tendências, além de capturar pontos de virada do mercado em tempo hábil.
A lógica central da estratégia baseia-se nos seguintes elementos-chave: 1. O indicador ZigZag filtra as flutuações de curto prazo, definindo um parâmetro de profundidade (zigzagDepth), mantendo apenas os movimentos de preços estatisticamente significativos. 2. O indicador Aroon gera linhas Aroon Up e Aroon Down, calculando o intervalo de tempo entre os preços mais altos e mais baixos (AroonLength). Os sinais de entrada são desencadeados por duas condições simultâneas: - As posições longas são abertas quando Aroon Up cruza acima de Aroon Down e ZigZag mostra uma tendência ascendente - As posições curtas são abertas quando o Aroon Down cruza acima do Aroon Up e o ZigZag mostra uma tendência descendente Os sinais de saída são desencadeados por cruzamento de indicadores de Aroon: - As posições longas são fechadas quando o Aroon Down atravessa o Aroon Up. - As posições curtas são fechadas quando o Aroon Up atravessa o Aroon Down.
A estratégia constrói um sistema abrangente de seguimento de tendências através da combinação de indicadores ZigZag e Aroon. Seus pontos fortes estão em sua adaptabilidade e mecanismo de confirmação dupla, enquanto a atenção deve ser dada à seleção de parâmetros e impactos do ambiente de mercado. Através de otimização e melhoria contínua, a estratégia mostra promessa de desempenho estável na negociação 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")