Cómo evitar la sobreoptimización en tus estrategias

por | Oct 2, 2022 | Amibroker, Gratuito, Sistemas | 0 Comentarios

Como ya hemos comentado en más de una ocasión, la sobreoptimización o overfitting en inglés, es un peligro para todo el que quiere diseñar o construir sistemas de trading.

Y el problema es que es muy fácil hacernos trampas al solitario y pensar que hemos encontrado la gallina de los huevos de oro.

La sobreoptimización rompe tu sistema de trading y lo que es peor, te da falsas esperanzas de que éste va a funcionar bien en el mercado real y cuando lo empiezas a operar no dejas de perder dinero.

Es un problema muy frecuente cuando empiezas a desarrollar sistemas cuando ni siquiera conoces de su existencia.

Una vez alcanzas cierta experiencia en el proceso de creación de estrategias, añades un paso extra en el transcurso del diseño en el que tienes en cuenta la sobreoptimización y cómo evitarla.

Déjame aclararte que cuando la gente habla de sobreoptimización, se refiere al mal comportamiento que va a tener el sistema de trading en el periodo fuera de muestra o en la vida real. Vamos… cuando lo empieces a operar.

¿Y eso por qué pasa? En el diseño de un sistema, buscamos optimizar su rendimiento. Y lo podemos hacer mirando diferentes “funciones objetivo”, por ejemplo, una de ellas podría ser el beneficio versus máximo Drawdown (CAR/MDD). Ésta suele ser una buena métrica, mejor incluso que escoger la función objetivo del Net Profit para no caer en el error de escoger los parámetros que más ganan.

Piensa que como traders algorítmicos estamos buscando ciertas ventajas del mercado que podamos aprovechar. Nuestro éxito va a recaer en saber encontrar esos patrones recurrentes en el pasado con la esperanza de que se vuelvan a repetir en el futuro.

Desafortunadamente, la mayoría de los movimientos que se producen en el día a día son ruido y debemos evitarlo. Entonces el problema surge cuando diseñamos nuestro sistema explícitamente en función de los datos del pasado usando patrones que tienen en cuenta ese ruido y no una ventaja del mercado como tal.

Muchas veces encontraremos sistemas que sus curvas de resultados son realmente buenas sin apenas Drawdown. Signo casi inequívoco de estar mirando al futuro o bien de sobreoptimización.

Amibroker. Sistema sobreoptimizado o overfitting

Si encontráis o alguien os enseña una curva de rendimiento estupenda que no pierde nunca, lo primero que tenéis que hacer es dudar del sistema y comprobar que se ha diseñado teniendo en cuenta un periodo de muestra y otro fuera de muestra. Que no está mirando al futuro y que no se ha sobreoptimizado. En la imagen anterior tienes un ejemplo, puedes ver que la curva nunca desciende.

Tienes que tener claro que cuanto más sencillo, menos indicadores y menos parámetros estés utilizando mejor. El uso abusivo de éstos y reglas complejas harán que tu sistema se comporte de forma diferente en el mercado real.

No busques una curva de rendimiento perfecta. No existen. Y no me cansaré de repetirlo. Por mucho que alguien te diga que ha encontrado el sistema perfecto, no te lo creas.

Estoy cansado de ver curvas de sistemas sin apenas excursiones negativas. No son reales. No van a funcionar cuando pongas tu dinero sobre la mesa.

Tu trabajo es construir un sistema que funcione en el periodo de muestra y que se comporte de la misma forma o muy similar con datos que el propio sistema no ha visto con anterioridad. Esto es fundamental.

Un backtest no lo puedes dar por bueno si el sistema no ha ejecutado un mínimo de operaciones en el pasado. Cuantas más mejor. Óscar Cagigas suele decir más de 30.

Testea tu sistema en diferentes periodos en los que el mercado haya subido, haya bajado, se haya quedado lateral, en grandes crisis, en periodos de inflación, … y mira cómo se comporta en cada uno de ellos.

Optimiza el mínimo número de variables posibles. Piensa que cuántos más parámetros optimices, más estarás ajustando tu sistema a los datos históricos y más probabilidad tienes de que no funcione en el futuro.

Simplifica la estrategia. Eso hará que tu sistema tenga más opciones de comportarse bien con datos futuros.

Cuidado con el “Machine learning”. Es un concepto que ahora está muy de moda, pero tiene un gran peligro de caer en la sobreoptimización.

No pierdas mucho tiempo ajustando tu estrategia. Una estrategia buena funcionará desde el principio. Si pierdes muchas horas trabajando en ella, probablemente estés sobreoptimizando.

Podríamos resumir el artículo de hoy:

Cuando diseñes una nueva estrategia de trading, hazla simple para se pueda adaptar más fácilmente a los datos de fuera de muestra. Recuerda que buscamos ventajas estadísticas y queremos evitar el ruido.

▶️ 1. Ten suficiente histórico como para que tu estrategia haga muchas operaciones en el periodo in sample.

▶️ 2. Deja al menos un 20% de periodo OOS (Out Of Sample, fuera de muestra)

▶️ 3. Coge periodos en los que haya diferentes tipos de mercado y volatilidades.

▶️ 4. Limita tus reglas a 2-3 indicadores

▶️ 5. Intenta no optimizar más de 3 parámetros a la vez.

Hay más cosas que puedes hacer para evitar la sobreoptimización. Posiblemente las veremos más adelante, déjame un comentario y así me haces saber que te interesa este tema.

¿Y tú? ¿Qué haces para prevenir la sobreoptimización en tus diseños de estrategias?

La newsletter de MKTSignals

Si quieres estar al tanto de todas nuestras novedades, suscríbete a nuestra newsletter. ¡Es gratis!

¡Puntúa este artículo!

Total votos: 5. Promedio: 5

También te puede interesar:

¿Quieres acceder a todo el contenido Premium HOY?

+50 códigos de Amibroker

0 comentarios

Enviar un comentario

Loading...