Damos la bienvenida a David (MartinG), estupendo conocedor del interminable proceso de aprendizaje al que nos somete la operativa sistemática y asiduo contertulio en los habituales foros sobre estos temas. También es el autor de un cuidado blog: Espacio de Trading, que merece ser visitado con regularidad. El artículo con el que inicia su colaboración en esta web es una muestra del rigor con el que hay que planificar el proceso de calibración de un sistema antes de enfrentarlo a la dura realidad de los mercados.
Una vez que tenemos la estrategia desarrollada el siguiente paso es hacer una optimización de parámetros, con esto conseguimos identificar cuales de estos parámetros se hubieran ajustado mejor al mercado en el que se quiere probar la estrategia. El problema que conlleva hacer este ajuste de parámetros es que podríamos estar adaptando las variables de tal forma que las probabilidades de obtener esos resultados en el futuro fueran nulas, esto es conocido como “sobreoptimización” o curve-fitting. Cuando finalizamos este ajuste las preguntas que nos deberíamos de hacer son :
¿Seguirán funcionando igual de bien que lo han hecho en el pasado esta combinación de parámetros?
¿ Como se podría comportar el sistema en el caso de que haya cambios en la tendencia o en los niveles de volatilidad ?
¿ Los riesgos que arroja este sistema serán fruto de una sobreoptimización o es posible que se aproximen a la realidad?.
Para intentar responder a estas preguntas vamos a ver como podríamos hacer una optimización no realista y una optimización realista con el método de testo Walk Forward.
Optimización “ No realista” (El periodo optimizado corresponde al periodo completo de pruebas). . En este caso se optimiza el periodo completo que se tiene para hacer las pruebas sin hacer ninguna prueba con datos externos. Es una optimización total mete subrealista ya que los parámetros están exactamente ajustados al histórico, el peligro de haber obtenido unos resultados difícil de repetir en pruebas reales es muy alto.
Optimización “realista” con el Método de Walk Forward.
Este es el método mas efectivo para comprobar si la optimización puede ajustarse o no a los posibles resultados que se puedan obtener con el sistema. Consiste en dividir el histórico por partes y comprobar a través de periodos optimizados como se hubiera comportado el sistema con esos parámetros en pruebas externas.
A continuación subo un ejemplo de este método aplicado a una estrategia ficticia desde 1995 hasta 2006.
En este ejemplo dividimos el histórico en periodos iguales de un año. Durante los 3 primeros años 1995 , 1996 y 1997 hacemos una optimización de parámetros , y estos mismos sin ninguna modificación los aplicamos al año 1998. El resultado que arrojen estos parámetros en 1998 nos darán una aproximación mucho mas realista de lo que podríamos haber obtenido aplicando este sistema. Para conocer los parámetros que deberíamos de utilizar en el año 1999 deberíamos de hacer una optimización sobre los años 1996, 1997 y 1998 y quitando el ultimo año de optimización sucesivamente iríamos probando los nuevos parámetros a lo largo de los años del histórico.
Al finalizar la prueba completa (desde 1995 hasta 2006) tendríamos un periodo de 9 años como si hubiéramos aplicado la estrategia en tiempo real.
Por último para medir el “nivel de optimización” del sistema aplicamos un índice de acoplamiento que nos servirá para conocer el porcentaje de diferencia que hay entre las pruebas optimizadas “in sample” y los periodos externos out “out of sample”. Para construir este índice lo único que debemos de hacer es dividir el porcentaje de beneficios del periodo out of sample entre el porcentaje de beneficios del periodo “in sample”, como ejemplo si tenemos un beneficio de un 40% “out of sample” y un beneficio de un 80% “in sample” el indice de acoplamiento será del 50%.
En primer lugar felicitarle por el articulo, es muy interesante, me ha gustado mucho el "indice de acoplamiento", una buen indicador si señor. Seguidamente me gustaria realizarle algun comentario.
Desde mi punto de vista la esencia de la bolsa es su naturaleza mutante, su continua metamorfosis, puro dinamismo. Aunque todavia no tengo conclusiones de mis investigaciones tengo la impresion de que estas mutaciones son cada vez mas rapidas siendo los equilibrios cada vez menos duraderos, en gran parte debido a la gran cantidad de herramientas computacionales que existen hoy en dia ya sean para analisis o para ejecucion de estrategias.
Usted ha utilizado la regla 3x1 para la aplicacion de optimizaciones en out of sample. La probabilidad de repetirse las combinaciones de los primeros periodos de dicha optimizacion, 1º y 2º de 3, podría ser menor de lo deseado. La pregunta que me hago últimamente y que expongo aquí es porque no aplicar el 1x1 con un rango parametrico mas estrecho en las optimizaciones. La idea es bien sencilla, apostar a la siguiente carrera por el caballo que ha ganado justo la ultima. Veo que tiene mucha experiencia en Timing. Ha realizado investigaciones acerca de esto?
Un saludo JL
MartinG -
Hola JLRaider yo también estuve barajando la posibilidad de reducir los rangos temporales de las pruebas in sample con el objetivo de tener unos resultados mas constantes en las pruebas out sample. Yo pienso que esto ha de hacerse con verdadera precaución , hay dos cosas que creo que se deben de tener en cuenta:
En primer lugar por ejemplo reducir el rango in sample puede ayudar a un sistema que depende directamente de la volatilidad del mercado para fijar un limite de beneficios o un limite de perdidas. En este caso ajustar la volatilidad mas próxima para ajustar esos parámetros me parece una buena forma de aprovechar la evolución de esa “volatilidad cambiante”.
En segundo lugar, cuando se hace este tipo de optimizaciones , si cogemos para hacer las pruebas una parte del histórico en la que la tendencia haya sido alcista, los parámetros que se obtendrán serán los que hayan estado mas ajustados para esa tendencia alcista, pero... ¿y si el mercado cambia de tendencia ? entonces podríamos tener un problema ya que los últimos parámetros que tenemos muy probablemente estén ajustados a una tendencia alcista y no sean adecuados para una tendencia bajista. Por eso pienso que esto ha de hacerse con un poco de sentido común y teniendo en cuenta que el periodo "in sample" capte las mayores situaciones posibles.