10 de noviembre de 2026 · datos

Tu backtest necesita un registro de cambios de datos, no solo una instantánea

Tu backtest necesita un registro de cambios de datos, no solo una instantánea

Una instantánea congelada de datos de mercado no basta para que un backtest sea fiable. Puede reproducir el mismo resultado y, al mismo tiempo, ocultar que el proveedor cambió los datos de entrada que lo generaron.

Conserva la instantánea. Después, lleva un registro de cambios que indique qué cambió, cuándo cambió y si a la estrategia le afectó. Esto es especialmente importante cuando la investigación usa operaciones corregidas, fundamentales revisados, financiación reconstruida o un historial que el proveedor actualiza discretamente.

¿Por qué puede inducirte a error un backtest reproducible?

Imagina que el lunes descargas cinco años de barras horarias y ejecutas una estrategia. El viernes, el proveedor ha corregido una operación errónea, ajustado una acción corporativa o rellenado un hueco. Tu archivo guardado sigue produciendo exactamente el resultado del lunes. Eso es reproducibilidad. Pero si vuelves a ejecutar la estrategia con el historial actual del proveedor, podrías obtener otro resultado sin tener constancia del motivo.

El problema no se limita a las correcciones drásticas. Un solo máximo modificado puede activar un stop; un cierre revisado puede hacer que un indicador cruce su umbral. En un universo amplio, el historial de un símbolo puede cambiar su posición en la clasificación y sacar otro activo de la cartera. El Sharpe final puede variar aunque el código y la configuración de la estrategia sean idénticos.

Un hash de archivo te dice que dos archivos son distintos. No te dice si un ajuste por split modificó 40 años de precios, si el proveedor corrigió tres operaciones o si un analizador convirtió un campo vacío en cero.

¿Qué debe incluir un registro de cambios de datos de mercado?

Registra los cambios en la unidad más pequeña que resulte útil, con contexto suficiente para volver a ejecutar la investigación afectada. Para un flujo de barras, esto suele incluir el instrumento, el intervalo, la hora del evento, los valores anteriores y nuevos, la fuente y la hora en que observaste la actualización. Conserva la carga original cuando el proveedor la suministre.

DatoPor qué conservarloEjemplo
Versión de la fuente u hora de consultaIdentifica el estado del proveedor utilizadoInstantánea obtenida el 2026-11-02 a las 08:15 UTC
Campo modificado y valores anterior/nuevoMuestra qué cambió realmenteETHUSDT 1h máximo: 3,412.10 → 3,418.60
Clasificación del cambioDistingue las correcciones de las transformacionesCorrección tardía de una operación, ajuste por split, relleno de datos
Versión del pipeline y del esquemaDistingue las modificaciones de la fuente de tu propio procesamientoNormalizador v7, esquema de barras ajustadas v3

Para conjuntos de datos grandes, guarda instantáneas inmutables y un manifiesto compacto con sus sumas de comprobación, versiones de la fuente y horas de consulta. Añade diferencias a nivel de fila para las particiones modificadas. Así tendrás un término medio práctico: podrás repetir todo el proceso sin escribir cada fila sin cambios en una segunda tabla de auditoría.

¿Cómo mido si importa una corrección?

No te limites a contar las filas modificadas. Vuelve a ejecutar la estrategia afectada con los datos antiguos y los nuevos, usando el mismo código, parámetros, comisiones y supuestos de ejecución. Compara las decisiones y la trayectoria hasta el resultado.

  1. Identifica en la diferencia los instrumentos y las horas de los eventos afectados.
  2. Averigua qué características, señales, órdenes o ponderaciones de cartera utilizan esos registros.
  3. Vuelve a ejecutar la ventana válida más pequeña, incluidos el período retrospectivo y el estado de las posiciones abiertas.
  4. Compara las órdenes, ejecuciones, exposición, rotación, drawdown y rendimiento final.

Por ejemplo, una corrección del proveedor que modifica en $0.02 el máximo de una barra de 1-minute puede afectar a un millón de filas y no tener ningún efecto en una estrategia de momentum diario. Una sola barra corregida en un nivel de stop puede importar mucho más. Mide el impacto en las decisiones: la cantidad de registros modificados es un indicador indirecto poco fiable.

Mantén separadas estas dos preguntas: «¿Puedo reproducir el resultado con los datos que guardé?» y «¿Habría estado disponible entonces esta versión de los datos para la estrategia?». Un registro de cambios ayuda a responder ambas, pero para la segunda también hacen falta registros de disponibilidad point-in-time.

¿Qué coste tiene y cuándo vale la pena?

El seguimiento de cambios añade almacenamiento, trabajo de ingesta y decisiones operativas. Puede que los proveedores no ofrezcan versiones estables, y algunos flujos históricos se reconstruyen periódicamente sin avisar claramente de las correcciones. No puedes registrar un cambio que nunca llegas a observar.

Empieza por los datos cuyas revisiones puedan alterar las conclusiones de la investigación: barras utilizadas por la lógica de stops, acciones ajustadas por acciones corporativas, fundamentales point-in-time y series de financiación o interés abierto que se reconstruyen. Un manifiesto diario más sumas de comprobación por partición puede bastar para conjuntos de datos amplios y estables. Añade diferencias a nivel de campo donde las actualizaciones sean frecuentes o las decisiones de trading dependan de registros individuales.

Quienes critican esta práctica tienen razón: un archivo completo y perpetuo de cada respuesta del proveedor puede resultar caro y aun así no reflejar lo que la fuente sabía en ese momento. La solución es limitar la auditoría a los datos y decisiones relevantes y documentar las lagunas. Una instantánea te permite volver a ejecutar un experimento. Un registro de cambios te permite explicar por qué cambió su resultado.

ingeniería de datosbacktestingreproducibilidadinvestigación cuantitativa
← Todos los artículos