Discussão do artigo "Construímos um ZigZag de osciladores. Exemplo de execução do trabalho segundo os termos de referência"

 

Novo artigo Construímos um ZigZag de osciladores. Exemplo de execução do trabalho segundo os termos de referência foi publicado:

O artigo apresenta a criação do indicador ZigZag de acordo com os termos de referência para um dos exercícios descritos no artigo "Como criar uma especificação de requisitos para solicitar um indicador". O indicador é construído com base em extremos determinados com a ajuda de um oscilador. O indicador suporta o uso de um dos seguintes osciladores: WPR, CCI, Chaikin, RSI, Stochastic Oscillator.

Será necessário prestar atenção a certas características que são consequência disso. 

  1. O valor máximo/mínimo do indicador pode não corresponder ao valor máximo/mínimo do preço. Logo, quando o ZigZag muda de direção, é necessário verificar se, um pouco antes do oscilador entrar na zona de sobrecompra/sobrevenda, é formado um novo valor máximo/mínimo do preço (Fig. 1).



    Fig. 1. A saída do WPR para a zona de sobrecompra ocorre na barra marcada com a seta 1,
    no entanto, um novo segmento do ZigZag deve ser desenhado antes da barra marcada com a seta 2.

Autor: Dmitry Fedoseev

 

Código do indicador 1.OscZigZagStep1.

      // se nessa barra havia um novo ponto, exclua-o e desenhe os antigos
      if(NewDotTime==time[i]){
         ZigZagBuffer[NewDotBar]=0;  
      }
      // e desenhar os antigos
      ZigZagBuffer[(int)lhb[i]]=high[(int)lhb[i]];
      ZigZagBuffer[(int)llb[i]]=low[(int)llb[i]];      
      
      ZigZagBuffer[i]=0;

Sim, mas ao mudar a direção, NewDotBar=hb e lhb[i]=hb. Aqui, o ZigZagBuffer é primeiro igualado a zero e, em seguida, o mesmo valor é retornado a ele como estava. ZigZagBuffer [(int)lhb[i]]=ZigZagBuffer[NewDotBar]=ZigZagBuffer[hb]. O valor é primeiro redefinido para zero e, em seguida, o mesmo valor é atribuído.

2. indicador no EURUSD 06/06/19

por

Não deveria haver nenhum topo aqui

 
Photic:

1. código do indicador OscZigZagStep1

Sim, mas ao mudar a direção, NewDotBar=hb e lhb[i]=hb. Aqui, o ZigZagBuffer é primeiro igualado a zero e, em seguida, o mesmo valor é retornado a ele como estava. ZigZagBuffer [(int)lhb[i]]=ZigZagBuffer[NewDotBar]=ZigZagBuffer[hb]. O valor é primeiro zerado e, em seguida, o mesmo valor é atribuído.

2. indicador em EURUSD 06/06/19

Não deveria haver nenhum topo aqui

1. isso se deve ao fato de que, na barra de formação, um novo segmento em ziguezague pode desaparecer. E depois que o novo segmento desaparece, o hb não é o mesmo, mas o antigo, do topo formado anteriormente.

2. Não é o fato de que não deveria. Há um oscilador na subjanela que é usado para criar um ziguezague? Mas a direção é determinada por ele, e a mínima e a máxima são determinadas pelo preço. Se você observar o oscilador na barra que está circulada, há um mínimo. Além disso, o oscilador cai ainda mais, mas o preço não cai. .... Não. Provavelmente é a mínima errada. A direção descendente deveria ter aparecido por volta das 3:00 (ou 7:00), mas em todo o intervalo da última máxima até as 3:00, o preço mínimo está exatamente nessa barra circulada.

...e se isso lhe parecer um ziguezague errado, talvez não seja o ziguezague certo para você. Depois de ler o artigo com atenção, você pode escrever o ziguezague que quiser.
 
Dmitry Fedoseev:

1. isso se deve ao fato de que, na barra de formação, um novo segmento em ziguezague pode desaparecer. E depois que o novo segmento desaparece, o hb não é o mesmo, mas o antigo, do topo formado anteriormente.

2. Não é o fato de que não deveria. Existe um oscilador na subjanela, que é usado para construir um ziguezague? Mas a direção é determinada por ele, e a mínima e a máxima são determinadas pelo preço. Se você observar o oscilador na barra que está circulada, há um mínimo. Além disso, o oscilador cai ainda mais, mas o preço não está caindo. ..... Não. Provavelmente é a mínima errada. A direção descendente deveria ter aparecido por volta das 3:00 (ou 7:00), mas em todo o intervalo da última máxima até as 3:00, o preço mínimo está exatamente nessa barra circulada.

...e se isso lhe parecer um ziguezague errado, talvez esse não seja o ziguezague certo para você. Depois de ler o artigo com atenção, você pode escrever o ziguezague que quiser.

1. A primeira pergunta desapareceu junto com o calor

2) Pelo artigo e pelo código, entendi que max/min é pesquisado ao mudar de direção ou é corrigido à medida que você se move. Mas na seção circulada não há mudança de direção, dir =1 antes e depois. Então, por que e quando o mínimo está sendo procurado aqui? Em 7 de junho, às 7:00, ao mudar dir=1 para dir=-1, o máximo é procurado nessa seção e isso é tudo. Devo ter perdido alguma coisa em algum lugar.

 
Finalmente choveu e o quadro parece estar melhorando.
 
Photic:

1. A primeira pergunta caiu com o calor

2) Com base no artigo e no código, entendi que max/min é pesquisado ao mudar de direção ou é corrigido à medida que você se move. Mas na seção circulada não há mudança de direção, dir =1 antes e depois. Então, por que e quando o mínimo está sendo procurado aqui? Em 7 de junho, às 7:00, ao alterar dir=1 para dir=-1, o máximo é pesquisado nessa seção e isso é tudo. Devo ter perdido alguma coisa em algum lugar.

2. A direção mudou e, no momento da mudança de direção, o mínimo é pesquisado em todo o intervalo do último pico até o local da mudança de direção.

 
Existe um no MT4?