Uma vela em falta não demonstra se o fornecedor falhou ou o mercado estava fechado. Compare primeiro o ficheiro com uma janela declarada e com as regras de construção das velas. O verificador local deste artigo encontra posições vazias numa grelha fixa, instantes repetidos, preços em conflito e linhas inválidas. Não inventa cotações nem aprova a rentabilidade de um backtest.

Defina a série antes de contar

Registe instrumento, fornecedor, base de preços e período. Velas Bid, Ask e ponto médio são séries diferentes; «EUR/USD» não basta. Compare horas de abertura equivalentes. Um ficheiro marcado pelo fecho parece deslocado face a outro marcado pela abertura, mesmo que ambos contenham observações válidas. A documentação OANDA distingue estes componentes e parâmetros de alinhamento; não os substitua por pressupostos do seu ecrã.

O formato suportado tem exatamente o cabeçalho timestamp,open,high,low,close e cinco campos separados por vírgulas em cada linha. Preços usam ponto decimal e não separador de milhares. Aspas, colunas adicionais e CSV com ponto e vírgula precisam de conversão documentada; a ferramenta rejeita formatos não suportados em vez de adivinhar. A convenção do ficheiro permanece técnica, mesmo numa instalação portuguesa com vírgula decimal.

Use um timestamp completo, por exemplo 2026-10-12T08:00:00Z ou 2026-10-12T10:00:00+02:00: representam o mesmo instante. Segundos são obrigatórios e admitem-se até três casas de fração de segundo. Uma hora sem offset não identifica o fuso do servidor. Acrescentar Z a uma hora local não a converte para UTC: muda o significado. Como contraprova própria, 10:00+02:00 é 08:00Z; trocar apenas o sufixo por Z cria um desvio de 120 minutos.

Declare primeira e última abertura esperadas, ambas incluídas. De 08:00 a 08:11, a um minuto, são doze posições. A grelha ancora na primeira fronteira e a última deve cair exatamente nela. Este modelo usa intervalos de tempo decorrido iguais: um mês de calendário ou dia local com mudança de hora não equivale a assumir sempre 1440 minutos. Portugal continental e Açores também não partilham a mesma hora local; os offsets explícitos evitam confundir idioma e fuso.

Executar o exemplo controlado

Selecione o CSV, intervalo inteiro entre 1 e 1440 minutos e as duas fronteiras. A análise ocorre no navegador sem enviar o conteúdo ou o guardar persistentemente. Limites: 2 MiB, 100000 linhas e 100000 posições esperadas. Divida períodos maiores em janelas não sobrepostas e documente fronteiras. Cada preço admite até quinze algarismos significativos e 48 caracteres; precisão maior é inválida, não arredondada silenciosamente para esconder um conflito.

Verificar cobertura da grelha temporal CSV

O ficheiro é analisado localmente; a ferramenta não o envia nem o guarda persistentemente. Formato: timestamp,open,high,low,close. Máximo 2 MiB. Timestamps exigem Z ou offset explícito.

Descarregar exemplo limpo · Descarregar exemplo diagnóstico

Os ficheiros de treino são sintéticos, não cotações de corretora nem dados de conta. Escolha M1 de 08:00 a 08:11 UTC. O exemplo limpo contém doze instantes distintos e nenhuma posição vazia. O diagnóstico tem doze linhas, mas só oito posições válidas ocupadas. A contagem de linhas coincide com a expectativa sem demonstrar cobertura.

Resultados esperados do ficheiro diagnóstico
AchadoSignificado neste modelo
4 posições vazias08:03, 08:04, 08:10 e 08:11 sem vela válida
2 linhas repetidas08:02 e 08:06 aparecem novamente
1 grupo de conflitoDuas velas válidas em 08:06 têm OHLC diferentes
1 linha inválidaMáximo de 08:04 inferior à abertura
1 fora da grelha; 1 inversão08:07:30 não pertence a M1; 08:08 aparece depois de 08:09
Doze linhas, oito posições ocupadasM1 sintético 08:00–08:11 UTC, extremos incluídos. 08:06 com conflito, 08:04 inválido.EXEMPLO DE CÁLCULOSem vela válida08:03; 08:04; 08:10;08:11Posição 08:06Duas velas válidasdiscordamCobertura8/12≈66,67%
Doze linhas, oito posições ocupadas. M1 sintético 08:00–08:11 UTC, extremos incluídos. 08:06 com conflito, 08:04 inválido.

A contagem de linhas esconde lacunas e preços ambíguos.

Sem vela válida
08:03; 08:04; 08:10; 08:11 – Quatro posições vazias
Posição 08:06
Duas velas válidas discordam – Ocupa a grelha mas precisa de investigação
Cobertura
8/12≈66,67% – Não é percentagem de dados aprovados

As maiores lacunas contêm duas aberturas esperadas cada. Num empate, o resultado indica a primeira: 08:03–08:04. Não é medição da duração de uma interrupção. A cobertura distinta é 8/12≈66,67%; como extensão própria, isso não significa «66,67% de dados utilizáveis», pois o instante 08:06 continua com preços contraditórios. Quantidade e ambiguidade respondem a perguntas separadas.

Investigue em vez de reparar automaticamente

Um duplicado idêntico não aumenta cobertura. Dois OHLC diferentes e válidos no mesmo timestamp ocupam uma posição e geram conflito: zero posições vazias pode coexistir com preços por resolver. Conserve ambas as versões e confira a fonte. O verificador não escolhe a mais alta, mais recente ou conveniente. Ordenar linhas não resolve um conflito no mesmo instante.

Uma linha inválida não ocupa posição. Preços devem ser finitos; máximo não pode ficar abaixo da abertura, fecho ou mínimo, e mínimo não pode exceder os restantes preços. Linhas fora da janela ou grelha não melhoram cobertura. Todos os achados são contados, mas mostram-se só vinte exemplos por grupo para manter o relatório legível. Não interprete o limite de apresentação como limite de erros detetados.

Compare lacunas de fim de semana com o horário do produto. Dentro da sessão declarada, investigue logs de descarga e origem. Na API OANDA, complete significa que o período da vela terminou, não que toda a exportação está íntegra. Preencher vazio com o último preço cria velas sintéticas que podem alterar indicadores e simulação de stops. Preserve original e registo separado de correção, motivo e fonte.

OHLC completo não prova ticks registados

Uma vela não descreve a sequência completa de preços. MetaQuotes documenta ticks gerados quando existe vela de minuto sem os respetivos ticks. Assim, um CSV M1 sem lacunas não prova que o tester usou exclusivamente observações registadas. Consulte diário, período disponível e modo selecionado. Compare datas pedidas com datas efetivamente testadas; história insuficiente pode deslocar o início do teste.

Ao exportar com CopyRates, confira número pedido e devolvido; uma resposta parcial pode ocorrer enquanto a história ainda é obtida. Não trate o número de linhas desejado como número confirmado. Depois veja o guia de testes MT4/MT5 e a metodologia de backtesting. Estes controlos não certificam comportamento da estratégia, spreads históricos, custos ou ordem das execuções.

Três ações com o relatório

  1. Guarde exportação original, definições e resultado, incluindo instrumento, base de preço, fuso e fonte do horário. Outra pessoa deve conseguir repetir exatamente a janela.
  2. Investigue a maior lacuna e todos os conflitos. Documente sessão fechada confirmada ou obtenha ficheiro corrigido; volte a executar a mesma janela e preserve o relatório anterior.
  3. Num intervalo aceite, faça um teste visual curto e examine sinais junto dos achados, custos e sequência. Dados sem lacunas não estabelecem lucro futuro nem fiabilidade global do fornecedor.