isNewBar - indicador para MetaTrader 5
En indicadores y Asesores Expertos (EA) se necesita muy a menudo información de si una nueva barra ha aparecido en el marco de tiempo indicado. He aquí un ejemplo de cómo se puede hacer.
Después de la primera llamada a la función isNewBar(), la barra actual no se toma como una nueva barra. La función guarda su hora de comienzo de barra (vector Time), la siguiente barra será nueva si cambia su hora de comienzo.
El código está comentado, es fácil de entender, espero que sea útil.
Tenga cuidado de usar el método, que es ampliamente utilizado en MQL4 - el conteo de barras usando la función Bars (tratado en ruso aquí).
En MQL5 sólo funcionará si el máximo de barras del gráfico está ajustado como Unlimited (ilimitado):

En este caso, cuando las barras nuevas van llegando, la función Bars devolverá el creciente número de barras, pero si el máximo de barras en el gráfico es limitado (por ejemplo, 10000 barras), ¡este enfoque no funcionará! Es fácil comprobarlo.
Es por eso que es necesario guardar las horas de las últimas barras y compararlas, porque la hora (del vector Time) no cambia hasta que la barra se completa.
Este método se utiliza en el indicador.
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/107