English Русский 中文 Español Deutsch 日本語
ZUP - ZigZag universal com padrões Pesavento. Parte 1

ZUP - ZigZag universal com padrões Pesavento. Parte 1

MetaTrader 4Exemplos | 22 fevereiro 2016, 08:17
1 897 0
Eugeni Neumoin
Eugeni Neumoin

Introdução

Todos os que levam a sério o trabalho - nos mercados financeiros - começam a criar seus próprios sistemas de negociação. Graças aos resultados de seu sistema de negociação, o autor do presente artigo conseguiu criar o ZigZag universal com padrões Pesavento (ZUP). Quanto a mim, recebi um convite da MetaQuotes Software para escrever um artigo sobre este indicador. Eis aqui que vou tentar fazê-lo. Neste e nos artigos sucessivos, vou descrever as possibilidades do indicador ZUP, versão 60 (ZUP_v60). Acontecia que os Centros Mercantis - através dos quais o autor tinha acesso aos mercados financeiros - utilizavam a plataforma MetaTrader 4. Os indicadores padrão incluídos no terminal não permitiam analisar o mercado com a eficiência necessária. O autor preferia se contentar com o lugar onde morava, ao invés de tentar a sorte noutro. Foi por isso que eu tive de fazer o possível para realizar a análise de mercado necessária utilizando o terminal de cliente MetaTrader 4. Felizmente, agora o terminal permite a criação de seus próprios indicadores através da linguagem incorporada MQL4.

Durante o ano passado, desde o início do desenvolvimento do indicador, apareceram muitas ideias interessantes. Muitas delas são agora implementadas. O fato de que o indicador tivesse um código aberto e fosse acessado gratuitamente contribuiu para o fluxo de informações e ideias. Desenvolver um indicador não comercial é aqui uma decisão fundamental. Como mostra a prática, o desenvolvimento de um indicador não comercial é uma solução ideal.


Considerações teóricas

Após uma pequena pesquisa, decidi combinar - num indicador universal - ZigZags com diferentes algoritmos de construção automatizada de padrões Pesavento e níveis Fibo a partir das quebras do ZigZag. Além disso, entendi que era possível automatizar não só os padrões Pesavento e níveis Fibo, mas também o desenho de diferentes ferramentas gráficas. Organizei também a busca de ideias do que poderia ser implementado num indicador universal. Me deparei com o problema de revelar todo o potencial incorporado no ZigZag. Como resultado, consegui implementar o desenho automatizado de todas ferramentas gráficas mais conhecidas. Algumas delas, além de serem novas, foram implementadas, graças às propostas de vários visitantes do fórum da ONIX. A lógica de funcionamento dos indicadores é simples:

  1. Colocamos cotações do símbolo selecionado na entrada dos indicadores;
  2. Encontramos os máximos e mínimos do mercado no gráfico utilizando vários ZigZags;
  3. Ancoramos várias ferramentas gráficas nos máximos e mínimos encontrados.

O trabalho a seguir com as construções gráficas obtidas pressupõe conhecimento da lógica de trabalho com a ferramenta gráfica selecionada. Neste artigo, serão descritos ZigZags incorporados no ZUP. Além disso, serão mencionadas algumas ferramentas gráficas incorporadas no ZUP. Elas serão descritas com mais detalhes no segundo artigo dedicado ao uso de ferramentas gráficas incorporadas. Vou tentar dar todas as referências às fontes onde se descreve o trabalho com as ferramentas gráficas incorporadas no indicador. Eu acredito que é necessário estudar essas referências para compreender as ideias subjacentes às ferramentas gráficas.


Li recentemente o livro referenciado como [1]. Seu subtítulo era "Secrets of Golden Section". O livro fala sobre como a proporção áurea aparece em todos os fenômenos naturais. Logo após, li outro referenciado como [2]. Estas duas fontes me ajudaram a entender em que direção o indicador se desenvolve. Anteriormente, o desenvolvimento era um pouco caótico. Abaixo estão algumas citações do trabalho do Yu.N. Sokolov:

« Será que o universo tem fundamentos, e se assim for, o que é? Já demos uma resposta bastante clara a esta questão em nossa teoria geral do ciclo que está sendo desenvolvida desde 1981. Sim, o universo tem fundamentos e tratam-se de uma estrutura universal de interação. O mundo é, essencialmente, nada mais que a interação de objetos materiais, e qualquer uma delas é construída de acordo com um padrão peculiar. Este padrão é organizado de forma cíclica, ou seja, o tempo - nele - move-se num círculo, enquanto as alterações de quaisquer parâmetros são descritas na forma de curva de onda. Chamamos esse padrão de interação quântica [...] O estudo da estrutura da interação quântica nos levou à conclusão de que todo o universo é descrito por uma única lei, isto é, pela lei da estrutura cíclica do tempo-espaço da interação quântica [...] »[2, p. 7].

Na interação, estão envolvidas duas forças.

A proporção áurea é uma interação quântica constante [...] Surge a questão quanto ao limite para o aumento de uma força e diminuição da outra. Este limite deve existir, e é baseado no seguinte raciocínio. Imaginemos que tal limite não existe. Assim, podemos aumentar uma força e diminuir a outra para zero. Após isso, descobrimos que resta apenas uma única força, o que é equivalente ao desaparecimento de interação. Isto, naturalmente, não pode ser. portanto, o limite para o aumento da força e a diminuição da outra existem em verdade. O problema no que diz respeito ao limite da alteração das forças pode, na nossa opinião, ser resolvido através da proporção áurea. Nos últimos anos, na ciência russa, tem havido um revival das experiências quanto ao papel da proporção áurea em diferentes campos da ciência e tecnologia. Os cientistas têm mostrado convincentemente que a proporção áurea serve como uma constante universal. No entanto, a natureza da proporção áurea ainda permanece desconhecida. Pensamos que esta natureza só pode ser estudada no âmbito da teoria geral do ciclo (TGC) [...] ». [2, p. 29].


« Como aplicar as disposições fundamentais da TGC na investigação científica. A natureza flutuante da interação é determinada por um "jogo" ou interação de duas forças opostas e inter-relacionadas. É este "jogo" que determina a estrutura do ciclo. Portanto, para aplicar a teoria geral do ciclo, é necessário começar com a coisa mais importante, isto é, com a detecção de duas forças opostas. Ao investigar diferentes sistemas, teremos diferentes nomes para estas forças. Se considerarmos a interação na natureza inorgânica, estas forças serão de ação e reação [...] A clara detecção destas forças em cada estudo é a coisa mais importante e decisiva para uma análise mais aprofundada. Após a detecção de duas tendências opostas, é necessário definir os dois pólos opostos e inter-relacionados do ciclo. Cada pólo é composto pelo valor máximo da força positiva e o valor mínimo da força negativa. O segundo pólo é oposto ao primeiro e é constituído a partir do valor mínimo da força positiva e do valor máximo da força negativa. Tal como mostrado na nossa apresentação, quer dizer, entre estes dois pólos e realizado o processo de flutuação.


A próxima etapa consiste em encontrar um parâmetro que detecte a massa inercial e a velocidade do processo de variação das duas forças opostas. A velocidade do processo é rastreada ao longo do tempo de interesse, enquanto o diagrama de sequência é construído segundo o procedimento descrito acima. De acordo com o diagrama de sequência é determinado comprimento de onda, a amplitude e oscilação do tamanho do "corredor" flutuante. Se for necessário, a interferência de ciclos vizinhos em relação ao ciclo dado [...] »
[02, p. 46]


Eu não vou dar os números e fórmulas do trabalho [3] aqui. Eles são bastante interessantes. Caso quiser, você pode familiarizar-se com este trabalho por conta própria.


Não é muito difícil de detectar as duas forças opostas - touros e ursos - nos mercados financeiros. Para identificar os pólos do ciclo (extremos) nos mercados financeiros, usa-se o ZigZag no indicador ZUP. Existem muitos algoritmos para desenhar um indicador ZigZag. No ZUP são incorporados Indicadores ZigZag com diferentes algoritmos. É muito importante encontrar os extremos tanto para tempo quando para preço, uma vez que os extremos devem ser colocados precisamente no máximo ou mínimo da barra de preço apropriada. Isto é necessário a fim de prever corretamento o desenvolvimento do ciclo. Várias ferramentas gráficas são usadas para pesquisar interações entre os pólos do ciclo. Como a proporção áurea aparece em todos os fenômenos naturais, no ZUP também são enfatizadas diferentes ferramentas Fibo. As ferramentas gráficas são ancoradas aos extremos do mercado encontrados utilizando o ZigZag.


As ferramentas gráficas incorporadas no ZUP podem ser estáticas e dinâmicas. As estáticas são ancoradas às quebras já formadas do ZigZag, isto é, são vinculadas às quebras que não mudarão mais. As dinâmicas têm o ponto de ancoragem localizado no fim variável do primeiro raio do ZigZag. As ferramentas gráficas dinâmicas permitem tomar rapidamente uma decisão. Se o mercado se desenvolver, o traçado da ferramenta gráfica ajudará a ver a nova tendência pretendida do mercado. Se for alterado o primeiro raio do ZigZag, a ferramenta gráfica dinâmica será reajustada automaticamente.


Descrição dos indicadores ZigZags incorporados no ZUP

O ZUP possui muitos parâmetros diferentes. O parâmetro principal é o ExtIndicator. Ele seleciona o ZigZag que ajudará a encontrar os extremos do mercado. O número do ExtIndicator é definido por vez à medida que vai sendo incorporado um ZigZag ou ZUP novos. Só quero dizer que qualquer que seja o ZigZag usado, ele não é recalculado em cada tick. O recálculo ocorre:

  1. se o preço sair da barra do zero (se o mercado ficar acima do High e abaixo do Low da barra do zero, ou caso surgir uma nova barra do zero);
  2. se acontecer a paginação do histórico anterior;
  3. se o terminal for inicializado durante a paginação do histórico que apareceu enquanto o terminal estava desligado.

O estilo de exibição de todos os indicadores ZigZag é configurado mediante o parâmetro ExtStyleZZ:

  1. ExtStyleZZ = true - define o estilo das linhas do ZigZag usando a guia CORES (menu Gráficos->Indicadores->ZUP_v60->Propriedades->Cores);
  2. ExtStyleZZ = false - o ZigZag é mostrado como pontos nos máximos e mínimos.

Primeiro ZigZag
O parâmetro ExtIndicator = 0 permite trabalhar com o ZigZag padrão fornecido no terminal de cliente MetaTrader 4 antes do verão de 2006. Este ZigZag foi ligeiramente modificado. As ideias para levar a cabo a modificação foram retiradas do artigo publicado por Nikolay Kositsin: Recontagem de barras do zero em alguns indicadores. Também foram utilizadas minhas próprias estratégias. Parâmetros para configurar este ZigZag:

  1. minBars corresponde ao ExtDepth no ZigZag fornecido com o MetaTrader 4;
  2. ExtDeviation corresponde ao ExtDeviation;
  3. ExtBackstep corresponde ao ExtBackstep.

Segundo ZigZag
O parâmetro ExtIndicator = 1 permite trabalhar com o ZigZag do Alex (Automatic Channel).
Algoritmo
É calculado o valor médio da primeira barra. Em seguida, é calculado o preço médio condicional da barra. É determinada a direção da tendência, na próxima barra, de acordo com o deslocamento do preço médio condicional da barra. Se o preço médio condicional se desviar num determinado valor - em pontos do minSize ou em porcentagem do minPercent - a tendência será alterada.
Parâmetros

  1. minSize - filtro no número de pontos, define a quantidade de pontos;
  2. minPercent - filtro de porcentagem, define a porcentagem, por exemplo, 0,5.

Se forem usadas porcentagens, você deverá configurar o valor desejado, além de ter em conta que minSize = 0.

Terceiro ZigZag

O parâmetro ExtIndicator = 2 permite trabalhar com o ZigZag Ensign. O ZigZag Ensign é um nome condicional. Esta versão do ZigZag foi desenvolvida após observar o funcionamento do indicador subjacente dos padrões Pesavento construídos no Ensign. No site da Ensign Software, havia uma breve descrição dos princípios de construção destes indicadores. Talvez, o algoritmo do indicador realizado no Ensign pode ser ligeiramente diferente do realizado no ZUP.
Algoritmo.
Os mínimos e máximos da primeira barras são comparados com os mínimos e máximos das seguintes barras. Se for encontrada uma barra cujo mínimo e máximo forem superiores/inferiores aos da primeira barra, a direção da tendência será determinada. Se o mínimo e o máximo forem superiores aos da primeira barra, a tendência será de alta. Se o mínimo e o máximo forem inferiores aos da primeira barra, a tendência será de baixa. Em seguida, será descrito o algoritmo para a tendência de alta. Para a tendência de baixa, será o oposto. Já identificamos que a tendência é de alta. Agora, lembramo-nos do valor do máximo da barra na variável hlast. Se, na próxima barra, o máximo estiver acima da barra anterior, na próxima barra continuará a tendência de alta. Lembramo-nos do novo valor do máximo da barra hlast. Se os máximos estiverem iguais, julgaremos que a tendência não foi alterada. A tendência continua sendo de alta. Se, na próxima barra, o máximo da barra estiver abaixo do máximo anterior (hlast), aparecerão as seguintes alternativas:

  1. As barras do minBars são ignoradas. Ao acontecer isto, em todas estas barras do minBars, o máximo deve ser inferior ao da última barra (hlast) a partir da qual começou a contagem das barras do minBars. Se, pelo menos, numa barra, o preço exceder o máximo (hlast) da última barra, a tendência será considerada de alta incluindo esta barra. As barras do minBars são calculadas a partir da próxima barra. Em seguida, são analisadas as barras a partir de minBars + 1 barra. Se hlast - Low[minBars + 1] > minSize, a tendência torna-se de baixa. Ou seja, se o mínimo de "minBars + 1" ou de qualquer barra seguinte desvia-se da hlast num valor superior ao minSize, a tendência muda de tendência e torna-se de baixa. Neste caso, a barra do minBars + 1 é considerada a partir do último máximo (hlast) em direção à barra do zero.
  2. Se qualquer uma das barras do minBars for fechada abaixo do último mínimo, a tendência também será de baixa, sem esperar minBars + 1 barra. As alterações de tendência e traçado do novo raio do indicador ZigZag acontece após o fechamento da barra na qual a tendência vira.

Parâmetros:
minBars, minSize – nomes iguais aos que se encontram no programa Ensign.

O ZigZag do Alex e o ZigZag Ensign não têm desvantagens em relação ao ZigZag padrão, uma vez que o processador não é sobrecarregado, é calculada apenas a última barra, não ocorrem máximos sucessivos e os últimos mínimos e máximos são previsíveis. Além disso, o último máximo só pode aumentar, enquanto o último mínimo só pode diminuir. Eles são indicadores de tendência. Por outro lado, para o ZigZag do Alex e o ZigZag Ensign em diferentes timeframes, é necessário escolher parâmetros. A seleção de parâmetros é necessária para encontrar a estrutura adequada das ondas em diferentes timeframes. Para o indicador ZigZag, se o parâmetro ExtIndicator = 0, podem ser utilizados os mesmos parâmetros, em timeframes diferentes.

Quarto ZigZag

O parâmetro ExtIndicator = 3 permite trabalhar com o ZigZag Ensign com um algoritmo ligeiramente modificado. Para esta variante, apenas deve ser especificado o valor do minBars. O valor do minSize definido na janela de parâmetros do indicador será ignorado. O valor variável do minSize é igual ao tamanho (do mínimo ao máximo) da barra, em que termina o último raio do indicador ZigZag. Ao desenhar novamente o último raio do indicador ZigZag, é calculado o novo valor do minSize.

Quinto ZigZag

O parâmetro ExtIndicator = 4 permite trabalhar com o ZigZag de Tauber. Tauber é um usuário do fórum ONIX. Deixe-me dar-lhe uma descrição, gentilmente fornecida pelo autor:

"Usei o MetaTrader como base (ZigZag fornecido com o MetaTrader 4). O algoritmo é recursivo, curto e logicamente claro:

  1. Procura-se o máximo global entre todas as barras.
  2. Dividem-se as barras restantes em duas partes à direita e à esquerda da barra máxima.
  3. Procura-se o mínimo global em ambas as partes.
  4. Divide-se cada metade novamente em duas partes, e assim por diante.

Ao fazer isto, o processo é controlado da mesma maneira que no ZigZag, mas apenas por um parâmetro, isto é, usando a porcentagem ou a diferença em pips."

Mais duas citações:

"O algoritmo é recursivo, quer dizer, a função que localiza o máximo chama por si só a função que encontra o mínimo, e vice-versa, é dessa maneira que o gráfico é dividido em fractais cada vez menores. O processo é interrompido quando a diferença de preços entre máximos/mínimos sucessivos e o máximo/mínimo adjacente torna-se inferior ao minSize. A principal diferença é que o resultado depende de um único parâmetro minSize, o que é precisamente a definição clássica do ZigZag e fornece uma constatação precisa de todos os picos importantes."

Sexto ZigZag

O parâmetro ExtIndicator = 5 permite trabalhar com o ZigZag que simula o Swing de Gann. Ele é um indicador de tendência.
Algoritmo
Uma descrição detalhada de como construir Swings de Gann é fornecida em [4]. Alguns indicadores conhecidos para construir Swings de Gann foram criados de acordo com o algoritmo descrito neste livro. A descrição é muito detalhada. Até podemos dizer que é um pouco tediosa por assim. No entanto, surgem muitas perguntas quando você tenta descrever o indicador. Existem algumas combinações de velas que são difíceis de analisar. Aparecerão diferentes interpretações da situação que estiver acontecendo. Esta é, talvez, a razão pela qual as realizações conhecidas de Swings de Gann em indicadores possuem alguns desvios do algoritmo descrito no livro.

No nosso caso, há dois desvios. Ambas as diferenças referem-se ao processamento da barra externa. A barra externa é uma barra que possui um High alto e um Low baixo em relação à anterior. Na descrição, afirma-se que na barra exterior, devem ser construídos o Máximo e o Mínimo. No indicador ZUP, agora é impossível trabalhar com o indicador ZigZag cujos máximo e mínimo estão na mesma barra. Além disso, a descrição implica que o máximo e o mínimo devem alternar-se numa determinada sequência. A barra externa extrema que é a mais próxima da abertura da vela deve ir primeiro. Isto pode ser realizado em tempo real. Mas, no histórico, começa a ter lugar uma "interpretação aberta". Então, os swings construídos em tempo real podem ser diferentes daqueles construídos no mesmo período após um certo tempo de acordo com o histórico de dados. Ou seja, onde, em tempo real, havia um máximo, ao construir swings em dados históricos, podemos obter o mínimo. Para evitar qualquer ambiguidade, a tendência vai continuar o movimento que prevaleceu antes da vinda da barra externa. No entanto, uma vez que a tendência - segundo a descrição - deve mudar na barra externa, para as tendências intermediárias, principais e as de ordem superior, vamos considerar a barra externa como a barra a partir da qual começa a contagem de barras a fim de detectar o desenvolvimento futuro da tendência. Esta é a principal diferença. Em comparação com outros indicadores que plotam Swings de Gann, esta diferença impacta ligeiramente a detecção de swings. Os swings “pequenos" que deveriam estar na barra externa não desempenharam nenhum papel no quadro geral. Em alguns casos, o indicador identificou swings ignorados por outros indicadores em áreas significativas do histórico de dados.

A segunda diferença é insignificante. Em alguns casos, esta diferença ajuda a identificar swings em períodos planos do histórico de cotações. No que diz respeito a este artigo, é um pouco difícil descrever esta diferença numa linguagem acessível, por isso vou omiti-lo. O autor cedeu, por assim dizer, a esteira de outros programadores que implementaram swings em seus indicadores. Fiz o processamento da barra externa de modo que se tornasse semelhante as realizações noutros indicadores. No entanto, não conferi se foi implementado noutros indicadores. Eu também não olhei para o código de outros indicadores. É difícil desmontar o código de outra pessoa. Eu só olhei para a imagem que estava sendo criado pelo indicador.
Parâmetros:
o parâmetro minBars define a tendência:

  1. minBars = 0 - tendência pequena, isto é, de uma barra;
  2. minBars = 1 - tendência intermediária, isto é, de duas barras;
  3. minBars = 2 - tendência principal, isto é, de três barras;
  4. minBars > 2 - tendência de ordem superior.

Modo DT

O modo DT foi utilizado primeiro por Klot em seu indicador DT-ZigZag.mq4. Neste modo, no gráfico do timeframe atual, é exibido um ZigZag construído no timeframe superior. No ZUP, o algoritmo de construção difere daquele desenvolvido por klot. Apenas foi utilizada sua ideia.

No modo DT, são utilizados ZigZags externos. Os ZigZags externos têm diferentes algoritmos de construção. Você deve usar os ZigZags fornecidos nas versões mais recentes do ZUP:

  1. ExtIndicator = 6 - modo DT com indicador externo ZigZag_new_nen3.mq4. Seu algoritmo corresponde ao ZigZag a partir do modo ExtIndicator = 0;
  2. ExtIndicator = 7 - modo DT com indicador externo DT_ZZ.mq4. DT_ZZ.mq4 desenvolvido por klot;
  3. ExtIndicator = 8 - modo DT com indicador externo CZigZag.mq4. CZigZag.mq4 desenvolvido por Candid;
  4. ExtIndicator = 10 - modo DT com swings de Gann com indicador externo Swing_ZZ. mq4. Seu algoritmo corresponde ao ZigZag a partir do modo ExtIndicator = 5;

Após instalar o ZUP, devem ser armazenados quatro ZigZags externos na pasta que contém os indicadores personalizados do terminal de cliente.
Parâmetros
O GrossPeriod é o número de minutos do timeframe cujas interpretações são utilizadas para construir o ZigZag no modo DT. O GrossPeriod pode assumir os seguintes valores: 5-15-30-60-240-1440-10080-43200 com timeframes M5-M15-M30-H1-H4-D1-W1-MN, respectivamente. Para todos os modos DT, o GrossPeriod define o timeframe superior a partir do qual são utilizados os dados para a construção do ZigZag no timeframe atual. Além do GrossPeriod, para definir os parâmetros do ZigZag, são utilziados os parâmetros minBars, ExtDeviation e ExtBackstep:

  1. para ExtIndicator = 7, os parâmetros do ZigZag são definidos apenas usando o valor do minBars;
  2. para ExtIndicator = 8, os parâmetros do ZigZag são definidos apenas usando os valores minBars, ExtDeviation;
  3. para ExtIndicator = 10, os parâmetros do ZigZag são definidos apenas utilizando o valor do minBars;

Construção no gráfico
No gráfico abaixo, é mostrado o desenho de um ZigZag no timeframe de 4 horas segundo os dados do timeframe diário. Os pontos vermelhos estão localizados nos máximos ou mínimos das velas do timeframe de 4 horas que entram nas velas do timeframe diário. Nas velas respectivas do timeframe diário, foram construídas as quebras do ZigZag. Os seis pontos vermelhos correspondem às seis velas de 4 horas.


Há situações em que não é possível - para o máximo ou mínimo da vela do timeframe superior - encontrar velas com o máximo ou mínimo correspondente no timeframe inferior. As quebras do ZigZag serão construídas sobre o valor do preço tomado do timeframe superior. Como, no timeframe inferior, não haverá velas com o mesmo preço, tanto a sequência de pontos como os pontos de quebra do ZigZag "permanecerão pendurados no ar". Nesta situação, usando o parâmetro ZigZagHighLow podemos escolher o ponto de ancoragem das ferramentas, ou seja, padrões Pesavento, tridente de Andrews e assim por diante:

  1. ZigZagHighLow = true - as ferramentas são ancoradas aos máximos e mínimos das barras no timeframe inferior;
  2. ZigZagHighLow = false - as ferramentas são ancoradas aos máximos e mínimos das barras no timeframe inferior;

Consideraremos o exemplo para a exibição de vários ZigZags a partir de diferentes timeframes. Para o gráfico, são exibidos dois ZUP_v60 com parâmetro ExtIndicator = 6. Podemos selecionar a cor dos pontos e o diâmetro, na guia CORES, como o número 5. No primeiro indicador, o Grossperiod = 10080. A cor dos pontos é Red e o diâmetro é 5. A cor das linhas do ZigZag é Maroon, na guia CORES, no painel de seleção de parâmetros, com o número 0. O número de pontos vermelhos é 16. Na vela semanal, há 16 velas de 4 horas. No segundo indicador, o GrossPeriod = 1440. A cor dos pontos é DarkGreen e o diâmetro dos pontos é 1. A cor das linhas do ZigZag é Aqua. O número de velas verdes escuras é 6. Na vela diária, há 6 velas de 4 horas.



Para sobrepor as leituras dos diferentes indicadores, como mostrado em nosso exemplo acima (os pontos verdes sobrepõem-se aos vermelhos), é necessário manter a ordem de anexação dos indicadores ZUP no gráfico. Primeiramente, anexamos o indicador com os pontos vermelhos, depois, os indicadores com pontos verdes escuros. Algo importante sobre este método: se alterarmos - do timeframe de 4 horas para o semanal - o gráfico com o conjunto de indicadores especificado, o indicador com pontos verdes escuros não será exibido no gráfico. O indicador com pontos verdes escuros usa os dados do timeframe diário. Em comparação com o timeframe semanal, o diário é inferior. No modo DT, é construído o ZigZag no timeframe inferior de acordo com o timeframe superior. Portanto, no timeframe semanal, não deve ser exibido o ZigZag do timeframe diário, inferior. Ao alternar para um período superior ao diário, não devem ser exibidos os dados do período diário. Abaixo são exibidos os indicadores do exemplo considerado acima, no gráfico diário. A quantidade de pontos foi alterada. Agora, o número de velas diárias no período semanal é cinco, uma vez que há cinco pontos vermelhos. Agora, há apenas um ponto verde.



Os pontos verdes escuros e vermelhos ajudam a determinar o timeframe cujos dados são utilizados para construir o ZigZag respectivo. Para uma melhor compreensão, todos os desenhos dentro de cada timeframe podem ser feitos sob o mesmo esquema de cores. Em particular, no modo DT, os pontos de diferentes timeframes podem ser de diferentes cores predefinidas.

Mais um fato importante. Ao trabalhar no modo DT, no timeframe GrossPeriod, a profundidade do histórico de cotações deve ser superior ao que está no timeframe em execução. Se isto não for fornecido, ao mergulhar no histórico - no timeframe inferior- numa grande profundidade em relação ao GrossPeriod, o ZigZag será desenhado erroneamente. Além disso, no modo DT, ao ignorar cotações em diferentes timeframes, o ZigZag é construído erroneamente. Se, no modo DT, o ZigZag foi construído com falhas, por exemplo, dois máximos e dois mínimos foram construídos seguidos, é necessário verificar se, nas cotações do timeframe atual e do timeframe GrossPeriod, há barras que foram ignoradas. Se há barras ignoradas, é necessário remover o histórico do timeframe respectivo em C:\Program Files\MetaTrader\history\xxx\ e recarregar o histórico.

ZigZag no indicador RSI

A parâmetro ExtIndicator = 9 é o modo de trabalho numa janela sob o gráfico com o indicador RSI. Foi desenvolvida a versão especial indicador ZUP_RSI_v48, nela, este modo tem sido aproveitado para construir o ZigZag de acordo com as leituras do RSI. Apenas na versão ZUP_RSI_v48 usa-se o modo ExtIndicator = 9. Nesta versão, não são utilizadas as possibilidades que se tornaram disponíveis na versão 49 e em versões posteriores. Após anexar esta versão ao gráfico, é necessário alterar o timeframe para que o sistema desenhe as ferramentas gráficas. O ZigZag é desenhado no RSI utilizando um algoritmo de tendência. Abaixo está um exemplo do desenho do ZUP_RSI_v48 no modo ExtIndicator = 9 no gráfico do exemplo anterior. Falando um pouco antes, eu diria que, graças ao ZUP_RSI_v48, são exibidos os padrões Pesavento e o tridente de Andrews estatístico, no gráfico.



Parâmetros utilizados no modo ExtIndicator = 9 (alguns conceitos que ocorrem a seguir na descrição desta versão serão explicados no segundo artigo):

  1. minBars - RSI Period - período de média para o cálculo do índice;
  2. Price - seleção do preço segundo o qual é desenhado o RSI para o modo RSI:

    0 - PRICE_CLOSE - Preço de fechamento;

    1 - PRICE_OPEN - Preço de abertura;

    2 - PRICE_HIGH - Preço máximo;

    3 - PRICE_LOW - Preço mínimo;

    4 - PRICE_MEDIAN - Preço médio, (high+low)/2;

    5 - PRICE_TYPICAL - Preço normal, (high+low+close)/3;

    6 - PRICE_WEIGHTED - Preço de fechamento ponderado, (high+low+close+close)/4;

  3. minPercent - especifica a quantidade de "pontos do indicador RSI", após surgir o novo raio do ZigZag.

Limitações deste modo:

  1. Apenas pode ser exibido um indicador. As segunda e subsequentes instâncias não funcionarão corretamente;
  2. Eu não especifiquei cuidadosamente os níveis de 100% e 0%. É por isso que os picos e fundos do ZigZag não têm a mesma altura com o indicador RSI. O ZigZag ocupará toda a altura da janela. Quando o gráfico é dimensionado, o ZigZag também é dimensionado.
  3. Eu não corrigi a exibição do tridente de Andrews para determinadas velas nesta versão. Isto não é tão atual para este modo.

Todas as outras ferramentas do ZUP trabalham neste modo incluindo a contagem de barras no raio do ZigZag, o que é muito interessante para investigação. Todos os modos definidos pelo parâmetro ExtIndicator funcionam da mesma forma. Além disso, o ZigZag com todas as suas ferramentas é exibido numa janela sob o gráfico, e não na janela do gráfico. Talvez existam alguns defeitos nesta versão. É difícil testar o indicador para este modo não-padrão. Esta versão é projetada para experimentações.


Procura de padrões Gartley

O parâmetro ExtIndicator = 11 permite o trabalho com o indicador do ExtIndicator = 0 no modo de varredura ativa para procurar padrões Gartley. Ao pesquisar padrões Gartley, o modo de varredura ativa cria uma carga pesada sobre processador. Quando o mercado se move de forma intensiva, o terminal pode parar por algum tempo. Quando o ciclo de cálculo é concluído, a latência desaparece. Durante a varredura ativa, é levada a cabo a pesquisa detalhada do parâmetro minBars (Depth). É construído o ZigZag para cada valor do minBars (Depth). Em seguida, são procurados os padrões Gartley no ZigZag plotado. Esta operação é repetida durante todo o intervalo de valores do minBars (Depth), de minDepth a maxDepth até que o padrão Gartley seja encontrado. O indicador utiliza os seguintes parâmetros:

  1. ExtGartleyOnOff - habilita a exibição dos padrões Gartley em todos os modos, exceto o ExtIndicaotr = 11. Ao fazer isto, se ele for construído, este padrão será encontrado, para o modo selecionado. Ao mesmo tempo, não haverá pesquisa detalhada dos parâmetros do ZigZag. A pesquisa de padrões Gartley é realizada no único ZigZag construído. Este parâmetro não se relaciona com o modo do ExtIndicator = 11;
  2. maxDepth - define o valor máximo para o parâmetro do Depth do ZigZag, durante a varredura ativa, a fim de procurar padrões Gartley. Este parâmetro deve ser utilizado com menos frequência, para reduzir a carga sobre o processador. No entanto, por outro lado, um valor muito pequeno não permitirá encontrar alguns padrões, de modo que o parâmetro deve ser selecionado experimentalmente;
  3. minDepth - define o valor mínimo do Depth para buscar padrões Gartley;
  4. DirectionOfSearchMaxMin - define a direção da pesquisa detalhada do parâmetro do Depth:

    false - de minDepth a maxDepth;
    true - de maxDepth a minDepth.

    É melhor utilizar true. Ao fazer isto, em primeiro lugar, serão encontrados os padrões Gartey "grandes". Em alguns casos, são formados vários padrões na "área de trabalho". Isto é, os pontos D dos padrões coincidem ou estão muito próximos. Durante a varredura ativa, assim que o primeiro padrão é encontrado, a pesquisa é interrompida. O fato de selecionar a direção de pesquisa dos padrões permite escolher qual padrão será encontrado, isto é: aquele com a tamanhos mínimos ou tamanhos máximos.

  5. maxBarToD - define o número máximo de barras, da barra de zero ao ponto D do padrão. Se, nesta área, não for encontrado nenhum padrão, após esta quantidade de barras, não será realizada nenhuma pesquisa de padrões. Para negociar, é importante que o ponto D esteja nas barras mais próximas da barra do zero. Se estiver distante da barra do zero, o padrão pode deixar de ser relevante para a negociação;
  6. ExtDeltaGartley - define a tolerância de desvio de preço, a partir dos valores recomendados das retrações do padrão. Por padrão, 0,09-9%;
  7. ExtCD - o valor do raio do CD do padrão em relação ao raio BC, após o qual começa a análise do padrão;
  8. ExtColorPatterns - cor dos triângulos dos padrões.

Para ver o padrão encontrado, é necessário habilitar o parâmetro infoTF. Na segunda linha de comentários, serão exibidos o nome e o tipo (alta ou baixa) de padrão. Para procurar os padrões, é usado o algoritmo da varredura ativa. Se o padrão for encontrado, será desenhado o ZigZag com os seguintes parâmetros:

  1. Depth - valor em que - ao desenhar o ZigZag - foi encontrado o padrão;
  2. ExtDeviation e ExtBackstep - parâmetros definidos na janela de parâmetros do indicador.

O padrão encontrado age como se calibrasse o ZigZag usando o valor encontrado. Se não for encontrado nenhum padrão, será construído um ZigZag com os seguintes parâmetros: minBars, ExtDeviation e ExtBackstep - parâmetros definidos no ZUP.

Nos nomes dos triângulos que colorem os padrões, podemos ver o valor do ExtIndicator, parâmetros do ZigZag para o ExtIndicator correspondente e a quantidade de barras ao ponto D. O nome dos triângulo está disponível através das propriedades dos triângulos. Após abrir as propriedades do triângulo, no nome do objeto gráfico, veremos, por exemplo, *Triangl2_ExtIndicator=0_11/5/3_14, onde:

  1. * - número do conjunto ZUP;
  2. Triangl2 - triângulo direito do padrão;
  3. ExtIndicator=0 - ZigZag em que o padrão foi desenhado;
  4. 11/5/3 - minBars=11, ExtDeviation=5, ExtBackstep = 3;
  5. 14 - quantidade de barras para o ponto D do padrão.

Há situações em que o padrão é encontrado. Depois disso, há um forte movimento no mercado. E é então quando o padrão "fica perdido". Isso significa que o ZigZag - em que o padrão foi encontrado - foi redesenhado. Para reconstruir o padrão "desaparecido", você pode alternar para o timeframe inferior. No timeframe inferior, há mais velas e, sendo assim, o ZigZag pode "agarrar" o padrão perdido.

Modelo do padrão Gartley de baixa

Modelo do padrão Gartley de alta

Se construirmos claramente todas as retrações, como descrito por Scott Carney (Harmonic Price Patterns), o ponto D do padrão estará no intervalo. O intervalo é obtido devido ao fato de que o ponto D pode ser encontrado utilizando diferentes retrações: a BD e a XD (a retração XD é igual à relação entre o segmento AD - em pontos- e o segmento XA. Retração XD=AD/XA). Estas retrações muitas vezes não convergem. Devido a esta ambiguidade podemos concluir que o algoritmo de desenho "borboletas" deve ser "grossista". O algoritmo deve compreender todas as retrações admissíveis em grandes quantidades. É por isso que o chamamos de algoritmo "grossista".

Quado a borboleta é construída de acordo como o algoritmo "grossista", começa a ter lugar um ajuste mais fino utilizando padrões Pesavento e ferramentas Fibo dinâmicas/estáticas para esclarecer as condições da negociação. O ZUP encontra uma formação espaço-tempo e dá-lhe o nome de algum padrão Gartley. Depois, devemos trabalhar com esta formação para esclarecer as condições da negociação. É necessário aplicar filtros para determinar pontos de entrada no mercado. Os filtros podem ser uma combinação de velas, linhas de tendência ou outros indicadores. Exemplo de construção no modo ExtIndicator = 11:



Com isso, eu concluo uma visão geral dos ZigZag incorporados no indicador ZUP_v60.

Conclusão

No artigo, descrevem-se brevemente ideias subjacentes ao indicador ZigZag universal com padrões Pesavento (ZUP). Além disso, são descritos ZigZags incorporados no ZUP. De acordo com o autor, os principais algoritmos para plotagem do ZigZag são implementados no ZUP. Isto faz com que o trader tenha uma ampla possibilidade de selecionar aquele algoritmo para plotagem do ZigZag que seja de seu interesse. Por outra parte, todas as ferramentas gráficas incluídas no artigo serão automaticamente anexadas ao ZigZag selecionado. É possível que sejam incorporados posteriormente ZigZags com base em outros algoritmos.

Nos arquivos .zip anexados ao artigo, pode ser encontrado o conjunto de indicadores ZUP_v60 e ZUP_RSI_v48. Na versão do indicador que se encontra no arquivo, foram corrigidos vários erros. A versão ZUP_v60 inicialmente publicada no fórum ONIX tem alguns erros. O indicador é bem sofisticado, eu não descartaria que, em algumas situações de mercado, podem ser realizadas algumas plotagens errôneas. Os erros de desenho ocorrem devido a várias razões, isto é:

  1. erros no código do indicador:
  2. imprecisão devido às características de ancoragem (adesão) das ferramentas gráficas vinculadas às barras do MetaTrader 4. Particularmente, em alguns casos, OS Canais Fibo não podem ser construídos corretamente:
  3. se, em algum timeframe, for construída uma ferramenta gráfica - utilizando o ZUP - e salva no gráfico, ao inicializar o MetaTrader 4, em outro timeframe, esta ferramenta gráfica mudará muitas vezes suas dimensões e direção de linhas. Assim, a ferramenta gráfica pode aparecer desenhada de uma maneira errada. No segundo artigo, serão propostas algumas mudanças deste recurso aos desenvolvedores do MetaTrader 4. No entanto, se, no gráfico, a ferramenta gráfica não for salva e, em vez disso, for usada em conjunto com o ZUP, não surgirão construções errôneas, ao mudar para outro timeframe. Isto pode ser conseguido por recálculo de pontos de ancoragem das ferramentas gráficas.

Erros do primeiro tipo podem ser corrigidos no momento em que forem encontrados. Espero eliminar erros do segundo e terceiro tipo com a ajuda dos desenvolvedores do terminal de cliente. No próximo artigo, serão descritos indicadores e ferramentas gráficas incorporados no ZUP.

Lista de referência

  1. Stakhov, A., Sluchenkova, A., Scherbakov I. Kod da Vinci i ryadi Fibonacci (Da Vinci Code e Fibonacci Series). St. Petersburg, Editora 'Piter', 2007.
  2. Sokolov, Yu.N. Obschaya teoriya tsikla ili edinaya teoriya fizicheskikh vzaimodeystviy. Publicado pela North Caucasian State Technical University: Stavropol, 2003 (Versão em inglês em http://www.ncstu.info/content/_docs/pdf/cycles/goldbook/06e.pdf). Sokolov, Yu.N. Obschaya teoriya tsikla.
  3. Sokolov, Yu.N. 300 p. Carney, Scott M.
  4. The Harmonic Trader. 1999. 305 p. Pesavento, Larry. Fibonacci Ratios with Pattern Recognition.
  5. Edited by Steven Shapiro. - Traders Press Inc. 1997
  6. Pesavento, Larry. Profitable Patterns for Stock Trading.
  7. Pesavento, Larry. 1999.

Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/1468

Arquivos anexados |
ZUP_RSI_v48.zip (30.89 KB)
ZUP_v60.zip (38.06 KB)
Indicador Alternativo Ichimoku - Configurações e exemplos de uso Indicador Alternativo Ichimoku - Configurações e exemplos de uso
Como configurar o Alternativo Ichimoku corretamente? Leia a descrição dos parâmetros de configuração. O artigo irá ajudá-lo a compreender os métodos de configuração de parâmetros não só do indicador Ichimoku. Certamente você também vai entender melhor como configurar o Ichimoku Kinko Hyo padrão.
Otimização automatizada de um robô de negociação no trading real Otimização automatizada de um robô de negociação no trading real
Os artigos descrevem e fornecem uma biblioteca de funções que permite que um operador otimize suas entradas de Expert Advisors através do lançamento de otimização diretamente do EA.
ZUP- ZigZag Universal com Padrões Pesavento. Parte 2 - Descrição das ferramentas integradas ZUP- ZigZag Universal com Padrões Pesavento. Parte 2 - Descrição das ferramentas integradas
ZUP- ZigZag Universal com Padrões Pesavento. Parte 2 - Descrição das ferramentas integradas.
Pontos de pivô ajudando a definir tendências de mercado Pontos de pivô ajudando a definir tendências de mercado
Um ponto de pivô é uma linha no gráfico de preços que mostra a tendência futura de um par de moedas. Se o preço estiver acima desta linha, ele tende a aumentar. Se o preço estiver acima desta linha, ele tende a cair.