Una vela ausente no demuestra automáticamente un fallo del proveedor. Primero compara la exportación con una ventana declarada y con las reglas de construcción de las velas. Esta guía conserva un comprobador local de CSV que identifica posiciones vacías, fechas repetidas, conflictos de precios y filas inválidas. El resultado ayuda a decidir qué investigar antes del backtest; no rellena cotizaciones ni predice resultados futuros.

Define qué serie y qué ventana vas a examinar

Registra instrumento, proveedor, marco temporal y base de precio. Las velas de Bid, Ask y punto medio son series distintas: «EUR/USD» no basta para compararlas. Identifica si la marca representa apertura o cierre de la vela. Dos exportaciones válidas pueden parecer desplazadas si una etiqueta aperturas y la otra cierres.

El formato admitido utiliza exactamente la cabecera timestamp,open,high,low,close y cinco campos separados por comas en cada fila. En los precios del archivo usa punto decimal y ningún separador de miles, aunque la prosa española de esta guía use coma decimal. Los campos entre comillas, columnas adicionales o CSV separados por punto y coma requieren conversión previa: el comprobador los rechaza en vez de adivinar su significado.

Introduce fechas completas como 2026-10-12T08:00:00Z o 2026-10-12T10:00:00+02:00. Representan el mismo instante; el segundo puede corresponder a una presentación peninsular de octubre. Se requieren segundos y se admiten hasta tres dígitos fraccionarios de segundo. Una hora de servidor sin desfase no identifica su zona. Añadir Z a una hora local cambia su significado: no la convierte a UTC.

Las convenciones de alineación también importan. La documentación de OANDA distingue el horario y la zona empleados para alinear velas diarias de la representación UTC de los tiempos devueltos. Revisa las reglas de tu fuente en vez de deducirlas del idioma o de la configuración de Excel.

Declara por separado primera y última apertura esperadas, ambas incluidas. De 08:00 a 08:11 con intervalo de un minuto son (11 −0)/1 +1 =12 posiciones. La cuadrícula se ancla en el primer límite y el último debe caer exactamente sobre ella. El modelo representa intervalos iguales de tiempo transcurrido; un mes de calendario o un día local que cambia de duración por el horario de verano no equivalen a un supuesto fijo de 1.440 minutos.

Ejecuta la comprobación y reproduce las muestras

Carga el CSV preparado, elige un intervalo entero entre 1 y 1.440 minutos e introduce ambos límites con zona o desfase. El análisis se realiza en tu navegador sin enviar el contenido del archivo ni guardarlo de forma persistente. Los límites son 2 MiB, 100.000 filas y 100.000 posiciones esperadas. Divide periodos mayores en ventanas documentadas que no se solapen.

Los precios admiten hasta 15 cifras significativas y 48 caracteres por campo. Una precisión superior se rechaza, de modo que un redondeo silencioso no pueda ocultar un conflicto. Conserva el original al preparar un archivo compatible; cambiar separador no resuelve una zona horaria ambigua ni una convención de apertura incorrecta.

Comprobar la cobertura temporal del CSV

El archivo se analiza localmente; la herramienta no lo envía ni lo guarda de forma persistente. Formato: timestamp,open,high,low,close. Máximo 2 MiB. Las marcas requieren Z o un desfase explícito.

Descargar ejemplo sin incidencias · Descargar ejemplo de diagnóstico

Doce filas pueden dejar cuatro posiciones vacías

Ambas descargas de práctica son sintéticas: no proceden de un bróker ni de una cuenta. Usa M1 y la ventana 08:00–08:11 UTC del 12 de octubre de 2026. El archivo sin incidencias contiene doce marcas diferentes sin huecos. El diagnóstico tiene doce filas, pero solo ocho posiciones válidas distintas.

Faltan registros válidos para 08:03, 08:04, 08:10 y 08:11: cuatro posiciones vacías. Hay dos filas repetidas, al reaparecer 08:02 y 08:06. Las dos velas válidas de 08:06 difieren en OHLC y forman un grupo de conflicto. La fila de 08:04 es inválida porque su máximo es inferior a la apertura, por lo que no ocupa esa posición.

Además, 08:07:30 no pertenece a la cuadrícula M1 y 08:08 aparece después de 08:09, un retroceso temporal en el archivo. Los huecos más largos contienen dos aperturas esperadas cada uno. En caso de empate se informa primero 08:03–08:04. Eso cuenta posiciones de la cuadrícula; no mide la duración de una interrupción real del servicio.

Cobertura ficticia M1: ocho de doce posicionesVentana inclusiva 08:00–08:11 UTC. Una marca válida ocupa cada posición indicada; conflicto de precios y cobertura se cuentan por separado.EJEMPLO DE CÁLCULO08:00, 08:01, 08:02Ocupadas08:03, 08:04Vacías08:05Ocupada08:06Ocupada con conflicto08:07, 08:08, 08:09Ocupadas08:10, 08:11Vacías
Cobertura ficticia M1: ocho de doce posiciones. Ventana inclusiva 08:00–08:11 UTC. Una marca válida ocupa cada posición indicada; conflicto de precios y cobertura se cuentan por separado.

Doce filas ocultan cuatro posiciones vacías. La posición 08:06 está ocupada y sigue teniendo un precio ambiguo.

08:00, 08:01, 08:02
Ocupadas – El duplicado de 08:02 no añade otra posición.
08:03, 08:04
Vacías – La fila inválida de 08:04 no aporta cobertura.
08:05
Ocupada – Registro válido sobre la cuadrícula.
08:06
Ocupada con conflicto – Dos OHLC válidos diferentes.
08:07, 08:08, 08:09
Ocupadas – 08:07:30 queda fuera de cuadrícula; 08:08 aparece fuera de orden.
08:10, 08:11
Vacías – Segundo hueco de dos aperturas esperadas.

Investigar no equivale a reparar automáticamente

La cobertura cuenta marcas válidas distintas, no filas. Un duplicado idéntico no añade cobertura. Dos registros válidos con OHLC diferentes para una misma marca ocupan una posición y, además, generan un conflicto. Por eso cero huecos no significa datos aceptables: el precio sigue ambiguo. El comprobador no selecciona el mayor, el más reciente ni el más conveniente para el backtest.

Un registro inválido no aporta cobertura. Se exigen precios finitos y que el máximo sea al menos apertura, cierre y mínimo; el mínimo no debe superar a los demás. Filas fuera de la ventana o de la cuadrícula tampoco cubren posiciones esperadas. Se cuentan todas las incidencias, pero se muestran hasta veinte ejemplos por grupo para mantener legible el informe.

Una comprobación adicional ilustra cómo pueden coexistir indicadores: en una ventana de una sola apertura, dos filas con la misma hora y OHLC distintos pero válidos producen una posición ocupada, cero vacías y un grupo conflictivo. Necesitas resolver el precio con la fuente aunque la cobertura sea del 100 %. Conserva ambas versiones durante la investigación.

Contrasta un hueco de fin de semana con el calendario del producto. Si cae dentro de una sesión declarada, revisa descarga y fuente original. En OANDA, el campo técnico complete indica que el periodo de una vela ya ha terminado; no certifica la integridad de toda una exportación. No rellenes el hueco con el último precio para lograr continuidad visual: crearías velas sintéticas que pueden cambiar indicadores y activación de stops.

Ordenar filas no resuelve un conflicto de precios en la misma hora. Guarda un registro separado de correcciones con motivo y fuente para cada cambio, manteniendo accesible el archivo original.

OHLC completo no demuestra ticks observados completos

Las velas no describen toda la secuencia intrabar. MetaQuotes documenta generación de ticks cuando existe una vela de minuto pero faltan sus ticks registrados. Una cuadrícula M1 completa no demuestra que la prueba haya usado exclusivamente observaciones reales. Revisa modelo seleccionado, periodo disponible y diario del probador.

Compara también inicio solicitado e inicio efectivo. La preparación de historia puede desplazar el comienzo si faltan datos previos. Al exportar con CopyRates, compara conteos solicitados y devueltos porque la descarga puede seguir en curso. Continúa con la práctica de MT4 y MT5 y la metodología de validación: un archivo completo no acredita comportamiento correcto del programa.

Tres acciones con el informe

  1. Guarda exportación original, configuración e informe junto a símbolo, proveedor, base de precios, zona y calendario de sesiones. El resultado debe permitir que otra persona repita la misma ventana y distinga qué registros corresponden a aperturas, cierres o series de precios diferentes.
  2. Investiga el hueco más largo y todos los grupos de precios conflictivos con registros originales y diario de descarga. Documenta el cierre de sesión confirmado u obtén una exportación corregida; el resultado debe conservar informes anteriores y explicar cada modificación antes de repetir el análisis.
  3. Ejecuta una prueba visual breve en el intervalo aceptado y revisa señales junto a huecos, costes de spread y orden de ejecución. Si construyes otro motor, continúa con las comprobaciones en Python; el resultado debe separar calidad del archivo, simulación y validación de la estrategia.