No código anterior, utilizei o tempo para detectar uma nova barra. Desta vez, vamos usar a contagem de barras para identificar uma nova barra. Essa abordagem é muito mais leve e rápida do que a utilização do método baseado em tempo.
- Declare as variáveis no tipo de dado inteiro para armazenar a contagem de barras.
- Atribua a contagem de barras à variável BarsTotal_OnInt na inicialização.
- Use a função iBars(); para atribuir a contagem de barras à variável BarsTotal_OnTick no gráfico ao vivo. Essa variável é atualizada a cada tick.
- Utilize comentários e alertas para verificar a precisão do código.

int BarsTotal_OnInt; int BarsTotal_OnTick; //+------------------------------------------------------------------+ //| Função de inicialização do Expert | //+------------------------------------------------------------------+ int OnInit() { BarsTotal_OnInt = iBars(NULL,PERIOD_CURRENT); // Atribui o total de barras na inicialização return(INIT_SUCCEEDED); } void OnTick() // Função OnTick { BarsTotal_OnTick = iBars(NULL,PERIOD_CURRENT); // Armazena a quantidade atual if(BarsTotal_OnTick > BarsTotal_OnInt) // Nova barra chegou { BarsTotal_OnInt = BarsTotal_OnTick; // Atualiza o histórico. Alert("Uma Nova Barra chegou!"); Comment("Contagem de Barras no histórico -: ", BarsTotal_OnInt, "\n", "Contagem de Barras ao Vivo -: ", BarsTotal_OnTick); // Seu código vai aqui. -------------------------- // Você pode atualizar uma "flag" / variável para usar depois também. } }
Comentário 0