Discussão do artigo "Handler de evento "Nova barra""

 

Novo artigo Handler de evento "Nova barra" foi publicado:

A linguagem de programação é capaz de resolver problemas em um nível completamente novo. Mesmo as tarefas que já tenham soluções, graças à programação orientada a objeto elas podem atingir um nível ainda maior. Neste artigo, consideramos um exemplo especialmente simples de verificação de uma nova barra em um gráfico, que foi transformado em uma ferramenta bastante poderosa e versátil. Qual ferramenta? Descubra neste artigo.

Autor: Konstantin Gruzdev

 

Pelas regras de modelagem de objetos é um nome equivocado dar o nome de CIsNewBar.

Vejamos, se carro é uma classe posso criar/ter um objeto carro. Porém, se minha classe é "ÉUmCarroNovo", nós podemos ter o possuir um "ÉUmCarroNovo".

 O mais adequado seria o autor ter dado o nome de CNewBarChecker. Alguém poderia inventar um Verificador de Carro Novo e criá-lo (nossa classe seria CVerificadorDeCarroNovo.

 

Queria agradecer ao autor da classe, recentemente resolvi retirar as linhas de código que usava para identificar uma nova barra e acrescentei a classe deste artigo, a velocidade de meus 

EAs aumentou em 30% nas otmizações, além de reduzir os erros. Muito obrigado. Não tenho palavras para agradecer.

 

Pessoal, em que pasta eu coloco o handler.mqh?

 
Bruno Assiso:

Pessoal, em que pasta eu coloco o handler.mqh?


include

 
Muito obrigado, me ajudou muito no meu EA.
 
Ótimo material! Precisei voltar aqui depois de sentir na prática algumas dificuldades com o isNewBar...
Parabéns!
 
Excelente solução! Parabéns! Muito obrigado!
 

Atualemnte me EA abre vários ordens no mesmo candle. Creio que o material divulgado neste artigo me ajudaria.

Como faço para implementá-lo?

 
tito.vinicius:

Atualemnte me EA abre vários ordens no mesmo candle. Creio que o material divulgado neste artigo me ajudaria.

Como faço para implementá-lo?


Você pode tirar a lógica de entrada no trade do evento OnTick() e colocar dentro da função OnNewBar(). Assim, só será executado quando houver uma nova barra, não entrando mais várias vezes no mesmo candle, pois uma vez executado, só vai executar novamente no próximo candle.

Razão: