La Trampa del Sobreajuste
Si le das a un modelo de machine learning suficientes parámetros, encontrará patrones en el ruido aleatorio. Lo mismo ocurre con el desarrollo de estrategias de trading, solo que de forma menos evidente. Una estrategia con 12 parámetros ajustables —umbral de entrada, umbral de salida, período de lookback, filtro de volumen, filtro de hora del día, entre otros— tiene suficientes grados de libertad para ajustarse casi perfectamente a los datos históricos. El problema es que esos parámetros ajustados capturaron ruido específico del período histórico, no una relación de mercado duradera.
Puedes comprobarlo directamente. Toma cualquier estrategia que luzca excelente en un backtest y desplaza los parámetros un 10-20%. Si el rendimiento se derrumba, la estrategia está sobreajustada. Una estrategia robusta debería degradarse gradualmente ante cambios en los parámetros, no caer en picado. Esa caída abrupta te indica que la estrategia encontró un nicho estrecho de datos históricos que funcionó por casualidad, no una ventaja estructural amplia.
El Sesgo de Supervivencia en los Datos
La mayoría de los backtests en cripto se realizan sobre activos que existen actualmente y se negocian de forma activa. Sin embargo, una enorme cantidad de tokens han sido creados, negociados durante algún tiempo y luego prácticamente desaparecidos, perdiendo más del 99% de su valor o siendo retirados de los exchanges. Cuando haces un backtest de una estrategia sobre «los 50 tokens con mayor capitalización de mercado», estás seleccionando tokens que sobrevivieron. Tu estrategia nunca se enfrenta a los que llegaron a cero.
Esto importa porque muchas estrategias de momentum lucen excelentes en los backtests. Comprar lo que sube, vender lo que baja. Pero en un conjunto de datos con sesgo de supervivencia, los activos que subieron incluyen a los futuros supervivientes, mientras que los que bajaron y eventualmente llegaron a cero quedan excluidos del dataset. El alpha de la estrategia es parcial o totalmente un artefacto de la selección de datos.
La solución son datos libres de sesgo de supervivencia, que incluyan activos retirados y tokens muertos. Estos datos son más difíciles de obtener y más costosos, pero ofrecen resultados de backtest considerablemente más realistas.
Slippage e Impacto en el Mercado
Los backtests suelen asumir que puedes ejecutar al precio visible en el momento de la señal. En la práctica, el acto de operar mueve el precio. Si tu estrategia genera una señal de compra a $100, para cuando tu orden llega al exchange y se ejecuta, podrías pagar $100.15. En una sola operación, eso es trivial. A lo largo de miles de operaciones, es la diferencia entre una estrategia rentable y una perdedora.
El problema del slippage se agrava en estrategias que operan durante períodos de alta volatilidad —cuando quieres operar es exactamente cuando la liquidez se reduce— y en estrategias que operan activos menos líquidos. Una estrategia que luce excelente en un backtest sobre DOGE/USD con slippage cero asumido podría ser físicamente imposible de ejecutar a esos precios, porque el libro de órdenes no puede absorber el tamaño de la posición sin mover el precio de forma significativa.
Un modelado realista del slippage requiere datos reales del libro de órdenes, no solo velas OHLCV. Si estás haciendo backtesting con datos de velas y asumiendo ejecución al precio de cierre, estás siendo optimista por un margen que frecuentemente supera toda la ventaja de la estrategia.
Cambios de Régimen
Los mercados cambian. Los regímenes de volatilidad se desplazan, las correlaciones se rompen, entran nuevos participantes, cambian las regulaciones y el contexto macroeconómico evoluciona. Una estrategia calibrada para el mercado alcista de 2020-2021, con sus bajas tasas de interés y masivas entradas de capital minorista, se comportará de forma diferente en un entorno de tasas más altas y con una composición distinta de participantes.
La sutileza está en que los cambios de régimen solo son evidentes en retrospectiva. No puedes saber de antemano cuándo cambiará la estructura de mercado de la que depende tu estrategia. Lo que sí puedes hacer es probar tu estrategia en múltiples regímenes si los datos están disponibles, y monitorear el rendimiento en tiempo real frente al rendimiento esperado para detectar cuándo algo ha cambiado.
El Sesgo de Anticipación (Look-Ahead Bias)
Este es el bug más insidioso en el código de backtesting. El look-ahead bias ocurre cuando tu estrategia utiliza inadvertidamente información que no habría estado disponible en el momento de la operación. Ejemplos comunes: usar el precio de cierre diario para tomar una decisión en la apertura del mercado, usar un indicador que se revisa tras su publicación inicial, o usar datos que llegan con retraso (como datos de reservas de exchanges que pueden tener un desfase de reporte de 1 hora).
En el código, el look-ahead bias suele aparecer como un error de índice desplazado en uno. Si tu señal en el tiempo t usa datos del índice t en lugar de t-1, estás mirando hacia adelante. Es fácil de introducir y difícil de detectar por inspección. La mejor defensa es ejecutar tu motor de backtest en modo estrictamente orientado a eventos, donde la estrategia solo ve datos que ya han sido «publicados» según marcas de tiempo realistas.
Lo Que Sobrevive la Transición al Trading en Vivo
Las estrategias que tienden a funcionar en el trading en vivo comparten ciertas propiedades. Tienen pocos parámetros. Se basan en una lógica económica clara, no solo en un patrón en los datos. Se degradan gradualmente ante cambios en los parámetros. Han sido probadas en múltiples períodos de tiempo y condiciones de mercado. Y tienen en cuenta costos de ejecución realistas.
Nada de esto garantiza el éxito, pero mejora las probabilidades. El resultado por defecto —que una estrategia con backtest falle en el trading en vivo— es la tasa base que intentas superar. Entender exactamente por qué fallan las estrategias te da una forma sistemática de someter tu trabajo a pruebas de estrés antes de arriesgar capital real.