OPTIMIZANDO SISTEMAS (II): WFO o “la prueba del algodón” por Alejandro Lucas

Continuando con el proceso optimización de sistemas, vamos a explicar ahora para quien no la conozca, una técnica muy práctica para medir la fiabilidad de una optimización. Efectivamente, pongámonos en la situación de que tenemos un sistema desarrollado y, tras optimizarlo, hemos obtenido resultados prometedores. Dado que, como vimos en el anterior artículo, un backtest positivo puede no ser garantía de un sistema que luego funcione, en este momento podríamos preguntarnos:

¿Son estos resultados, además de buenos, fiables? Esto es ¿Puedo creer que mi sistema será capaz de hacer en el futuro lo mismo que en el backtest?

Para responder, necesitaríamos ser capaces de medir lo que en estadística se llama la robustez del modelo, su capacidad de dar resultados similares en circunstancias del mercado que no sean exactamente las mismas que hubo anteriormente.

Una forma de comprobar esta robustez sería tener el sistema en observación en una cuenta en simulado, para testear su comportamiento y los resultados que produce. Pero ¿Hay alguna forma de “adelantar” este proceso? ¿Podemos intentar pronosticar esta robustez-fiabilidad a priori?

Nosotros empleamos la técnica Walk Forward Optimization (WFO). Vamos a ver cómo funciona.

Se trata de optimizar la estrategia sobre un período pasado que no cubra todo el histórico de cotizaciones del que disponemos. Lo llamaremos “dentro de muestra”. Con los parámetros obtenidos testeamos la estrategia durante un período posterior al que habíamos optimizado, que llamamos “fuera de muestra”. Así emulamos la ejecución en live, pues estos últimos resultados no han sido optimizados. Ejecutamos este proceso de forma reiterativa, desplazando la ventana de tiempo “dentro de muestra” hasta cubrir la que estaba fuera. Finaliza el proceso tras haberlo realizado sobre todo el periodo del que tengamos cotizaciones. Veámoslo gráficamente para mayor claridad:

En el ejemplo del gráfico anterior, con 1 año de cotizaciones históricas, haríamos 8 optimizaciones de 4 meses y testearíamos durante el mes posterior cada una de ellas. Obtendríamos así 8 meses de resultados que en ese momento hubieran sido “futuros”. Por tanto, ya tenemos con qué comparar.

TradeStation nos ofrece una herramienta estupenda (la mejor que yo conozco) para desarrollar este proceso:

Podemos definir unos “criterios de aprobación/fallo” del test, y una función de fitness casi tan complejos como queramos

También podemos optimizar una matriz de combinaciones entre en cuantos tramos dividimos el periodo histórico (número de “Runs”) y el porcentaje de este periodo que testearemos fuera de muestra. La “zona” donde se sitúen los resultados más óptimos nos puede ayudar a decidir cada cuanto tiempo deberíamos reoptimizar nuestro sistema…

¡Y otras muchas funcionalidades súper prácticas que os Invito a descubrir sobre esta interesante herramienta!

Alejandro Lucas