Un registro útil no sustituye la hora que muestra tu plataforma: la conserva y añade contexto. Guarda también la zona horaria y una conversión a UTC; así podrás comparar eventos sin confundir el reloj del ordenador con el del broker.
La hora local no basta para identificar un instante
Apunta siempre fecha completa y zona u offset junto a la hora. La documentación de datetime de Python explica que una fecha-hora con zona puede situarse respecto a otras fechas-hora, mientras que una fecha-hora sin zona no contiene información suficiente para ubicarla sin ambigüedad (documentación de datetime). El estándar del IETF también contempla añadir el nombre de zona a una marca temporal para aportar ese contexto (RFC 9557).
En la práctica, anota de dónde sale cada dato: export del broker, plataforma o apunte manual. No deduzcas que todos usan el mismo reloj porque operes el mismo símbolo. Si quieres revisar cómo afectan los cambios de reloj a un backtest, tienes la guía de horario de verano en cTrader.
La ficha mínima de cada evento
Puedes mantener una fila por operación, modificación o revisión. Añade columnas separadas para estos datos:
- hora original, sin corregirla;
- zona documentada o offset visible en ese registro;
- equivalente UTC, claramente etiquetado;
- origen del dato y cuenta correspondiente;
- etiqueta de sesión, si la usas para organizar el diario.
La base de zonas horarias de IANA recopila el historial de hora local y se actualiza cuando cambian las reglas civiles, los límites de zona o los offsets (IANA Time Zone Database). Por eso, guardar únicamente una diferencia fija frente a UTC no conserva necesariamente las reglas aplicables a otras fechas. Una zona con nombre y una base de reglas mantenida permiten contextualizar mejor una conversión histórica.
Si la hora aparece dos veces, no elijas al azar
Al atrasar los relojes, una misma hora del reloj local puede repetirse. La documentación de zoneinfo de Python modela estas horas ambiguas con el atributo fold (documentación de zoneinfo). El IETF describe asimismo que las transiciones civiles pueden complicar la relación entre una hora local y un instante concreto (RFC 9557). Si el archivo no incluye offset ni otro dato que permita distinguir ambas ocurrencias, deja la conversión pendiente. Conserva el original y busca la convención horaria de la plataforma o un registro independiente cuya hora conozcas.
Imagina que tu libreta y el CSV muestran 01:20 en la fecha del cambio de hora. Que los textos coincidan no demuestra que fueran el mismo instante. Primero aclara zona y offset; después compara.
Convertir a UTC alinea instantes, pero no define por sí solo el inicio de una sesión ni cómo el broker construye las velas. Esas reglas pueden depender del instrumento y de la plataforma. Para reconstruir lo que hizo un cBot, consulta también cómo revisar su registro de decisiones. En realbacktesting, estudio de software de trading para cTrader, la reproducibilidad importa: puedes ver el enfoque en las notas de verificación.
Dudas habituales
¿Guardo solo UTC y borro la hora del broker?
No. Conserva ambas: el valor original y su fuente permiten volver a interpretar el registro. UTC facilita comparar instantes, pero no describe por sí solo la sesión de trading.
¿Un offset fijo equivale a una zona horaria?
No. El offset indica la diferencia respecto a UTC en un momento concreto; una zona con nombre puede aplicar reglas distintas según la fecha. La base IANA documenta y mantiene parte de ese historial.