Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Indicadores

ZigZag Profissional - indicador para MetaTrader 5

Visualizações:
9633
Avaliação:
(47)
Publicado:
2014.01.15 08:29
Atualizado:
2016.11.22 07:33
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]

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]


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]

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

  1. 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.
  2. 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]

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

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)
A versão ProExtra não foi publicada, pois a exatidão das cotações do MetaTrader 5 não foram verificadas.


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 parâmetros de entrada [7;0;0].)

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

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 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) 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) 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 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.