Início Indicador técnico Postagem

ZigZag Profissional: O Indicador Essencial para MetaTrader 5

Anexo
263.zip (5.64 KB, Baixar 0 vezes)

Atenção! Esta versão do indicador ZigZag é baseada no código ZigZag, publicada aqui com a permissão do autor, PPC. Testei essa versão e corrigi um erro no algoritmo.

Este código é a versão MQL5 do indicador ZigZag para MetaTrader 4.

Atenção! A biblioteca AlexSTAL_OutsideBar.mqh deve estar localizada em  ..\MQL5\Include\ pasta do terminal cliente MetaTrader 5.

É só isso?

Eu vejo o ZigZag como uma forma de "comprimir" o gráfico de preços. O ZigZag pode ser calculado usando o preço de fechamento da barra ou os preços máximos/mínimos (o método mais comum).

Enquanto trabalhava com o ZigZag padrão, oferecido pela MetaQuotes, encontrei alguns problemas. O principal deles é que o ZigZag padrão não considera a ocorrência de barras externas.

Em 2007, Rashid Umarov (Rosh) publicou o código Zigzag2 R com o processamento de barras externas (estilo DRAW_ZIGZAG em vez de DRAW_SECTION).

Vamos definir as características da implementação "correta" do ZigZag:

  • Os altos e baixos devem ser estritamente alternados;
  • O alto deve ser maior (ou igual) entre todas as barras à direita até o próximo baixo (oposto);
  • O baixo deve ser menor (ou igual) entre todas as barras à esquerda até o próximo alto (oposto).

Vamos considerar um exemplo (EURUSD, H1, 2006, de 8 a 13 de dezembro). Aqui temos dois casos com a barra externa. O ZigZag típico não consegue construir a "imagem correta".

Figura 1. ZigZag típico com parâmetros de entrada [12;5;3] e [12;0;0]

Figura 1. ZigZag típico com parâmetros de entrada [12;5;3] e [12;0;0]

Figura 2. Zigzag2 R com parâmetros de entrada [12;5;3]

Figura 2. Zigzag2 R com parâmetros de entrada [12;5;3]


Figura 3. Zigzag2 R com parâmetros de entrada [12;0;0]

Figura 3. Zigzag2 R com parâmetros de entrada [12;0;0]

À primeira vista, a construção correta é apresentada na Figura 3, mas aqui estão algumas características:

  1. Neste caso, foi construída corretamente devido aos parâmetros de entrada, mas, em geral, o algoritmo deve funcionar com quaisquer parâmetros.
  2. A barra externa do lado esquerdo não está correta, por causa da ordem de formação de altos/baixos da barra:


Os segmentos do ZigZag devem ser construídos dessa forma.

Testei muitos casos dos seguintes algoritmos ZigZag: ZigZag MT3, ZigZag, Zigzag R, Zigzag2 R, ZigZag_NK, ZigZag_ZUP89_nen, ZigZag_new_nen4, CZigZag, Swing_ZZ_1, DT_ZZ_nen, ZigZag_Talex, Reverse_ZZ, Points_ZZ_1, i_MF_Fractal_ZZ_3in1, ang_Amp_ZZ, ZigzagFr_v1, NonLagZigZag_v2, ZZ_FF_v3, ZigZag Ensign, ZigZag tauber, SQZZ Товаровед, ZZ_2L_nen wellx, Channel ZZ, Azzx_larryzz_3_0, RPoint, RPoint-m v2, ZigZagTF. Mas nenhum deles resolveu o problema corretamente.


Aqui estão as figuras com este indicador:

Figura 4. ZigZag Profissional com parâmetros de entrada [12;0]

Figura 4. ZigZag Profissional com parâmetros de entrada [12;0]

Figura 5. ZigZag Profissional com parâmetros de entrada [23;0]

Figura 5. ZigZag Profissional com parâmetros de entrada [23;0]


Algumas características desta versão:

  • Algoritmo de uma única passagem
  • Recalcula e redesenha apenas o último segmento (o segmento não pode ser cancelado, exceto na atualização do histórico)
  • Possui um algoritmo de otimização para os cálculos dentro da barra (não utiliza o recálculo no tick, se o preço mudou dentro da barra 0 (não completada) ou se a mudança de preço for menor que o limite definido pelo parâmetro de entrada MinMotion)
  • Possui dois algoritmos para ordenação da formação de altos/baixos: usando o tipo de barra (rápido, mas não preciso) e usando dados de um período inferior (precisa do histórico, você precisa verificar sua presença e correção ou modificar a biblioteca OutsideBar)
A versão ProExtra não é publicada, pois a correção das cotações do MetaTrader 5 não foi verificada.


Aqui estão alguns exemplos adicionais de construções incorretas do ZigZag:

Figura 6. EURUSD, H1, 29 de Novembro - 7 de Dezembro. (Linha vermelha: ZigZag com parâmetros de entrada [7;0;0]. Linha azul: Zigzag2 R com parâmetros de entrada [7;0;0].)

Figura 6. EURUSD, H1, 29 de Novembro - 7 de Dezembro. (Linha vermelha: ZigZag com parâmetros de entrada [7;0;0]. Linha azul: Zigzag2 R com parâmetros de entrada [7;0;0].)

Figura 7. EURUSD, H1, 2010, 29 de Novembro - 7 de Dezembro. A construção correta dos segmentos do ZigZag.

Figura 7. EURUSD, H1, 2010, 29 de Novembro - 7 de Dezembro. A construção correta dos segmentos do ZigZag.


Conclusão

Infelizmente, esta versão não é perfeita, mas estou trabalhando nela.

Devido ao algoritmo de canal (iHighest/iLowest), às vezes ela ignora os altos.

Por favor, me informe sobre erros e características deste indicador.

Publicações relacionadas

Comentário (0)