Backtesting honesto: sobreajuste, lookahead y supervivencia
Tienes una curva de capital que sube hacia la derecha. Sharpe por encima de 2, un drawdown máximo con el que podrías vivir, unos cientos de operaciones. Costó un fin de semana de ajustes y el resultado se siente merecido.
Probablemente no valga nada, por motivos mecánicos y no por ningún fallo de habilidad. Un backtest no pone a prueba una estrategia. Mide lo bien que una regla describe un conjunto de datos que ya has visto. Son afirmaciones distintas, y la segunda no sostiene ninguna conclusión sobre dinero. Si tienes una estrategia de la que estás orgulloso, lee el resto pensando en ella.
El sobreajuste no es descuido, es un problema de contar
El planteamiento habitual es que el sobreajuste ocurre cuando añades demasiados parámetros. Eso es parte. La parte mayor es cuántas veces miraste.
Cada prueba que lanzas contra el mismo conjunto de datos es un intento. Cambias un lookback y vuelves a lanzar: intento. Añades un filtro y vuelves a lanzar: intento. Pruebas otro activo porque el primero decepcionó: intento. Después de 200 intentos sobre el mismo histórico, el resultado con mejor aspecto es lo que esperarías solo del ruido, exista o no una ventaja.
Con un umbral de significación del 5 %, 200 intentos independientes producen por azar unos 10 resultados «significativos» espurios. Después seleccionas el mejor, que es exactamente el procedimiento de selección que garantiza que te quedes con un falso positivo.
El número de intentos casi nunca aparece en el informe de nadie, y debería ser la primera cifra reportada. Registra cada configuración que pruebas, incluidas las abandonadas, y trata el resultado final como una extracción de esa búsqueda entera.
Y el recuento es mayor que tus propios experimentos. Si estás probando un cruce de medias móviles en el S&P, no eres el primero. Miles de personas han probado variantes de esa idea sobre el mismo histórico, y las que fallaron nunca se publicaron. Heredaste una búsqueda que no hiciste.
El sesgo de lookahead se esconde en código corriente
Lookahead es usar en el momento t información que no estaba disponible en el momento t. Es fácil de enunciar y se viola constantemente.
Usar el precio de cierre como señal y como ejecución. Tu regla se dispara con el cierre de hoy y ejecutas al cierre de hoy. En operativa real no puedes conocer el cierre hasta que ha ocurrido. La brecha es pequeña en velas diarias líquidas y enorme en cualquier cosa intradía o poco líquida.
Datos revisados. Las cifras económicas se revisan. Una base de datos que muestra el valor revisado final en la fecha original permite que tu regla use un número que no existió durante semanas.
Indicadores calculados sobre la serie completa. Cualquier normalización, ranking o z-score calculado sobre todo el histórico inyecta información futura en cada vela temprana.
El síntoma es una curva de capital sospechosamente suave, con alta tasa de acierto y drawdowns poco profundos. Esa forma suele significar que al sistema le están dando las respuestas en lugar de hacer predicciones.
La supervivencia es una propiedad de tus datos, no de tu código
Si tu universo es la lista de activos de hoy, ya has excluido todo lo que murió. Acciones excluidas de cotización, tokens fracasados, exchanges colapsados, pares que dejaron de negociarse. Todos ellos estaban en el universo invertible en su momento y faltan en tu test.
En cripto esto es grave. El conjunto de tokens con un histórico de precios completo de varios años es una muestra fuertemente seleccionada: los que sobrevivieron. Una estrategia probada solo sobre supervivientes parece robusta porque la quiebra se eliminó de la muestra.
Los costes no son un error de redondeo
Las fricciones se añaden al final, si es que se añaden, y cambian las conclusiones más que cualquier parámetro. Incluye el spread que pagas de verdad y no el punto medio cotizado, el slippage que escala con la volatilidad y el tamaño, y las comisiones, el funding o el swap de las posiciones mantenidas.
Un sistema que sobrevive con coste cero y muere con coste realista nunca fue un sistema. Era una descripción del precio medio. Duplica tus fricciones supuestas y mira qué queda. Si la ventaja desaparece, estaba dentro del spread.
Qué aspecto tiene un test honesto
Divide los datos antes de empezar y no toques la parte reservada. Desarrolla sobre un segmento y luego lanza una vez sobre datos que nunca has examinado. Una vez. Si vuelves y ajustas después de ver ese resultado, la muestra reservada está contaminada y ya no tienes ninguna.
Prefiere walk-forward. Ajusta sobre una ventana, opera la siguiente, avanza. Se aproxima a cómo habrías operado de verdad y deja al descubierto las estrategias que solo funcionaron en un régimen.
Reporta el número de intentos, las fricciones y la sensibilidad a los parámetros. Un resultado que sobrevive a un cambio del 10 % en todos los parámetros vale más que un resultado mejor que no lo hace.
Y después espera que el rendimiento real sea peor de todos modos. Cierta degradación es normal incluso con metodología limpia, porque los mercados cambian y porque no puedes eliminar del todo tu propia selección.
Por eso los registros hacia delante importan más que los backtests. Indikora hashea cada señal publicada con SHA-256 y la encadena a la anterior, así que el historial público no se puede editar ni fechar hacia atrás, y publica la calibración de probabilidad: cuando dice 60 %, puedes comprobar con qué frecuencia eso resultó correcto. Ninguna de las dos cosas es posible con un backtest, que por definición se escribe a posteriori.
La estrategia que ajustaste durante un fin de semana puede seguir siendo buena. Pero todavía no lo sabes, y la posición honesta es decirlo en voz alta antes de dimensionar nada sobre ella.
Un backtest mide lo bien que una regla describe el pasado, y solo los resultados fuera de muestra sobre datos que nunca tocaste dicen algo sobre el futuro.
Compruébalo
Anota el número de configuraciones que probaste antes de quedarte con tus reglas actuales, junto con las fricciones que asumiste, y mantén esa entrada unida a la estrategia para que los resultados futuros se juzguen contra ella.
Diario de tradingIndikora tiene un simulador gratuito, repetición de velas y un coach de comportamiento que lee tus propias operaciones.
Abrir la app