isNewBar - indicador para MetaTrader 5
Para os indicadores e Expert Advisors muitas vezes se faz necessário a informação se uma nova barra apareceu no timeframe especificado. Aqui está um exemplo de como pode ser feito.
Após a primeira chamada da função isNewBar(), a barra atual não é assumida como uma nova barra. A função salva no seu tempo, se são barras atuais, então a próxima barra será nova.
O código é bem explicado, é fácil de entender, espero que seja útil.
Tome cuidado com os métodos, que são amplamente usados no MQL4 - onde a contagem de barras usa a função Barras (discutido aqui em Russo).
Em MQL5 somente funcionará se as barras máximas do gráfico são definidas como Ilimitada:

Neste caso, quando as novas barras aparecem, a função Barras irá retornar o número crescente de barras, mas se as barras máximas no gráfico são limitadas (por exemplo, 10 mil barras), esta abordagem não vai funcionar! É fácil de verificar.
É por isso que é necessário salvar os tempos das últimas barras e compará-las, porque o tempo não muda até que a barra esteja completa.
Este método é usado no indicador.
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/107