Sobreoptimización en estrategias de trading: cómo evitarla
Sobreoptimización y curve fitting: demasiados parámetros, data snooping, in-sample frente a out-of-sample, walk-forward, pruebas de robustez y señales de alarma.
Una de las formas más seguras de construir una estrategia que luce brillante en el gráfico y decepciona en real es la sobreoptimización (overfitting). Cuanto más fáciles y rápidas son las herramientas de test, más fácil es caer en ella. Este artículo explica qué es la sobreoptimización, por qué ocurre y qué comprobaciones te ayudan a distinguir una ventaja real del ruido.
Qué es la sobreoptimización
La sobreoptimización (en trading se habla a menudo de curve fitting) ocurre cuando una estrategia aprende el ruido de los datos históricos en lugar del patrón que se repite. El resultado: un rendimiento excelente en los datos con los que se construyó y un rendimiento pobre en datos nuevos.
Los datos de precio contienen un poco de "señal" y muchísimo ruido aleatorio. Cada periodo histórico incluye eventos únicos: un día con un anuncio sorpresa de un banco central, una semana de volatilidad inusual, una tendencia especialmente larga. Una estrategia ajustada para aprovechar exactamente esos eventos se verá perfecta en retrospectiva, pero esos eventos no se repetirán de la misma forma.
Demasiados parámetros
Cada parámetro de una estrategia es una "perilla" que puedes ajustar: la longitud de la media móvil, la distancia del stop, la hora de inicio, el umbral de un indicador. Con dos parámetros es difícil ajustarse al pasado. Con diez, puedes "explicar" casi cualquier serie de datos.
Un ejemplo hipotético: una estrategia con una media móvil de 37 velas, un stop de 23 ticks, entradas solo entre las 09:47 y las 11:12, y solo cuando el RSI está por debajo de 41. Cada uno de esos números se eligió porque dio el mejor resultado histórico. La pregunta clave: ¿por qué 37 y no 35 o 40? Si no tienes una respuesta sensata aparte de "porque fue lo que mejor funcionó", es una señal de alarma.
Regla práctica: cuantos menos parámetros y más operaciones en el test, más fiable es el resultado.
Data snooping
Aunque cada estrategia individual tenga pocos parámetros, el problema vuelve cuando pruebas muchas ideas sobre los mismos datos. Prueba cien variantes y algunas se verán geniales por pura casualidad. Esto se llama data dredging o data snooping.
También se cuela sin querer: pruebas una idea, no funciona, cambias algo pequeño, vuelves a probar, y así sucesivamente. Tras cincuenta rondas, los datos ya se han "filtrado" en la estrategia, aunque nunca hayas lanzado una optimización automática. Apunta cuántas variantes has probado. Ese número importa casi tanto como el resultado.
In-sample frente a out-of-sample
La herramienta básica contra la sobreoptimización es separar tus datos:
- In-sample: los datos con los que desarrollas y ajustas la estrategia.
- Out-of-sample: datos que apartas y no tocas en absoluto durante el desarrollo.
Solo cuando la estrategia está "congelada" la ejecutas sobre los datos out-of-sample. Si el rendimiento se desploma, lo más probable es que haya sobreoptimización. Importante: si después vuelves atrás, cambias la estrategia y la pruebas de nuevo con los mismos datos, ya no son realmente out-of-sample.
Walk-forward testing
El walk-forward amplía la idea. Divides el histórico en ventanas consecutivas. En cada paso ajustas en una ventana y testeas en la siguiente; después desplazas ambas ventanas hacia delante y repites.
- Ajusta con el año 1 y testea en el trimestre siguiente.
- Avanza: ajusta con el nuevo periodo y testea en el trimestre posterior.
- Une todos los periodos de test en una sola curva.
La curva unida simula una situación realista en la que reajustas de vez en cuando y después operas un futuro que no conoces. Si se ve mucho peor que la optimización completa, es información importante.
Pruebas de robustez
Además de separar los datos, hay varias comprobaciones sencillas que cualquier trader puede hacer:
- Vecindario de parámetros: mueve cada parámetro un poco arriba y abajo. Una estrategia robusta muestra resultados similares en un rango amplio. Si solo funciona un valor y sus "vecinos" pierden, has encontrado un pico de suerte.
- Mercados relacionados: si la estrategia funciona en NQ, ¿cómo se comporta en ES? No tiene que ser idéntica, pero un colapso total plantea dudas.
- Distintas temporalidades: un pequeño cambio de temporalidad no debería convertir una estrategia rentable en perdedora.
- Distintos periodos: revisa cada año por separado. ¿El beneficio sale de un único tramo corto?
- Costes más duros: añade más slippage y comisiones más altas. Una ventaja real debería sobrevivir a eso. Más en backtesting frente a trading real.
- Quita las mejores operaciones: elimina las cinco operaciones más rentables. Si desaparece todo el beneficio, la estrategia depende de la suerte.
Señales de que tu estrategia está sobreoptimizada
- Una curva de capital casi perfectamente suave, sin periodos difíciles.
- Muchos parámetros con valores extrañamente precisos.
- Pocas operaciones en relación con el número de parámetros.
- Buen rendimiento solo en un rango de configuración muy estrecho.
- Resultados que cambian mucho cada vez que añades un poco más de histórico.
- Reglas especiales añadidas para "arreglar" pérdidas concretas del pasado.
- Una gran diferencia entre in-sample y out-of-sample.
Puntos clave
- Sobreoptimizar es aprender ruido en lugar de un patrón, y solo se ve genial en retrospectiva.
- Menos parámetros y más operaciones son una defensa básica.
- Guarda datos out-of-sample y no los toques hasta que la estrategia esté congelada.
- El walk-forward y las pruebas de vecindario de parámetros destapan los picos de suerte.
- Incluso una estrategia que supera todas las pruebas necesita forward testing y un dimensionamiento de posición cuidadoso.
Ningún test garantiza el éxito futuro, así que la etapa posterior al laboratorio importa igual. WeCore te permite ejecutar una estrategia o alertas en modo simulación con reglas de riesgo automatizadas, para ver cómo se comporta con datos nuevos antes de arriesgar una cuenta real. Para una introducción general, consulta qué es el trading algorítmico.