Discussão do artigo "O poder do ZigZag (parte I). Desenvolvimento da classe base do indicador"
Os trabalhos anteriores do autor sobre visualização são conhecidos e interessantes.
A ideia de levar em conta o spread ao criar indicadores está absolutamente correta, pois é um parâmetro de preço importante que, por algum motivo, não é levado em conta nos indicadores clássicos.
Quanto ao indicador ZigZag, mesmo em sua versão, é possível ver claramente nas imagens (visualização) que a tendência (se entendi corretamente - a linha verde) às vezes tem um atraso crítico.
O motivo é que, se usarmos a tendência como um critério de negociação (caso contrário, por que usar o indicador ZigZag), devemos levar em conta não apenas o spread, mas também os fatores dinâmicos e, em primeiro lugar, a amplitude das emissões para trás (a ser levada em conta ao construir uma tendência). Entretanto, esse é um erro da análise tradicional na determinação de tendências em geral.
É interessante ver os resultados do teste de seu Expert Advisor (provavelmente os veremos nas sequências do artigo).
O artigo é útil, e a visualização é clara como sempre. Obrigado ao autor por seu trabalho.
O ZigZag permite que você encontre abstrações de qualquer nível de complexidade.
O próximo artigo mostrará exemplos de como isso pode ser usado.
low_ask_buffer[i] =low[i]+(spread[i]*_Point);Execute-o em ticks reais para comparação.
fxsaber:
Боюсь, это неверно
low_ask_buffer[i] =low[i]+(spread[i]*_Point); Execute-o em carrapatos reais para comparação.
Eu concordo. Não é fato que o spread mínimo tenha sido exatamente quando o preço da oferta atingiu seu nível mínimo.
E os dados históricos (em barras) contêm exatamente o spread mínimo.
Portanto, precisamos obter ticks reais - CopyTicks(), e determinar a diferença mínima (ask-bid) no mínimo bid mínimo ask (Low Ask).
É isso que você queria dizer?
De acordo. Não é fato que o spread mínimo foi exatamente quando o preço da oferta atingiu seu nível mínimo.
E os dados históricos (em barras) contêm exatamente o spread mínimo.
Portanto, precisamos obter ticks reais - CopyTicks(), e determinar a diferença mínima (ask-bid) no mínimo bid mínimo ask (Low Ask).
É isso que você queria dizer?
Provavelmente, o CopyTicks é um pouco caro para isso. É mais fácil simplesmente perseguir os ticks reais e construir um ZigZag por ticks. Falando francamente, não entendo por que você decidiu se envolver na execução do indicador ZZ.... De qualquer forma, você não precisa de visualização ao escrever um TS.
Uma vez postei exatamente o mesmo ZZ diretamente em um Expert Advisor. Ele funciona rapidamente e provavelmente não é necessário mais nada.
Se você quiser ter um Low Ask real, adicione esse código ao indicador.
Parâmetro externo para ativar o modo:
input bool RealTicksMode =false; // Modo de ticks reais
Método para obter a venda mínima a partir de dados de ticks reais:
//+------------------------------------------------------------------+ //| Retorna o preço mínimo de venda a partir de dados de ticks. //+------------------------------------------------------------------+ double GetLowAsk(const int i,const datetime &time[]) { //--- Sair se o modo de ticks reais estiver desativado if(!RealTicksMode) return(0.0); //--- Excluir a última barra (atual) if(i>=g_rates_total) return(0.0); //--- MqlTick ticks[]; double low_ask =0.0; datetime end_time =time[i]+PeriodSeconds(); //--- Obter ticks no intervalo especificado int copied_total=CopyTicksRange(_Symbol,ticks,COPY_TICKS_ALL,(ulong)time[i]*1000,(ulong)end_time*1000); if(copied_total>0) { low_ask=ticks[0].ask; for(int k=1; k<copied_total; k++) { if(ticks[k].ask<low_ask) low_ask=ticks[k].ask; } } //--- return(low_ask); }
//---
Se não for obtida a venda mínima, será usado o spread mínimo.
//+------------------------------------------------------------------+ //| Preenche os buffers dos indicadores High Bid e Low Ask //+------------------------------------------------------------------+ void FillAskBidBuffers(const int i,const datetime &time[],const double &high[],const double &low[],const int &spread[]) { //--- Saia se você não tiver alcançado a data de início if(time[i]<first_date) return; //--- Obtenha a solicitação mínima a partir dos dados de ticks double low_ask=GetLowAsk(i,time); //--- Salvar os valores high_bid_buffer[i] =high[i]; low_ask_buffer[i] =(low_ask>0)? low_ask : low[i]+(spread[i]*_Point); }
Resultado:

Sinceramente, não entendo por que você decidiu se apegar ao design do indicador do ZZ.....
Para estudo e pesquisa.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo O poder do ZigZag (parte I). Desenvolvimento da classe base do indicador foi publicado:
Muitos pesquisadores não prestam atenção o suficiente para determinar o comportamento dos preços. Ao mesmo tempo, são usados métodos complexos, que muitas vezes são “caixas pretas”, como aprendizado de máquina ou redes neurais. A questão mais importante que surge nesse caso é quais dados enviar para o treinamento de um determinado modelo.
Geralmente, os indicadores do tipo ZigZag são construídos com base nas máximas e mínimas das barras, sem considerar o spread. Este artigo apresenta uma versão modificada, na qual um spread é considerado na construção dos segmentos para os pontos extremos do ZigZag inferior. Supõe-se que os negócios devem ser realizados dentro do canal de preços no sistema de negociação. Isso é importante, pois muitas vezes acontece do preço de compra (ask) ser significativamente maior do que o de venda (bid). Por exemplo, isso pode acontecer durante a noite. Por isso, seria errado construir um indicador apenas com base nos preços de venda (bid). Afinal de contas, não faz sentido construir os pontos extremos inferiores do indicador baseados na mínima das barras se não houver a possibilidade de comprar a esses preços. É claro que o spread pode ser levado em conta nas condições de negociação, mas é melhor quando tudo é imediatamente visível no gráfico. Isso simplifica o desenvolvimento da estratégia de negociação, já que tudo é inicialmente mais plausível.
Além disso, você também pode querer ver todos os pontos em que os valores extremos do ZigZag foram atualizados. Neste caso, a imagem fica ainda mais completa. Agora vamos considerar o código do indicador. Nós vamos nos deter apenas nos recursos e funções básicas.
Autor: Anatoli Kazharski