Regímenes de mercado y calidad de los datos
Un backtest se hace sobre un mercado concreto en un periodo concreto. Si ese periodo era todo tendencia, o los datos que usaste no reproducen lo que habrías visto en vivo, el resultado describe otra cosa. Esta lección trata de las dos condiciones externas al sistema que más veces invalidan un backtest.
- Qué es un régimen de mercado y por qué un sistema puede funcionar en uno y morir en otro
- Los ejes principales de régimen: dirección, volatilidad y cambios estructurales del entorno
- Cómo asegurarte de que tu muestra cubre varios regímenes y cómo etiquetarlos
- Qué diferencia hay entre un replay con velas cerradas y uno con datos de tick, y qué afecta a tu setup
- Qué es un contrato continuo, qué son los ajustes de rollover y cómo pueden falsear niveles y stops
Qué es un régimen de mercado
Un régimen de mercado es un periodo en el que el precio se comporta de forma coherente en algunas dimensiones básicas —dirección, amplitud de los movimientos, forma de reaccionar a los niveles— y que se distingue de otros periodos donde ese comportamiento cambia.
La idea es sencilla y sus consecuencias no. Un setup de continuación tras retroceso necesita que haya algo que continuar: en una tendencia limpia produce entradas frecuentes y objetivos que se alcanzan. En un rango estrecho, el mismo setup entra en cada intento de ruptura y sale por stop en cada vuelta al centro. Las reglas no han cambiado. El mercado sí.
Por eso un backtest sobre un solo régimen, por muchas operaciones que contenga, mide el sistema en una sola condición. La esperanza matemática que obtienes es la esperanza en ese régimen. Cuando el régimen cambie —y cambiará— la esperanza real puede ser otra, y la única forma de saber cuál es haber probado también en ese otro entorno.
Un sistema no es bueno o malo. Es bueno o malo en un régimen. La pregunta útil es en cuál.
Los ejes del régimen
No hay una clasificación oficial. Estos son los ejes que más afectan a la operativa intradía en NQ/MNQ y que conviene tener presentes al etiquetar los días de tu backtest:
- Dirección: tendencia frente a rango. Ya definidos en el módulo 2. Para el backtest lo relevante es que el día o la semana se etiqueten por el timeframe de contexto de tu sistema, no por el de ejecución. Un día de tendencia en 1H puede contener horas de rango en 5 minutos.
- Volatilidad alta frente a baja. La volatilidad cambia el tamaño de todo: los barridos van más lejos, los stops técnicos se ensanchan, los objetivos se alcanzan (o se atraviesan) más deprisa. Un stop de 15 puntos que en un entorno tranquilo es holgado, en un día de alta volatilidad es ruido. Si tu sistema define el stop en puntos fijos, el régimen de volatilidad lo condiciona por completo; si lo define por estructura, al menos se adapta, aunque el tamaño de la posición cambie.
- Cambios estructurales del entorno. Hay periodos donde el comportamiento cambia por razones externas al gráfico: cambios en la política de tipos de interés, episodios de estrés general del mercado, cambios en la microestructura (por ejemplo, cómo se distribuye el volumen a lo largo de la sesión) o incluso cambios en la popularidad de una forma de operar. Estos cambios no se ven en un día; se ven comparando meses.
- Participación: sesiones y días. El NQ no se comporta igual en la apertura de Nueva York que en la sesión asiática, ni un lunes que un viernes de vencimiento. Si tu sistema opera un tramo horario concreto, tu muestra debe estar concentrada ahí, pero conviene saber cómo se comporta el resto del día para entender el contexto.
Algunas escuelas de order flow y de perfil de mercado clasifican los días por su forma (día de tendencia, día de rango, día de doble distribución, etc.). Es una taxonomía útil para etiquetar régimen, pero es una interpretación, no una medición objetiva: dos analistas pueden clasificar el mismo día distinto.
Cubrir varios regímenes y etiquetarlos
Dos consecuencias prácticas para tu backtest:
- La muestra debe cubrir tiempo suficiente para incluir regímenes distintos. Seis semanas casi nunca bastan aunque den muchas operaciones. Varios meses que incluyan al menos un tramo de tendencia clara, un tramo de rango y algún episodio de volatilidad elevada son un mínimo razonable para saber cómo reacciona el sistema a cada uno, aunque no para tener muestra grande en cada uno por separado.
- Cada operación del backtest lleva una etiqueta de régimen. En la hoja de registro (lección 4) añades columnas: dirección del día en el timeframe de contexto, volatilidad (alta/media/baja según tu criterio, definido de antemano), y cualquier condición externa relevante. Así, al terminar, puedes separar los resultados por régimen y ver dónde vive realmente la ventaja de tu sistema.
Este análisis por régimen es de lo más valioso que produce un backtest. Es frecuente descubrir que toda la esperanza positiva viene de un tipo de día, y que el resto de días el sistema es neutro o negativo. Eso no es una mala noticia: es una regla de filtro con lógica de mercado detrás, exactamente lo contrario del overfitting de la lección anterior. La diferencia es que el filtro nace de una variable que definiste antes (el régimen), no de mirar cuáles fueron las pérdidas.
Cuidado con la trampa inversa: descubrir que el sistema funciona 'solo en días de tendencia' y creer que ya está resuelto. Para aplicar ese filtro en vivo necesitas identificar el régimen antes de que el día termine, no después. Si tu criterio de 'día de tendencia' solo se puede aplicar a las 22:00, no es un filtro operable. Formula el criterio con la información disponible en el momento de la entrada, y pruébalo así.
Calidad de los datos: velas cerradas frente a tick
El segundo gran factor externo al sistema son los datos sobre los que haces el backtest. Un dato malo o inadecuado no produce errores llamativos: produce resultados plausibles que no habrías obtenido en vivo.
La primera distinción es cómo reproduce el replay el interior de cada vela:
- Replay con velas cerradas. La herramienta avanza vela a vela y te enseña cada una ya terminada. Sabes apertura, máximo, mínimo y cierre, pero no en qué orden se produjeron el máximo y el mínimo, ni cómo se movió el precio dentro. Para sistemas que deciden con la vela cerrada del timeframe de ejecución, es suficiente. Para sistemas que entran intravela (orden limit en una zona, stop de entrada en una ruptura), introduce ambigüedad: si la vela tocó tu entrada y tu stop, no sabes cuál ocurrió primero.
- Replay con datos de tick o de timeframe inferior. Reproduce el recorrido dentro de la vela, o al menos una aproximación (por ejemplo, construyendo la vela de 5 minutos a partir de velas de 1 minuto o de segundos). Resuelve la ambigüedad anterior con razonable fidelidad. Es más pesado, más lento y depende de que tu data feed histórico tenga esa granularidad.
Si tu sistema entra con orden limit en zona o con stop de entrada, y el objetivo o el stop están a pocas velas de la entrada, necesitas datos intravela para el backtest. Si no los tienes, adopta un criterio conservador y escríbelo: cuando una vela toca entrada y stop, la operación cuenta como pérdida. Prefieres un backtest pesimista a uno optimista.
Una segunda cuestión es qué hora muestran las velas. La zona horaria del gráfico define dónde empieza y acaba tu 'día' y por tanto dónde están el PDH, el PDL y los máximos de sesión. Si el backtest se hace con la vela diaria de la plataforma (que puede cerrar a una hora distinta de la que consideras el cierre de la sesión regular), tus niveles de referencia no son los mismos que en vivo. Fija la zona horaria y la definición de sesión antes de empezar y déjalas constantes.
Contrato continuo y ajustes de rollover
Los futuros vencen. El NQ tiene vencimientos trimestrales, como viste en el módulo 1, y cada tres meses la liquidez pasa de un contrato al siguiente en el rollover. Para hacer un backtest de un año necesitas cuatro contratos distintos pegados uno detrás de otro. Ese pegado es el contrato continuo.
Un contrato continuo es una serie de precios construida encadenando contratos sucesivos del mismo futuro, cambiando de uno al siguiente en una fecha de rollover determinada por una regla (por volumen, por interés abierto o por días antes del vencimiento).
El problema es que dos contratos sucesivos no cotizan al mismo precio. El de vencimiento más lejano suele tener un precio distinto (por el coste de financiación y los dividendos esperados del índice, en el caso del NQ). En el día del rollover, la serie continua muestra un salto que no es un movimiento del mercado: es el cambio de contrato. Las plataformas resuelven esto de dos maneras:
- Serie sin ajustar. Se muestran los precios reales de cada contrato y el salto queda visible. Los niveles históricos (un máximo de hace dos meses) están en su precio real, pero los movimientos que cruzan el rollover incluyen un desplazamiento artificial.
- Serie ajustada (back-adjusted). Se desplazan los precios de los contratos anteriores para eliminar el salto y que la serie sea continua. Los movimientos son fidedignos, pero los precios históricos ya no son los que se negociaron: un máximo de hace dos meses aparece varios puntos por encima o por debajo de donde estuvo realmente.
Qué significa para tu backtest:
- Si tu sistema usa niveles de referencia de días anteriores (PWH, PWL, máximos de semanas atrás), una serie ajustada los desplaza. El nivel que el mercado 'vio' estaba en otro precio.
- Si tu sistema mide movimientos en puntos (tamaño de stop, objetivos, distancias), una serie sin ajustar puede meter un salto artificial en cualquier medida que cruce el rollover.
- Las velas de los días de rollover, en cualquiera de las dos series, son sospechosas: el volumen está repartido entre dos contratos y el comportamiento intradía puede ser anómalo.
Sabe qué serie estás usando y anótalo en la hoja del backtest. Si tus reglas dependen de niveles históricos absolutos, prefiere la serie sin ajustar y sé consciente del salto; si dependen de distancias, prefiere la ajustada. Marca los días de rollover y, como mínimo, excluye las operaciones cuyo contexto dependa de niveles que cruzan uno. Las fechas y el método de rollover concretos dependen de tu plataforma y de su proveedor de datos — verifícalo en su documentación.
Ejemplo
Un alumno hace un backtest de ocho meses de un setup de reversión en MNQ, en 5 minutos, con entrada a mercado tras cierre de vela de confirmación. Etiqueta cada día por dirección en 1H y por volatilidad (rango del día anterior frente a la media de los veinte anteriores, criterio fijado antes de empezar).
Al separar los resultados, ve que en días de rango el sistema tiene una esperanza claramente positiva; en días de tendencia fuerte, negativa: las reversiones fallan porque el precio no vuelve. Dos meses del periodo fueron de tendencia casi continua y explican la mayor parte del drawdown.
También descubre que tres operaciones con resultado excelente ocurrieron en el día de rollover de marzo, sobre una serie ajustada. Al mirar la serie sin ajustar, el nivel de referencia que justificaba la entrada estaba varios puntos más abajo y la lectura del contexto habría sido otra. Las descarta.
El resultado global es algo peor que el inicial, pero ahora tiene algo que antes no tenía: un filtro de régimen con lógica de mercado, formulable antes de entrar, y una muestra limpia de artefactos de datos.
Error frecuente
Hacer el backtest sobre el periodo más reciente porque 'es el que se parece al mercado actual'. Es el error de régimen en su forma más natural: el alumno toma tres meses recientes, que casi por definición pertenecen a un solo régimen, y obtiene un sistema afinado para ese entorno justo cuando el entorno está a punto de cambiar (porque los regímenes cambian). La primera racha de pérdidas real llega cuando el mercado pasa a otro estado que el sistema nunca vio.
Lo reciente importa, pero como tramo de validación, no como único tramo de diseño.
Ejercicio
Abre el gráfico diario del NQ de los últimos doce meses y divide el periodo en tramos según dos criterios escritos de antemano: dirección (tendencia alcista, bajista, rango) y volatilidad (alta o baja, respecto a un criterio que definas, por ejemplo el rango medio de las últimas veinte sesiones). No hace falta precisión; hace falta que el criterio sea aplicable antes de conocer el resultado del día.
Después, averigua en tu plataforma qué tipo de serie continua muestra por defecto para NQ/MNQ (ajustada o sin ajustar), cuál es su regla de rollover y en qué fechas cambió de contrato en esos doce meses. Anótalo: es la primera línea de la hoja de tu backtest.
Qué debes recordar
- Un régimen es un periodo de comportamiento coherente del precio; un sistema tiene una esperanza distinta en cada uno.
- Los ejes principales: dirección (tendencia/rango), volatilidad (alta/baja), cambios estructurales del entorno y participación por sesión.
- La muestra debe cubrir regímenes distintos y cada operación debe llevar etiqueta de régimen, con criterio definido antes y aplicable en el momento de entrar.
- Replay con velas cerradas basta para decisiones a cierre; entradas intravela requieren datos de tick o, si no, un criterio conservador escrito.
- El contrato continuo introduce saltos de rollover; sabe si tu serie está ajustada, qué afecta a tus niveles y distancias, y marca los días de cambio de contrato.