Se você está buscando uma ferramenta que ajude a entender melhor a disponibilidade de dados de barras no MetaTrader 5, você veio ao lugar certo! Este utilitário não é um sistema de trading, mas sim uma solução prática para quem precisa de informações sobre o número de barras que têm dados disponíveis no terminal.
Ele utiliza as funções SeriesIntegerInfo e CopyRates para obter e exibir informações sobre a disponibilidade de dados das barras diretamente do terminal. Vamos dividir isso em partes para facilitar a compreensão.
Como Funciona o Utilitário?
O utilitário permite que você use o símbolo atual do gráfico (por padrão) ou insira qualquer símbolo da sua lista de observação do mercado. Ele cria uma coluna com três informações retornadas pela função SeriesIntegerInfo para cada timeframe do símbolo selecionado:
- SERIES_SYNCHRONIZED: Indica se os dados no terminal estão sincronizados (o indicador exibe SYNC ou UN_SYNC dependendo da situação).
- SERIES_BARS_COUNT: O número de barras disponíveis naquele timeframe (incluindo a barra zero).
- SERIES_FIRSTDATE: A data da barra mais antiga disponível naquele timeframe.
Além disso, o utilitário também apresenta uma segunda coluna com informações do CopyRates para qualquer barra válida em cada timeframe. Por padrão, ele exibe informações do CopyRates para a barra mais antiga de cada timeframe (conforme indicado pelo SERIES_BARS_COUNT), mas você pode inserir o número de qualquer barra válida que desejar.
Comparação com Outros Indicadores
Esse utilitário é um indicador complementar ao https://www.mql5.com/en/code/26316, que obtém informações sobre barras válidas usando a função 'Bars'. Embora a função SeriesIntegerInfo pareça ser um método 'superior' para obter informações sobre barras, ambos os indicadores podem reportar barras que o CopyRates não consegue acessar, pelo menos na versão atual do terminal.
O display do indicador se estabiliza enquanto o terminal inicializa os dados por alguns segundos. Veja abaixo um exemplo típico desse gráfico, que pode apresentar vários erros '4401 - Terminal Data not Available'.

Controles do Utilitário
1) "Rates and Bar" - Selecione e arraste para mover a exibição para uma nova posição no gráfico.
2) Esta é a Caixa de Entrada do Número da Barra. Insira um número de barra para verificar se há informações do CopyRates disponíveis para essa barra.
3) "Symbol" - Clique para alternar o Número da Barra entre o padrão 'Oldest' ou o último número de barra inserido.
4) Esta é a Caixa de Entrada do Símbolo. Insira qualquer símbolo da sua Lista de Observação do Mercado para exibir informações para esse símbolo.
5) Clique nas informações de CopyRates do MN1 para alternar a gravação de logs. Quando ativado, os erros retornados pelas funções Bars e CopyRates serão registrados nos logs.
- Recomendo obter e descomentar // #include <errordescription.mqh> // errordescription.mqh encontrado em: https://www.mql5.com/en/code/79
e adicionar o texto ErrorDescription de volta ao indicador. Não posso enviar o código com essa inclusão.
Durante meus testes, a função SeriesIntegerInfo reportou valores de barra superiores a 100.000, mas o CopyRates nunca parece obter dados para números de barra superiores a 99.999. A imagem abaixo mostra o erro 4401 do CopyRates para a barra 100.000 e o sucesso para a barra 99.999:

Versões: Identificadores de linha de M1 até MN1 omitidos na V1.00, corrigidos na V1.02.
Publicações relacionadas
- AllAverages v4.9 MT5: O Indicador Imperdível para Traders
- Bandas Quantílicas: Entenda Esse Indicador para MetaTrader 5
- Buffers Horários para Coleta de Dados no MetaTrader 5
- Calendário Econômico: Monitoramento e Cache para Testes de Estratégia no MetaTrader 5
- EquiPeak Drawdown Tracker: Controle Eficiente para Seus EAs no MetaTrader 5