Monday 21 August 2017

Zigzag Moving Average


MetaTrader 5 - Sistemas de Negociação O Indicador ZigZag: Abordagem Fresca e Novas Soluções Introdução Todo comerciante certamente conhece o indicador ZigZag destinado à análise de movimentos de preços de amplitude dada ou maior. Uma linha ZigZag é uma linha quebrada cujos nós estão localizados em altos e baixos do gráfico de preços. Existem muitas variações deste indicador: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. No entanto, muitos desenvolvedores de programas do MQL5 estão interessados Na criação de seu próprio ZigZag ideal. As principais desvantagens do indicador ZigZag são atrasos, marcações incorretas de nós questionáveis ​​(barra externa) e desempenho insatisfatório. Na minha opinião, a implementação mais elegante da ZigZag foi proposta por Yuri Kulikov (Yurich). Além disso, existem alguns artigos MQL4 muito bons, como Laymans Notes: ZigZag. E Show Must Go On, ou novamente sobre o ZigZag. O assunto parece ter sido substancialmente explorado, com um grande número de publicações disponíveis. No entanto, há algo magnetizando sobre isso. Agora, também me interessou, particularmente na possibilidade de criar um indicador ZigZag avançado. Este artigo descreve um método para criar um ZigZag avançado usando o indicador Envelopes. Supõe-se que podemos encontrar uma certa combinação de parâmetros de entrada para uma série de Envelopes, pelo que a maioria dos nós ZigZag estão dentro dos limites das bandas de Envelopes. Um método para criar um indicador ZigZag avançado Vamos definir um objetivo: encontrar coordenadas de dois nós - o nó atual e previsto (Fig. 1). O nó atual é um nó que ainda não está concluído, cujas coordenadas ainda estão sendo pesquisadas ou ajustadas. Além disso, está sempre na barra atual (zero). Enquanto estiver no futuro, um nó previsto deve mostrar o nível estimado do próximo nó ZigZag. FIG. 1. Previsão de novos nós ZigZag: o nó atual e o próximo nó. Então, o objetivo é definido e nós temos uma idéia de como usar Envelopes médios móveis como base para construir um indicador avançado (Fig. 2). Procuraremos envelopes cujo desvio dos nós ZigZag é mínimo. Parece bastante lógico que os envelopes para os picos ZigZag e as calhas devem ser pesquisados ​​separadamente. FIG. 2. Indicadores ZigZag e Envelopes médios móveis. Para aumentar a significância estatística da previsão, em vez de usar apenas um ou mesmo 10 indicadores de Envelopes, devemos usar um conjunto de 100 ou mais indicadores com diferentes dados de entrada. Eles serão diferentes no período médio da linha indicadora principal e do preço utilizado (Alto para picos e Baixo para calhas). Permite introduzir as seguintes notações e fórmulas: ZZ - o indicador ZigZag ENV - a linha principal do indicador Envelopes (coincide com o indicador iMA) Envelopes (i) - valor da linha principal do indicador Envelopes na ith bar ZZ (High ) - Valor de pico ZigZag ZZ (Baixo) - Valor mínimo ZigZag ENV (Alto) - Valor da linha principal do indicador de Envelopes correspondente a um pico ZigZag ENV (Baixo) - Valor da linha principal do indicador Envelopes correspondente a um ZigZag Através de nhigh - número de picos ZigZag nlow - número de calhas ZigZag. Temos dois pools de indicadores: um para picos e o outro para calhas (cerca de 100 indicadores em cada um). Vamos calcular o desvio dos nós ZigZag da linha principal do indicador Envelopes para cada indicador no pool e encontrar a média aritmética de desvios para cada indicador de pool usando as fórmulas acima. A figura a seguir demonstra um diagrama de desvios em relação aos nós identificados ZZ da linha principal ENV para um indicador. FIG. 3. Diagrama de desvios dos nós ZZ da ENV. A média aritmética dos desvios será usada para determinar o nível ao qual a linha principal do indicador Envelopes deve ser movida para traçar as bandas do envelope. Então, precisamos da média aritmética dos desvios dos picos ZigZag para desenhar a linha superior e a média aritmética dos desvios das calhas para desenhar a linha inferior do indicador Envelopes. São linhas superiores e inferiores de envelopes que vamos usar para encontrar pontos característicos e prever os nós ZigZag. Mais uma vez, estamos interessados ​​no conjunto de envelopes consistindo de um conjunto de indicadores de Envelopes. A média aritmética dos desvios dos nós ZigZag da linha principal de um envelope dado é calculada para cada indicador. Depois de plotar as linhas resultantes (a linha superior e inferior) do grupo no gráfico, poderemos ver o seguinte: Fig. 4. As linhas de Envelopes no avião. Se assumirmos que cada linha se encontra em um plano separado, enquanto todos juntos criam uma superfície, a figura acima mostra apenas a projeção de cada indicador no plano do gráfico de preços. Uma imagem 3D dessas linhas será aproximadamente a seguinte: Fig. 5. As linhas de Envelopes em 3D. Deixe agora uma rápida lição de geometria. Imagine que o conjunto de linhas do indicador Envelopes é uma superfície 3D. Pegue um plano perpendicular ao gráfico de preços e corte a superfície na barra atual (zero). Como resultado, obtemos uma seção transversal da superfície representando uma curva (as figuras acima demonstram um caso especial onde a curva é uma linha reta). Para fazer a previsão, basta ter as coordenadas de cada ponto na curva que será mais utilizado nos cálculos. Nós precisaremos das seguintes características de seção transversal: ponto máximo e mínimo, bem como o centro de gravidade da seção transversal (a média aritmética de todos os valores dos pontos). Os pontos característicos obtidos serão projetados na barra atual (zero), com os dados relevantes armazenados no histórico. Esses pontos característicos servirão de base para os nós atuais e próximos do ZigZag. Uma vez que a busca por bandas Envelope é realizada separadamente para picos e calhas, como resultado, devemos obter duas secções transversais: uma para picos e a outra para calhas. Para obter a previsão, usaremos o ponto característico mais próximo. Por exemplo, ao procurar um pico ZigZag. Tomamos os pontos característicos da seção transversal resultante da interseção da superfície das linhas superiores do indicador de Envelopes com um plano de corte. Por outro lado, para encontrar uma calha, tomamos os pontos característicos da seção transversal resultantes da interseção da superfície das linhas inferiores do indicador de Envelopes com um plano de corte. Testando o novo indicador Agora que definimos o método, vamos criar o indicador. Vamos primeiro encontrar os últimos nós do indicador ZigZag e desenhá-los no gráfico. Para isso, usaremos a classe AdvancedZigZag escrita para a tarefa em mãos: Existem dois métodos no total: o método Count encontra todos os nós do ZigZag durante um determinado período de tempo (número de barras) e os salva em vários arrays, separando picos Das calhas. Desta forma, será mais fácil fazer a análise e o cálculo dos envelopes. O método Read encontra os últimos nós e os salva em uma única matriz. Precisamos deste método para a visualização do indicador ZigZag A biblioteca GetExtremums (por Yury Kulikov) também será necessária na busca de nós. Posicione o indicador em consideração em um consultor especialista. Por que um consultor especialista e não um indicador Esta é, naturalmente, uma questão de gosto, mas parece ser mais eficiente para mim desse jeito. Os recursos gráficos do Expert Advisors são, sem dúvida, mais fracos, mas ganhamos em desempenho, pois os indicadores do mesmo símbolo operam em um único fluxo, enquanto cada EA opera em seu próprio fluxo separado. Vamos dar uma olhada no código: Precisamos esclarecer algumas coisas aqui: O indicador iEnvelopes é substituído pelo indicador iMA. Não há nada falso ou enganador nele. A coisa é que a linha principal dos iEnvelopes coincide com o iMA. Portanto, é mais conveniente usar o indicador de média móvel. Usamos dois conjuntos de médias móveis, consistindo de 227 linhas cada, fazendo 454 indicadores iMA no total. É muito ou pouco. Basicamente, é um grande número. Mas, antes de tudo, podemos alterar o número de indicadores, se necessário, e, em segundo lugar, precisamos de estatísticas. Qual é o ponto na busca de envelopes para uma dúzia de nós Precisamos de pelo menos uma centena. Os valores dos indicadores são carregados no bloco OnTick () em vez de OnInit (). Se o bloco de carregamento de dados for colocado no OnInit (), é muito provável que alguns dados possam atrasar a carga e os indicadores, como resultado, não serão calculados com precisão e na íntegra. Depois de todos os dados para os cálculos serem obtidos, o valor da variável err será positivo e esse bloco será excluído da operação. Assim, o indicador resultante traça os últimos sete nós ZigZag e calcula as coordenadas de todos os outros nós em um determinado histórico (Fig. 6). O cálculo é executado apenas uma vez e nós usamos os dados calculados. Você pode, naturalmente, implementá-lo de forma a permitir que os dados sejam atualizados regularmente, mas neste artigo, o manteremos em uma única passagem. FIG. 6. O indicador ZigZag (7 nós). Além disso, vamos traçar as secções transversais das superfícies dos indicadores de Envelopes. Para fazer isso, iremos adicionar o seguinte ao método OnTick (): Uma nota para programadores novatos: os operadores no final dos Picos e o bloco Troughs não têm no final da string. Não é um erro ou um erro de digitação. Essas são macros (veja a seção de dados onde elas são declaradas) - são muito úteis Eu recomendo que você as use em seus programas. Para discernir os pontos de seção transversal da superfície formada pelas linhas de envelopes, os pontos variam em tamanho: quanto maior o período de média da linha principal dos indicadores Envelopes, maiores os pontos (Fig. 7). Além disso, as seções transversais são giradas em torno de um eixo vertical que passa pela barra atual (zero) em diferentes direções: os picos são a 90 graus à direita e as calhas estão a 90 graus à esquerda. Agora eles podem ser vistos no plano do gráfico de preços. Inicialmente, estavam deitados no plano de corte (Fig. 5) e não podiam ser observados. Podemos apenas imaginá-los para nós mesmos, sem ter nenhuma idéia sobre a forma deles. As linhas de seção transversal resultaram ser de uma forma muito peculiar. Isso também é feito para a conveniência da análise gráfica. Visualmente, as secções transversais se assemelham a dois cometas voadores: Fig. 7. Seção transversal do conjunto de indicadores de Envelopes. Vamos proceder ao cálculo das características da seção transversal: o máximo e o mínimo, bem como o centro de gravidade (a média aritmética). Os valores resultantes serão exibidos como pontos na barra atual, com o tamanho do ponto correspondente ao tamanho da característica relevante. Além disso, vamos salvá-los no histórico para uma análise mais aprofundada. Então, vamos adicionar o seguinte ao código existente: Agora, vamos ver o que parece quando representado graficamente: Fig. 8. Características da seção transversal: o máximo e o mínimo, bem como o centro de gravidade conspirado para picos e calhas separadamente. Só precisamos adicionar o último toque final ao encontrar e plotar nós avançados do ZigZag. Melhoramos o código adicionando o seguinte: Então, temos o novo indicador ZigZag avançado que prevê a posição dos novos nós (Fig. 9). Os próprios nós estão localizados nos pontos de seção transversal característicos: o máximo, o mínimo eo centro de gravidade. O título de trabalho do indicador é Two Comets. Deve-se notar que o tempo de conclusão do próximo nó, que está no futuro, permaneceu desconhecido. Basicamente, podemos apenas prever uma coordenada de nó - o preço. FIG. 9. O indicador ZigZag avançado prevê os nós: o atual e o próximo. Análise dos Resultados e Recomendações para Desenvolvedores As observações dos indicadores mostraram que: Os desvios das coordenadas do nó ZigZag dos nós previstos estão dentro da região de tolerância. O grande número de nós está na sombra da seção transversal correspondente. Esta é certamente apenas uma avaliação qualitativa. Resultados mais precisos seguirão nos futuros artigos. As secções transversais das linhas de envelopes demonstram o comportamento do mercado e o impulso de preços esperado. Preste atenção à cauda do cometa que é composta de pontos com o menor período de média (o menor em tamanho). É direcionado na direção do preço. A cauda dos cometas se dobra das formas mais intrincadas e quanto mais se gira na direção oposta, maior a chance de ver a mudança de tendência. Basta assistir ao comportamento do indicador em diferentes intervalos de tempo com diferentes amplitudes. Isto é extremamente interessante. Os pontos característicos das secções transversais formam linhas que podem apresentar uma forte resistência ao movimento dos preços. Portanto, eles podem ser considerados como suporte e linhas de resistência. Quando os pontos do centro de gravidade da seção transversal avançam (como os picos na figura 9), isso é uma indicação da presença da tendência ascendente. Então, o que obtivemos como resultado é um indicador muito interessante que pode ser testado em uma estratégia de negociação Conclusão O método para prever os nós indicadores ZigZag revisados ​​no artigo permitiu-nos criar o novo indicador - Dois Cometas. O ZigZag avançado mostra as possíveis coordenadas de novos nós, mesmo que esta seja apenas uma previsão. O algoritmo considerado no artigo pode ser usado para traçar indicadores avançados semelhantes, não sendo necessariamente indicadores ZigZag, p. Ex. Indicadores de fractals ou semarras. Os programadores Novice MQL5 podem achar interessante ver como eles podem criar macros em seus programas para reduzir a quantidade de código repetido. O indicador Zig-Zag tenta determinar tendências de preços. Áreas de suporte e resistência, e padrões de gráficos clássicos como cabeça e ombros. Fundos duplos e tops duplos. Os indicadores Zig-Zag utilizam os máximos de balanço e os mínimos de balanço no seu cálculo: Swing Highs. Quando um preço (geralmente fechado) é superior ao preço anterior e depois dele. Swing Lows. Quando um preço é inferior ao preço anterior e inferior ao preço que o segue. O indicador Zig-Zag pode usar ambas as porcentagens ou pontos em sua construção. Para construir o indicador Zig-Zag, deve haver uma certa porcentagem ou número de pontos entre um balanço alto e um balanço baixo antes que uma linha seja desenhada. O gráfico abaixo do contrato E-mini Nasdaq 100 Futures ilustra visualmente a diferença entre um retracement de preços Zig-Zag de 3 e um retracement de preços Zig-Zag de 5: Observe como no gráfico acima que um Zig-Zag com porcentagem de retracement De 3 faz linhas mais distintas do que o Zig-Zag com uma porcentagem de retração de 5. O propósito de usar um Zig-Zag com uma porcentagem de retração maior é ajudar a eliminar o ruído de preço que não é significativo para a análise dos comerciantes. Como será mostrado na próxima página, o Zig-Zag pode ser útil para descobrir os ciclos de estoque enquanto rastreia o ruído de preços a curto prazo. As informações acima são apenas para fins informativos e de entretenimento e não constituem conselhos de negociação ou solicitação para comprar ou vender qualquer estoque, opção, futuro, commodity ou produto forex. O desempenho passado não é necessariamente uma indicação de desempenho futuro. A negociação é inerentemente arriscada. OnlineTradingConcepts não será responsável por quaisquer danos especiais ou conseqüentes que resultem do uso ou da incapacidade de usar, os materiais e as informações fornecidas por este site. Veja o aviso prévio completo.

No comments:

Post a Comment