Has encontrado un resultado claro: tu estrategia de criptomonedas obtiene la mayor parte de su rendimiento entre las 13:00 y las 14:00 UTC. Has comprobado las comisiones, vuelto a ejecutar el backtest y probado la señal en paper trading. Ahora estás preparando una versión para acciones de EE. UU. y la hora más fuerte parece ser de 09:30 a 10:30, hora de Nueva York.
Antes de confiar en cualquiera de los dos resultados, comprueba qué hizo el reloj. El horario de verano de EE. UU. desplaza la apertura de Nueva York una hora con respecto a UTC. Si tus variables, etiquetas de sesión y órdenes usan distintas referencias horarias, quizá la estrategia esté aprovechando un límite del calendario en vez de un patrón de mercado repetible.
No hace falta descartar la investigación sobre patrones horarios. Tienes que definir a qué reloj se refiere tu hipótesis y hacer que todas las partes del backtest lo usen de forma coherente.
Primero, define qué significa esa hora
«La primera hora» parece una definición precisa hasta que especificas qué reloj tomas como referencia. Podría ser los primeros 60 minutos desde la apertura de la NYSE, de 09:30 a 10:30 según la hora civil de Nueva York o un intervalo fijo en UTC. Estas definiciones coinciden durante parte del año y divergen cuando cambia el horario de verano.
Para la hipótesis sobre acciones, usa la hora local de la sesión bursátil: las 09:30, hora de Nueva York, son las 09:30 tanto si Nueva York está en EST como en EDT. Para la hipótesis sobre criptomonedas, quizá la variable que buscas sea una hora fija en UTC. Las criptomonedas se negocian las 24 horas, así que no hay una campana de apertura del mercado que sirva de referencia.
Deja escrita la definición antes de ajustar parámetros. «Operar durante la primera hora desde la apertura de la sesión regular» se puede poner a prueba. «Operar durante la hora en que mejor funciona la señal» invita al optimizador a elegir una referencia horaria junto con la estrategia.
Dónde se cuelan las discrepancias horarias
Supón que tus datos de acciones están guardados en UTC, tu código de variables agrupa filas por hora UTC y tus reglas de ejecución abren posiciones a las 09:30, hora de Nueva York. Cuando cambia el horario de verano, la apertura del mercado pasa de las 14:30 UTC a las 13:30 UTC. Una variable etiquetada como «primera hora» según su intervalo UTC ahora corresponde a otro tramo de la sesión.
Hay una trampa parecida al crear barras a partir de marcas de tiempo. Si haces el remuestreo en UTC y luego conviertes las etiquetas a la hora de Nueva York, puedes obtener límites inesperados, sobre todo en el cambio de primavera, cuando una hora local no existe, y en el de otoño, cuando una hora local ocurre dos veces. Una marca de tiempo como las 01:30, hora local, es ambigua ese domingo de otoño si no incluye un desfase UTC o no está expresada en UTC.
El calendario también puede influir en tu resultado con criptomonedas. Una estrategia basada en horas UTC puede coincidir con la actividad del mercado estadounidense durante meses y luego parecer desplazarse cuando cambian los relojes en EE. UU. Eso no invalida la estrategia, pero sí cambia lo que puedes afirmar. Quizá hayas medido un patrón horario fijo en UTC que a veces coincide con la apertura de EE. UU., en vez de un efecto ligado a esa apertura.
Incorpora el reloj de sesión a la prueba
Conserva las marcas de tiempo de los eventos en UTC como registro canónico. Deriva los campos de sesión local a partir de una zona horaria con nombre, como America/New_York, usando una base de datos de zonas horarias que contemple los cambios históricos de las reglas. No fijes «UTC menos cinco» o «UTC menos cuatro»: ninguno de esos desfases define la hora de Nueva York durante todo el año.
| Decisión | Ejemplo con acciones | Ejemplo con criptomonedas |
|---|---|---|
| Reloj de la hipótesis | Minutos desde la apertura de la sesión regular | Hora UTC del día |
| Fuente de las sesiones | Calendario bursátil, incluidos festivos y cierres anticipados | Calendario UTC continuo |
| Horario de las órdenes | Siguiente evento ejecutable después de la señal | Siguiente evento ejecutable después de la señal |
Después, prueba por separado las semanas en torno al cambio de hora. Compara el rendimiento antes y después de cada cambio al horario de verano e inspecciona si el intervalo ganador sigue ligado a la sesión del mercado o permanece fijo en UTC. Si buscaste entre muchas horas, fechas y desfases para encontrar el mejor resultado, incluye esa búsqueda en el cálculo del sobreajuste: la elección del reloj fue otra prueba más.
Una zona horaria es un conjunto de reglas, no una cantidad de horas que se resta. Guarda los eventos en UTC y deriva la hora local del mercado cuando la necesites.
Qué debería confirmar tu prueba en paper
Cuando pases la estrategia a paper trading, registra tanto la marca de tiempo UTC del evento como el minuto relativo a la sesión. Así podrás detectar rápidamente si la estrategia cree que la apertura es a las 09:30, pero en realidad activa las órdenes a las 10:30, hora local. Comprueba también los festivos y los cierres anticipados: si aplicas a todos los días de la semana el horario de una sesión normal, acabarás inventando operaciones en días en que el mercado está cerrado.
Y cuando cambien los relojes, resiste la tentación de «arreglar» un resultado desplazando la señal hasta que la curva de capital vuelva a parecerte familiar. Primero verifica la hipótesis declarada, el calendario y el horario de las órdenes. Si el resultado se desplaza junto con la sesión del mercado, has aprendido algo sobre el comportamiento de las sesiones. Si permanece en la misma hora UTC, has aprendido otra cosa. Tu backtest debe conservar esa distinción.
← Todos los artículos


