Les presento una interesante aportación de uno de los lectores con los que más he debatido estas controvertidas cuestiones en las últimos meses: Polxx. Un incansable investigador autodidacta que lleva dos años operando por cuneta propia y se ha horneado en este complejo mundillo a pie de obra: Webs, foros, kedadas y, sobre todo, con cientos de horas de incansable trabajo personal, tejiendo con entusiasmo las frágiles velas para navegar en el océano de lo indeterminado.
Aunque no nos conocemos personalmente, he leído con verdadero placer algunas de sus investigaciones sobre sistemas antitendenciales y sus minuciosos análisis centrados en la selección de parámetros óptimos sobre la técnica del walk forward.
Confieso que en algunos puntos hemos defendido posturas diferentes. Pero en lo principal; la necesidad de enfrentarse al mercado con rigor, perseverancia y profundos conocimientos sobre las plataformas, estrategias y mercados en los que estamos operando, considero que estamos plenamente de acuerdo.
En este artículo vamos a enfocar un tema que pocas veces, o ninguna, se ha mencionado. Se ha hablado mucho sobre que sistema es mejor aplicar, sobre volatilidades y mercados, de la aplicación de filtros que mejoran los resultados. Pero nunca he oído nada acerca de cuanto periodo de tiempo hay que tomar a la hora de optimizar los parámetros de un sistema.
Partimos del echo de que todo sistema automático tiene unos parámetros. Pueden ser mas o menos, pero inevitablemente siempre hay parámetros.
Y, lógicamente, lo que buscamos son los parámetros que en el futuro darán los mejores resultados.
La primera opción seria elegir esos parámetros intuitivamente, o mediante planteamientos lógicos. No parece una buena idea, al menos no es un método muy científico que digamos.
La siguiente opción es la mas común, que consiste en tomar un histórico de datos pasados y optimizar el sistema. Es muy lógico pensar que los parámetros que mejor se han comportado en el pasado, son los mas próximos a los parámetros que mejor se comportarán en el futuro.
Pero, ¿cuánto periodo de tiempo debemos tomar para hacer las optimizaciones? Supongamos que tomamos solamente 1 mes, entonces analizaremos datos muy recientes, los cuales nos dan una información muy actual de como se comporta el mercado. Sin embargo tenemos muy poco histórico como para fiarnos de los parámetros obtenidos, y estaremos haciendo sobreoptimización.
Supongamos ahora que tomamos 5 años de datos a la hora de optimizar, entonces ya no tenemos el problema de la sobreoptimización. Hay suficientes datos como para que se hagan muchas operaciones y nos fiemos de los parámetros obtenidos. Pero por contra, estamos tomando datos demasiado caducados, y el mercado hoy en día no se comporta como hace 5 años, y ya no nos es válido.
Por tanto, ¿cómo elegimos el periodo de datos?
Planteo 2 alternativas:
La idea es tomar por ejemplo 6 meses de histórico, optimizar parámetros y aplicar esos parámetros en los datos de la semana posterior a esos 6 meses, anotar operaciones, volver a tomar 6 meses de histórico, pero avanzando 1 semana hacia delante, y repetir el proceso hasta completar unos 6 años de datos. Admito que es un proceso que tarda varios dias en calcularse aun teniendo un pc muy potente. Pero si queremos hacer sistemas lo más científicamente posible, no podemos pasar por alto estos cálculos.
Si empleamos Visual Chart, hacer eso a mano seria demasiado complicado, así que lo haríamos tomando 6 meses, optimizando parámetros y aplicándolos no a una semana, si no a 1 mes completo posterior a esos 6 meses. De ese modo tenemos menos precisión pero hacemos menos optimizaciones.
Una vez analizado el resultado de hacer un walk forward de 6 meses repetimos la operación pero esta vez con 7 meses, después 8, 9... Hasta que finalmente comparamos los resultados de todas las optimizaciones hechas, para hallar el mejor periodo de datos a considerar en las optimizaciones. Y no sólo encontramos el mejor periodo a tomar, si no que además los datos estadísticos están sacados de la parte derecha del gráfico, es decir que son los mismos que nosotros hubiéramos tenido en caso de aplicar el sistema. Por contra en una optimización clásica, los resultados son engañosos, ya que hemos aplicado los parámetros conociendo el histórico de datos, y eso siempre dará mejores resultados, pero que son engañosos.
Sin embargo, esta alternativa de "auto-optimización externa", plantea un problema añadido cuando el sistema se compone de muchos parámetros y filtros. Por ejemplo, en algunos sistemas primero debemos optimizar los parámetros básicos que lo componen y después, manteniendo fijos esos parámetros, optimizar los parámetros de los filtros. Así que en sistemas medianamente complejos es imposible dejar esta tarea al procedimiento de walk forward.
Y para finalizar, un ejemplo. En el eje X vemos los días que se han tomado para hacer las optimizaciones desde 20 hasta 740, y en el eje Y se ve el ratio obtenido después de aplicar los parámetros, considerando ratio = Ganancia media anual / mayor serie de pérdidas.
Se han tenido en cuenta comisiones y deslizamientos reales. El sistema es continuo y tan solo utiliza 1 parámetro, y se ha aplicado en EuroStoxx50 desde 2000 hasta 2007, o sea 8 años.
Se observa una clara pirámide que apunta a 380 días (unos 18 meses) como la mejor elección de días a tomar para optimizar parámetros. Lo que significa que la pauta que este sistema trata de explotar para sacar beneficio tiene una caducidad de año y medio, que es lo que tarda el mercado en renovarla.
Evidentemente, cada sistema tendrá una fase de adaptación diferente.
Lo que sin duda esta claro, es que en el mundo de los sistemas automáticos hay muchos caminos por recorrer, tantos que parece algo inacabable...
© Polxx, 2008
E-mail del autor: polxxg@gmail.com