Quant500 Academy

3. Backtesting sin programar, y el overfitting

Teoría 5: Qué es realmente el trading algorítmico

Prueba suficientes combinaciones de parámetros y es matemáticamente casi seguro que encontrarás una estrategia que habría funcionado espectacularmente bien en el pasado. Y que no significa absolutamente nada sobre el futuro.

Ya tenemos las piezas de una estrategia completa: señal, entrada, salida, position sizing. Antes de arriesgar un euro real hay un paso intermedio obligatorio, que ya mencionamos brevemente en el segundo nivel de este curso.

Es el backtesting: probar la estrategia contra datos históricos para ver cómo se habría comportado en el pasado. Este módulo profundiza en cómo hacerlo bien y, sobre todo, en cómo se hace mal casi sin darse cuenta.

Qué hace exactamente un backtest

Conceptualmente, un backtest recorre datos históricos día a día —o minuto a minuto, según la frecuencia de la estrategia—, aplicando exactamente las mismas reglas de señal, entrada, salida y position sizing que se aplicarían en tiempo real. Va registrando el resultado hipotético de cada operación simulada.

Al final del recorrido se obtienen métricas conocidas: la rentabilidad total, el ratio de Sharpe que vimos en el nivel anterior, o el drawdown máximo que veremos en el próximo módulo.

Hasta aquí parece un ejercicio relativamente mecánico y objetivo. El problema es que hay varias formas, todas ellas fáciles de cometer sin mala intención, de que un backtest arroje resultados mucho mejores de lo que la estrategia obtendría jamás en la realidad.

Look-ahead bias: saber lo que aún no se podía saber

La trampa más grave, y la que da más falsa confianza, es el look-ahead bias: usar, sin darse cuenta, información que en el momento real de la decisión todavía no estaba disponible.

Un ejemplo típico. Calculas una señal usando el precio de cierre del día, y simulas que la operación se ejecuta también al precio de cierre de ese mismo día. En la realidad no se puede saber cuál va a ser el cierre hasta que el día ha terminado. La ejecución real solo podría haberse hecho, como pronto, al precio de apertura del día siguiente.

Hay otro ejemplo, más sutil. Usar datos financieros de una empresa "tal y como se ven hoy", que a menudo incluyen revisiones y correcciones posteriores a la fecha original de publicación, en vez de los datos exactos que estaban disponibles en el momento histórico simulado.

Un backtest con look-ahead bias, aunque sea mínimo, puede inflar artificialmente los resultados de forma difícil de detectar sin revisar con mucho cuidado cada paso de la simulación.

Survivorship bias: la lista de los que quedan

Una segunda trampa habitual es el survivorship bias.

Consiste, por ejemplo, en construir el backtest usando la lista actual de empresas del S&P 500, aplicada retroactivamente a los últimos veinte años. El problema es lo que esa lista no incluye: docenas de empresas que estuvieron en el índice durante ese periodo y ya no existen. Quebraron, fueron adquiridas, o simplemente salieron del índice por bajo rendimiento.

Las empresas que sobrevivieron y prosperaron son, por definición, las que quedan en la lista de hoy.

Así que un backtest construido de esa forma sobreestima sistemáticamente la rentabilidad histórica real de haber invertido en "el S&P 500 de cada momento". Excluye silenciosamente a todas las que fracasaron por el camino.

Overfitting: memorizar el ruido

La trampa más traicionera de todas, sin embargo, es el overfitting (sobreajuste). Consiste en ajustar tanto los parámetros de una estrategia a un conjunto concreto de datos históricos, que termina memorizando el ruido específico de ese periodo en vez de capturar un patrón genuino y repetible.

Ahí está la afirmación del principio. Si se prueban suficientes combinaciones de parámetros sobre el mismo tramo de datos, es matemáticamente casi seguro encontrar alguna que hubiera funcionado espectacularmente bien en ese periodo concreto. Hablamos de cosas como:

Esa combinación ganadora aparece por pura casualidad estadística, sin que eso implique nada sobre su comportamiento futuro.

La defensa: datos que nunca se tocan

La defensa principal contra el overfitting es dividir los datos en dos tramos separados:

La señal de alarma es inequívoca. Si el rendimiento se degrada drásticamente al pasar del tramo in-sample al out-of-sample, gran parte del resultado "bueno" original era, en realidad, overfitting disfrazado de patrón real.

El resto de Quant500

Lo que estás aprendiendo, aplicado al índice todos los días:

La cartera del modelo, cada semana en tu correo

Cada sábado, su semana en un minuto: cómo fue, lo mejor y lo peor, y qué directivos compraron con su dinero. Y el día que el modelo se rehace, qué entra y qué sale. Es una simulación, no un consejo. Como mucho un correo a la semana, sin publicidad y sin cuenta; te das de baja con un clic. Lo hace una persona: Pol Gracia.

Cartera modelo con resultados simulados, no una recomendación personalizada. Tu correo se usa solo para esto: privacidad.

Detrás de la Academia y del resto de Quant500 hay una sola persona: Pol Gracia Serrahima.