Ni muy poco, ni demasiado. El equilibrio es fundamental. Este principio también se aplica al trading con la tendencia cada vez más común a sobreajustar o «pulir» excesivamente nuestros sistemas en función del histórico de datos. No obstante, en este afán por buscar la exactitud perfecta y el máximo rendimiento, corremos el riesgo de caer en un fenómeno conocido como sobreoptimización.
¿Qué es la sobreoptimización en el trading?
La sobreoptimización es una práctica llevada a cabo en los modelos estadísticos que implica ajustar excesivamente un modelo predictivo, generando soluciones sofisticadas y exactas para datos pasados, pero con rendimiento inferior ante nuevos datos. En el caso concreto del trading, se debe a que estas respuestas “perfectas” no consideran la volatilidad y la incertidumbre del mercado.
Sobreoptimización en el trading
Por ejemplo, y para ilustrarlo de manera sencilla, imagina que tienes una llave que abre todas las puertas del pasado, pero cuando intentas abrir la del futuro, falla. ¿La razón? Esa llave estaba tan afinada para los antiguos cerrojos que es incapaz de adaptarse a los nuevos.
En este artículo, analizaremos qué es exactamente la sobreoptimización y por qué debe ser considerada una amenaza, luego aprenderemos cuáles son sus causas y, por último, cómo identificarla.
Los peligros de la sobreoptimización
La sobreoptimización es uno de las cuestiones más peligrosas en las que pueden caer los traders, especialmente aquellos que usan sistemas de trading automáticos o algoritmos. Se refiere a la práctica de ajustar un sistema de trading hasta tal punto que se adapta perfectamente a los datos históricos, pero luego resulta ser poco efectivo en condiciones comerciales reales.
Esto provoca que en el backtestingtenemos un sistema increíblemente bueno, lo que nos hace arriesgar más y, por tanto, ir potencialmente a la quiebra de nuestra cuenta.
Causas de la sobreoptimización
Entre las causas principales de la sobreoptimización de un modelo de trading, nos podemos encontrar las siguientes:
Curva de ajuste excesiva (Overfitting): Esta sucede cuando el modelo se ajusta de manera demasiado precisa a los datos históricos, capturando no solo las tendencias subyacentes, sino también el ruido del mercado. Esto conduce a reglas de trading que funcionan bien en el pasado, pero que no tienen capacidad para funcionar en el futuro.
Selección de parámetros extensiva: Elegir demasiados parámetros u optimizarlos en exceso para lograr el mejor rendimiento histórico puede llevar a un modelo que es demasiado específico para el conjunto de datos con el que se entrenó, perdiendo efectividad en situaciones de mercados reales.
Uso inadecuado de datos de prueba: Si no separas los datos de entrenamiento de los datos de prueba puede llevar a una falsa sensación de eficacia del modelo. Es crucial tener un conjunto de datos “no visto” para validar la capacidad del modelo de adaptarse a nuevas condiciones de mercado.
Falta de robustez: La sobreoptimización también puede surgir de no probar el modelo en diferentes escenarios de mercado. Un modelo robusto debería mantener sus métricas en diferentes situaciones de mercado, con más volatilidad, con menos, con diferentes políticas monetarias.
En el siguiente gráfico puedes ver un ejemplo de cómo se vería estadísticamente la sobreoptimización:
Ejemplo de sobre optimización u overtfitting
Es importante recordar el papel fundamental que juegan las pruebas estadísticas en el mundo del trading cuantitativo. Estas permiten identificar casos de sobreoptimización y ayudan a diseñar sistemas más robustos que se pueden mantener durante períodos más largos sin cambios drásticos en sus rendimientos promedio.
¿Cómo detectar el overtfitting o sobreoptimización?
La regla empírica más sencilla para identificar el overfitting es comparar los resultados obtenidos en el período de prueba con los obtenidos en una muestra fuera de muestra (out-of-sample).
Si un sistema tiene un rendimiento significativamente peor en la muestra fuera de muestra comparado con la muestra dentro de la prueba (in-sample), entonces probablemente estés lidiando con overfitting.
A continuación, se describen algunas técnicas adicionales para detectar la sobreoptimización:
Curva de aprendizaje. La curva de aprendizaje muestra cómo mejora el modelo a medida que aumenta la cantidad antiguos datos utilizados para entrenar dicho modelo. Si ves que originalmente aumentan tus rendimientos hasta llegar a cierto punto donde empiezan a disminuir nuevamente, sobretodo durante pruebas out-of-sample, puede ser un caso de overfitting.
Prueba de robustez. Poner en marcha el sistema con múltiples pruebas de robustez en tus estrategias te ayudará a identificar si estás frente a un problema de overfitting. Podrías probar cambiar ligeramente los parámetros y ver si los resultados varían mucho, lo que podría indicar sopreoptimización.
Usar datos adicionales. Usa datos más allá del período que usaste para hacer tu backtesting y ve cómo reacciona tu sistema ante luego. Si el desempeño empeora notablemente, eso es otra señal roja de sobreoptimización. En esta línea, te recomiendo que hagas siempre un forward test.
Pruebálo en demo y tiempo real. Y cómo no, ponlo en marcha en tiempo real en una cuenta demo. Pocas pruebas tan robustas hay como esa.
Asegúrate de aplicar estas técnicas antes de poner en marcha tu sistema y te aseguro que no tendrás problemas.
En definitiva, la clave de un sistema es ponerlo a funcionar de acuerdo con las tendencias del mercado, no con los movimientos aleatorios del mismo. De hacer esto, no solo perderás tiempo a través de la apertura y cierre continuo de posiciones, producto de tal sobreoptimización, sino que también perderás dinero, porque recuerda que cada posición que abres o cierras (automática o no), es una comisión o spread, que pagas al broker.