Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 10332
- Avaliação:
- Publicado:
- Atualizado:
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Atenção! Esta versão do indicador ZigZag se baseia no código ZigZag, e foi publicado aqui com a permissão de seu autor, PPC. Eu testei esta versão e corrigi um erro do algoritmo.
Este código é a versão em MQL5 do indicador Zigzag para o MetaTrader 4.
Atenção! A biblioteca AlexSTAL_OutsideBar.mqh deve estar localizada na pasta ..\MQL5\Include\ do cliente terminal MetaTrader 5.
É só isso?
Eu acho que o ZigZag é algo como uma compressão do gráfico de preço. O ZigZag pode ser calculado usando o preço da barra (por exemplo, Fechamento do preço) ou máxima/mínima dos preços da barra (o método mais comum usado).
Ao trabalhar com o ZigZag padrão, proposto pela MetaQuotes, eu encontrei alguns erros. O problema principal é que o ZigZag padrão não procede os casos de uma barra fora.
Em 2007 Rashid Umarov (Rosh) publicou o código Zigzag2 R com processamento de barras para fora (estilo DRAW_ZIGZAG em vez de DRAW_SECTION).
Vamos definir as características da implementação "correta" do ZigZag:
- As máximas e mínimas devem ser rigorosamente alternadas;
- A máxima deve ser maior (ou igual) que a quantidade de todas as barras do lado direito até a próxima mínima (oposto);
- A mínima deve ser menor (ou igual) que a quantidade de todas as barras do lado esquerdo até a próxima máxima (oposto).
Vamos considerar o uso do exemplo (EURUSD, H1, 2006, Dezembro 8-13). Aqui temos dois casos de barra para fora. O ZigZag típico não consegue construir a imagem "correta".
![Figura 1. ZigZag típico com os parâmetros de entrada [12;5;3] e [12;0;0] Figura 1. ZigZag típico com os parâmetros de entrada [12;5;3] e [12;0;0]](https://c.mql5.com/18/29/zz_011.png)
Figura 1. ZigZag típico com os parâmetros de entrada [12;5;3] e [12;0;0]
![Figura 2. Zigzag2 R com os parâmetros de entrada [12;5;3] Figura 2. Zigzag2 R com os parâmetros de entrada [12;5;3]](https://c.mql5.com/18/29/zz_031.png)
Figura 2. Zigzag2 R com os parâmetros de entrada [12;5;3]
![Figura 3. Zigzag2 R com os parâmetros de entrada [12;0;0] Figura 3. Zigzag2 R com os parâmetros de entrada [12;0;0]](https://c.mql5.com/18/29/zz_021.png)
Figura 3. Zigzag2 R com os parâmetros de entrada [12;0;0]
A primeira vista, a construção correta é apresentada na Figura 3, mas aqui vão algumas características:
- Neste caso tem-se uma construção correta por causa dos parâmetros de entrada, mas, geralmente, o algoritmo deve trabalhar com quaisquer parâmetros.
- A barra do lado de fora do lado esquerdo não está correta, devido a ordem de formação da barra máxima/mínima:

Os segmentos de ZigZag devem ser construídos da seguinte maneira.
Eu testei muitos casos dos seguintes algoritmos de 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 encontramos as figuras com este indicador:
![Figura 4. ZigZag Profissional com os parâmetros de entrada [12;0] Figura 4. ZigZag Profissional com os parâmetros de entrada [12;0]](https://c.mql5.com/18/29/zz_051.png)
Figura 4. ZigZag Profissional com os parâmetros de entrada [12;0]
![Figura 5. ZigZag Profissional com os parâmetros de entrada [23;0] Figura 5. ZigZag Profissional com os parâmetros de entrada [23;0]](https://c.mql5.com/18/29/zz_061.png)
Figura 5. ZigZag Profissional com os parâmetros de entrada [23;0]
Algumas características desta versão:
- algoritmo de uma passagem
- ele recalcula e redesenha apenas o último segmento (o segmento não pode ser cancelado, exceto se houver atualizações no histórico)
- ele tem o algoritmo de otimização para os cálculos dentro da barra (ele não usa o recálculo sobre o tick, se o preço mudou dentro da barra 0 (incompleto) a mudança é menor do que a limiar definida pelo parâmetro de entrada MinMotion)
- Ele posusi dois algoritmos para ordenar a formação de máximas/mínimas: usando o tipo da barra (rápido, mas não é preciso), usando os dados de um tempo gráfico menor (ele precisa do histórico, você precisa verificar a presença e a exatidão ou é necessário modificar a biblioteca OutsideBar)
Aqui estão alguns exemplos adicionais de construções incorretas do ZigZag:
![Figura 6. EURUSD, H1, 29 Novembro - 7 Dezembro. (Linha vermelha: ZigZag com os parâmetros de entrada [7;0;0]. Linha azul: Zigzag2 R com os parâmetros de entrada [7;0;0].) Figura 6. EURUSD, H1, 29 Novembro - 7 Dezembro. (Linha vermelha: ZigZag com os parâmetros de entrada [7;0;0]. Linha azul: Zigzag2 R com os parâmetros de entrada [7;0;0].)](https://c.mql5.com/18/29/zz_071.png)
Figura 6. EURUSD, H1, 29 Novembro - 7 Dezembro. (Linha vermelha: ZigZag com os 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 Novembro - 7 Dezembro. Construção correta dos segmentos de ZigZag.
Conclusão
Infelizmente esta versão não é perfeita, mas eu estou trabalhando nisso.
Devido ao algoritmo de canal (iHighest / iLowest), às vezes ele pula as máximas.
Favor me informar sobre os erros e as características deste indicador.
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/263
sChartsSynchroScroll_v2
Nova versão do sript sChartsSynchroScroll.
Assistente MQL5 - Sinais de Negociação baseados no Padrões Candles de Reversão (Barras de preço)
Sinais de negociação são considerados com base em padrões candles de reversão. O código do Expert Advisor baseado nesta estratégia pode ser gerado automaticamente usando o Assistente MQL5.
Assistente MQL5 - Sinais de Negociação Baseados no Cruzamento das Linhas do Indicador Jacaré (Alligator)
Os Sinais de Negociação são considerados com base no cruzamento das linhas do indicador técnico Jacaré (Alligator), classe CSignalAlligator da Biblioteca Padrão MQL5. O código do Expert Advisor baseado nesta estratégia pode ser gerado automaticamente usando o Assistente MQL5.
Assistente MQL5 - Sinais de Negociação Baseados no cruzamento da linha Principal e das linhas de Sinais do indicador MACD
Os Sinais de Negociação Baseados no cruzamento da linha Principal e das linhas de Sinais do indicador MACD (CSignalMACD da Biblioteca Padrão MQL5) serão utilizados aqui. O código do Expert Advisor com base nesta estratégia pode ser gerado automaticamente usando o Assistente MQL5.