Início Indicador técnico Postagem

MultiZigZag: Uma Nova Abordagem do Indicador ZigZag

Anexo
8536.zip (4.52 KB, Baixar 0 vezes)

O MultiZigZag é uma versão aprimorada do famoso indicador ZigZag, que foi desenvolvido entre 2005 e 2006 e está disponível no MetaTrader 4. Este algoritmo é amplamente utilizado em muitos indicadores personalizados e foi inicialmente traduzido para MQL4 por um desenvolvedor chamado Rosh. Agradecemos a ele por isso! Se alguém souber quem foi o criador original do algoritmo, por favor, deixe o nome ou apelido nos comentários. Também estou curioso para saber em qual linguagem foi escrito e em qual plataforma de negociação foi utilizado.

Vamos falar sobre as principais desvantagens da versão original do ZigZag:

  • Alta carga no processador: O ZigZag original recalculava tudo a cada tick, o que fazia com que PCs menos potentes travassem durante movimentos intensos no mercado.
  • Desenho impreciso: Muitas vezes, as quebras do ZigZag pareciam "flutuar" sem uma ligação clara aos máximos e mínimos das barras, quando na verdade o ZigZag deveria mostrar exatamente esses pontos no gráfico.
  • Problemas ao retroceder no histórico: O ZigZag original tinha dificuldades ao tentar voltar no histórico, desenhando sem uma ligação visual ao gráfico.

A boa notícia é que esta nova versão do ZigZag resolveu todas essas desvantagens. Agora, apenas os últimos três segmentos do ZigZag são recalculados, e isso acontece somente quando os preços ultrapassam a parte calculada da barra zero. Em outras palavras, isso ocorre quando o mínimo ou o máximo da barra zero é zerado, quando uma nova barra aparece ou durante o upload do histórico.

Cada um dos três ZigZags utiliza dois buffers: um para os máximos e outro para os mínimos. Isso possibilita a exibição de máximos e mínimos em uma única barra. Existem dois buffers livres que podem ser utilizados para adicionar um quarto segmento de código, o que pode ser uma ótima oportunidade de aprendizado para quem está iniciando na programação MQL4. Ou, se preferir, os buffers vazios podem ser usados para outras finalidades, caso o ZigZag seja integrado em sistemas desenvolvidos.

A cálculo e o desenho dos ZigZags de períodos maiores são feitos sem utilizar a função icustom(). Para fins de automação, podemos descartar os buffers do indicador. Isso permite calcular os ZigZags para todos os períodos simultaneamente e também para qualquer número de símbolos, desde que haja memória RAM suficiente. Essa abordagem permite, por exemplo, a busca de padrões (como o Gartley e outros) não apenas nos períodos atuais, mas em qualquer período escolhido e em múltiplos períodos ao mesmo tempo.

Parâmetros do MultiZigZag

A maioria dos parâmetros externos são variáveis do tipo string. Os parâmetros, separados por vírgulas, são escritos em cada variável string para cada ZigZag. O primeiro dígito refere-se ao primeiro ZigZag, o segundo ao segundo e o terceiro ao terceiro, todos separados por vírgulas. Os parâmetros ExtDepth, ExtDeviation e ExtBackstep são os parâmetros padrão do ZigZag. Se você definir ExtDepth=0, o ZigZag correspondente não será exibido.

ExtMaxBar - o número de barras que o ZigZag será calculado. GrossPeriod - os períodos dos gráficos em minutos dos quais os dados serão extraídos para o cálculo do ZigZag. Se você especificar 0, o ZigZag será calculado no período atual.

Você pode especificar os seguintes valores: 0-1-5-15-30-60-240-1440-10080-43200.

ExtReCalculate - o número de extremidades do ZigZag que serão recalculadas em tempo real, começando de 0. Isso é utilizado para ZigZags de períodos maiores. É recomendado não alterar este parâmetro.

Os ZigZags são exibidos de H1-H4-D1 por padrão. Eles serão exibidos a partir do gráfico de 1 minuto até o gráfico diário. Apenas um ZigZag, que é desenhado com dados do período D1, será exibido no gráfico diário. Apenas os ZigZags baseados em períodos maiores ou no período atual são desenhados.

No exemplo da imagem: o ZigZag de H1 é desenhado na cor Aqua, o de H4 em Vermelho e o de D1 em Amarelo.

Publicações relacionadas

Comentário (0)