La fecha de caducidad de los sistemas automáticos de trading

24 de noviembre, 2013 12
Miembro del Instituto Español de Analistas Financieros desde 1983. He sido profesor durante 17 años en el Máster en Mercados Financieros de... [+ info]
Miembro del Instituto Español de Analistas Financieros... [+ info]



Nuestros clientes en Interdin.com tienen la posibilidad de elegir la activación de 502 sistemas automáticos de trading. En nuestras conversaciones con ellos, uno de los errores que habitualmente detectamos en sus planteamientos es la idea de su permanencia a ultranza en el sistema elegido.

Nuestro colaborador José Ramón Díaz Serrano, al que ya conocéis, puesto que hemos publicado un par de artículos suyos en este blog, ha escrito largo y tendido sobre la fecha de caducidad de los sistemas automáticos.

Por su interés os reproduzco aquí uno de sus artículos comentando esta circunstancia. Espero que os sea útil.


La fecha de caducidad de los sistemas automáticos de trading

En una de sus canciones, el cantautor Ismael Serrano nos dice que “el amor, es eterno mientras dura”. Personalmente me encanta esa frase, porque dice mucho. Y no la limito a aplicarla a un tema tan personal como puede ser el amor por otra persona, sino que pienso que se puede trasladar a cualquier otra faceta de nuestras vidas.

Por eso, he de reconocer que cuando leo o escucho a gente decir que los sistemas automáticos de trading correctamente desarrollados nunca dejan de funcionar, me quedo patidifuso. En mi humilde opinión, un sistema de trading busca sacar beneficio de determinadas ineficiencias del mercado y mientras esas ineficiencias permanezcan en el mercado, es posible pensar que el sistema pueda seguir funcionando en el futuro. Pero parafraseando a Ismael Serrano, las ineficiencias son eternas mientras duran. Cuando una ineficiencia deja de existir en el mercado, el sistema de trading que trataba de sacar beneficio de la misma, comenzará a sufrir más de la cuenta y probablemente dejará de funcionar y lo más inteligente es no continuar operando con el mismo.

La pregunta del millón podría ser entonces cómo saber que un sistema ha dejado de funcionar. Realmente no podemos tener una certeza absoluta, pues el futuro es incierto, por lo que hemos de jugar con análisis estadísticos y probabilidades. Pero lo que está claro es que no podemos pensar en comenzar a operar con una cartera de sistemas automáticos de trading y mantener la misma composición de sistemas en la cartera de manera eterna, pues antes o después, los sistemas que componen esas carteras se deterioraran y será necesario realizar cambios en nuestra inversión.

Veamos algunos ejemplos que tuve ocasión de compartir el otro día con algunos clientes en un seminario web privado.

Supongamos que estamos a finales de julio de 2008 y vamos a comenzar a operar con este sistema, que acaba de ser publicado por su desarrollador (sólo disponemos por lo tanto de datos backtesting, nada de datos auditados ni datos de operativa real en cuentas de clientes):

9a7e20f0cba703ab8174ff42b76102f5.jpg

Como podemos ver este sistema ha tenido desde enero 2002 a mediados de julio de 2008 un drawdownmáximo de unos 17.000 euros. Si decidimos activar el sistema en este momento, ¿Cuándo podríamos considerar que el sistema ha dejado de funcionar y tendríamos que desactivarlo de nuestra cuenta? Veamos posibles opciones:

Desactivarlo si supera su máximo drawdown histórico hasta la fecha. Es decir, si sufre una racha de pérdidas de unos 17.000 euros tendríamos que desactivar el sistema. Este criterio es poco recomendable, pues estadísticamente, el dato del drawdown máximo histórico de un sistema es poco significativo.

Hacer un Análisis de Montecarlo de los resultados del sistema hasta la fecha, para generar una distribución estadística de los drawdowns y poder así estimar, con un cierto grado de significación estadística, el posible drawdown máximo futuro.

Utilizando las herramientas de Strategyrank.com (1) aplicamos un Análisis de Montecarlo  a los resultados del sistema y esto es lo que obtenemos:

42339437356b976f359b35e927afb688.jpg

Vemos que aunque el drawdown máximo histórico del sistema es de 17.000 euros, el Análisis de Montecarlo(1000 iteraciones con repetición) nos muestra la siguiente distribución estadística del drawdown, con undrawdown medio de 18.421 euros y una desviación típica de 6.277 euros. Según estos datos, podríamos considerar “estadísticamente normal” (al 95% de significación) que este sistema en el futuro tuviera undrawdown de 30.975 euros. O dicho de otra manera, tendríamos que desactivar el sistema si el drawdownfuturo supera los 30.975 euros, porque un drawdown superior a ese nivel, ya no sería “normal” y podríamos pensar que el sistema ha dejado de funcionar como de él se esperaba.

Así pues, comenzamos a operar con el sistema en nuestra cuenta y tras unos meses, obtenemos los siguientes resultados:

de3d14c25b8e5bdd83f95d972bad8d59.jpg

Como ven, muy buenos resultados: 57.500 euros y un drawdown máximo durante ese periodo de algo más de 8.600 euros. No hay nada que nos haga pensar que el sistema puede dejar de funcionar en el futuro, pero en cualquier caso, si ahora comenzara un drawdown y éste terminara superando los 31.000 euros de drawdown futuro estimado, “no nos importaría” demasiado, porque aún así terminaríamos ganando dinero, pues ya tenemos un colchón de beneficios de 57.500 euros. Pero cabría preguntarse si existe una manera de anticipar que el sistema puede haber dejado de funcionar, ya que para muchos clientes, ceder 31 mil de los 57 mil euros ganados, parece excesivo.

En mi opinión, sí que existe manera de anticiparse y deberíamos aplicarla siempre a nuestra operativa habitual. Está muy bien saber que si tomamos los datos de casi seis años de backtesting (de enero de 2002 a mediados de 2008) el drawdown futuro estimado por Análisis de Montecarlo sería de 31.000 euros, pero creo que es mucho mejor hacer los Análisis de Montecarlo a períodos de tiempo más reducidos. 

Podríamos, por ejemplo, tomar los últimos seis meses o un período temporal que contenga como mínimo unas 30 operaciones del sistema (para sistemas que hacen pocas operaciones) y para las que un período de seis meses puede ser poco representativo desde el punto de vista estadístico). Veamos que nos diría el Análisis de Montecarlo si tomamos los datos de los últimos seis meses solamente, (desde junio de 2008 a diciembre de 2008):

14f9b14c603717a9274be92f42617270.jpg

Como vemos, tomando los datos de los últimos 6 meses, el drawdown futuro estimado ha bajado de los 31 mil a algo menos de 15 mil euros. Por lo tanto, deberíamos desactivar el sistema si sufre un drawdown futuro de más de 15 mil euros. De esta manera, cederemos menos de las ganancias previas conseguidas (en el caso de haber comenzado a operar con el sistema justo cuando el desarrollador lo publicó) o tendremos un menor riesgo inicial (si decidimos comenzar a operar con el sistema “ahora”, es decir, en diciembre de 2008).

Veamos los resultados del sistema desde diciembre de 2008 hasta el momento actual:

34a54c3ce96fb4521d7e732a423d1ee6.jpg

Vemos que a pesar del buen comienzo que tuvo el sistema en sus primeros meses de operativa Live, desde diciembre de 2008 el sistema no ha vuelto a levantar cabeza y ha ido acumulando pérdidas continuamente. Eldrawdown máximo actual es de 65 mil euros (frente a los 17 mil euros que teníamos en julio de 2008, cuando sólo teníamos datos backtesting). 

Por otro lado, si hubiéramos hecho caso del Análisis de Montecarlo inicial (que estaba realizado con datos desde enero 2002 a julio de 2008), habríamos tenido que esperar a que el drawdown futuro hubiera sido de 31 mil euros para abandonar el sistema. Sin embargo, al ir aplicando un Análisis de Montecarlo a un periodo reciente (en nuestro ejemplo, los últimos 6 meses de datos), conseguimos anticiparnos a la debacle y dejamos de operar con el sistema cuando éste superó el drawdown de 15 mil euros (donde muestra la flecha en el gráfico). De esta manera nos ahorramos no sólo bastante dinero, sino también bastante tiempo (toda la parte sombreada en color rojo en el gráfico anterior), con el coste de oportunidad que tiene el seguir operando con un sistema que ha dado muestras claras de que no estaba funcionando bien.


CONCLUSIONES

Lo ideal desde mi punto de vista es aplicar los Análisis de Montecarlo a periodos cortos de datos auditados oLive. En el caso de no tener suficientes datos auditados o Live, tendremos que confiar en que el sistema no haya sido sobreoptimizado por parte del desarrollador y utilizaremos los datos backtesting para estimar el drawdown futuro mediante los Análisis de Montecarlo. 

De esta manera conseguiremos anticipar el deterioro definitivo de cualquier sistema, que por muy bien desarrollado que esté o por mucho tiempo que lleve siendo auditado con buenos resultados, antes o después sufrirá (porque haya dejado de existir la ineficiencia de mercado de la que intentaba beneficiarse el sistema).


(1) Strategyrank.com es una página de rankings y herramientas de análisis sobre sistemas automáticos de Trading liderada por José Ramón Díaz Serrano.



Usuarios a los que les gusta este artículo:

Este artículo tiene 12 comentarios
antiguo usuario
El analisis de Montecarlo para obtener el VaR es tan bueno como las variables que consideremos en su calculo.

Lo dificil de un sistema es entender cual es la ineficiencia que explota para poder entender cuando esta ya ha dejado de funcionar o ha ido desapareciendo segun se ha ido utilizando por el publico.

El mejor sistema es el que no es publico ya que tiene mas posibilidades de funcionar durante mas tiempo.
24/11/2013 16:39
Daniel: Mi compañero José Ramón Díaz Serrano, autor del artículo me pasa esta respuesta para ti. Un saludo.

"Muchas gracias Daniel. Cuando analizas cuantitativamente un sistema, no le das demasiada importancia a la lógica del sistema o a conocer la ineficiencia que el sistema trata de explotar. Te limitas a analizar sus resultados y tratas de modelar el comportamiento del sistema mediante alguna distribución estadística, para poder inferir expectativas de riesgo y beneficio a futuro. Por ello, no pretendemos averiguar cuando la ineficiencia ha podido dejar de funcionar. Serán los propios resultados del sistema los que nos indiquen si se sigue comportando como era de esperar estadísticamente o no. Y en mi opinión da igual si el sistema es público o no. No creo que haya relación directa entre el comportamiento futuro del sistema y si éste es público o no. No obstante, no dispongo de datos objetivos que poder analizar...se trata sólo de una suposición bastante personal fruto de mi experiencia. Un saludo".
26/11/2013 09:50
antiguo usuario
La logica me dice que si un sistema es muy efectivo y es publico, su uso masivo provocara un arbitraje en la ineficiencia que se explota.

El tema de desactivar o no un sistema en funcion de los resultados me parece muy similar a seguir la tendencia, por lo que a fin de cuentas necesitas un sistema que te diga cuando necesitas activar y desactivar el sistema, ya que si lo haces demasiado tarde te comes gran parte de los beneficios.
26/11/2013 09:57
Hola Daniel. José Ramón me pide que te conteste... Y yo lo hago. Un saludo..

"Hola Daniel. Muchas gracias por tus comentarios.
Estoy de acuerdo contigo en que si un sistema es muy efectivo y todo el mundo lo conoce...con el tiempo dejará de ser efectivo. Pero inicialmente tu comentario no iba en la misma línea. Un sistema no es bueno porque no sea público. Puedes encontrar muchos sistemas públicos buenos y que generan rentabilidad...y muchos sistemas privados que no ganan dinero.
Respecto a las similitudes entre activar/desactivar un sistema y seguir la tendencia, efectivamente las hay. Si un sistema está ganando, la tendencia de su curva de resultados será positiva y creciente y querremos mantenernos dentro de esa tendencia alcista el mayor tiempo posible y trataremos de encontrar criterios de desactivación que nos permitan mantener la mayor parte posible de ganancias conseguidas.Un saludo".
27/11/2013 16:18
El hecho de que un sistema deje de funcionar no significa que no funcionará nunca más. Por ejemplo, muchos sistemas automáticos tendenciales funcionan ciclicamente. Es decir, a lo mejor tienen 5 años buenos seguidos de 5 años malos y, sin embargo, posteriormente vuelve a funcionar bien. El problema suele ser que en muchos sistemas que no hemos creado nosotros no tenemos acceso a las leyes que gobiernan su funcionamiento y, por tanto, nos es imposible hacernos una idea de si su propuesta es algo que funciona ciclicamente o si, por contra, sólo era una ineficiencia muy específica que no volverá a producirse. Saludos.
25/11/2013 00:32
En el fondo creo que lo que pasa es que, por lo general, no se tiene ni idea de que se puede esperar de un sistema a futuro. No porque no se pueda sino porque el operador normalmente no se toma el trabajo de hacerlo.

Que un sistema haya ganado 10 años seguidos no significa que no pueda perder tres seguido después. A lo mejor incluso es lo más probable.

De hecho tampoco es estrictamente necesario conocer las reglas para saberlo. Hay formas (Montecarlo incluido) de establecer probabilidades a futuro de manera objetiva solo con base en el comportamiento pasado.
25/11/2013 15:25
Hola José. José Ramón Díaz serrano, autor del artículo, me pasa esta respuesta para ti. Un saludo.

"Muchas gracias José. En mi opinión, nadie puede saber si mañana un sistema va a seguir funcionando o no. A lo más que podemos llegar es a construir una distribución de probabilidad que modele el comportamiento de los resultados de un sistema y en función de ese modelo probabilístico analizar expectativas de riesgo o de beneficio. Por otro lado, claro que un sistema puede ganar durante 3 años, luego perder durante otros 3 y luego volver a ganar. Pero absolutamente nadie va a ser capaz de operar con un sistema de esas características, ya que será incapaz de soportarlo psicológicamente. Y no dependerá de si el sistema lo has creado tú o un tercero. Aunque seas el padre de la criatura, el futuro es incertidumbre y no podrás saber que ocurrirá con el sistema a partir de que lo pongas en funcionamiento. Un saludo".
26/11/2013 09:53
Hola Antonio,

Muy interesante el artículo. Personalmente comparto la idea a nivel de estrategia.

El problema que le veo es que elevas a nivel de categoría un ejemplo muy específico. Con un sistema en condiciones normales probablemente los resultados que tendrías serían bien distintos.

Prácticamente cualquier sistema que pusieras a funcionar durante el último semestre de 2008 habría funcionado de manera excepcional. Así que usar eso como prueba de concepto me parece poco riguroso.

La segunda simulación de montecarlo usando solo esos datos es claramente una visión demasiado optimista.

Lo normal es que si el sistema ha sido diseñado correctamente la simulación del DD máximo futuro con montecarlo se mantenga "más o menos estable" con independencia de la muestra que escojas.

Un saludo y gracias por el aporte, que ya era hora que alguien más hablara de sistemas por aquí. :-)
25/11/2013 15:39
Hola Horacio. José Ramón también ha leído atentamente tu comentario y me ha enviado unas líneas contestando al mismo. Te las copio aquí debajo. Un saludo.


"Muchas gracias Horacio. Yo no trato de elevar a nivel de categoría nada o al menos no era la intención. No entiendo a lo que te refieres con 'un sistema en condiciones normales'. Evidentemente, yo he escogido un sistema que me ha servido para ilustrar lo que quería transmitir en el artículo. Y habrá muchos otros ejemplos válidos, en fechas diferentes. Al igual que habrá sistemas en los que no se aprecie de manera tan clara lo que queremos mostrar.
Al final, tú puedes modelar la distribución del drawdown a tu gusto. Y al igual que puedes establecer cual es el drawdown máximo esperable desde el punto de vista estadístico de una muestra de resultados de un sistema en un periodo de 3 años, puedes hacer lo mismo para un periodo de 3 meses (o de 6 meses o cualquier otro periodo). Las cifras serán distintas, pero las conclusiones las mismas: lo que busco es establecer un valor del drawdown máximo esperable en un determinado periodo de tiempo y si mi sistema en un intervalo igual o inferior a ese periodo de tiempo sufre un drawdown superior, tendré que considerar que ha dejado de funcionar (desde el punto de vista estadístico). Dicho de otra manera. Yo podría establecer como criterio de desactivación de un sistema lo siguiente: 'si en los próximos 2 años sufro un drawdown de más de 30.000 euros, desactivo el sistema'. Porque ese es el valor que he obtenido por análisis cuantitativo (con Montecarlo u otra técnica). Pero también puedo establecer, fruto de mis análisis, que para un periodo de 2 meses, si el sistema sufre un drawdown de 18.000 euros, debo desactivar el sistema (vaya por adelantado que las cifras y los periodos son inventados a modo de ejemplo). Es decir, tan estadísticamente anormal es un drawdown superior a 30.000 euros en un periodo de 2 años que un drawdown superior a 18.000 euros en un periodo de 2 meses.
Por ello, no puedo estar más en desacuerdo con tu afirmación de 'si el sistema ha sido diseñado correctamente la simulación del DD máximo futuro con montecarlo se mantenga más o menos estable con independencia de la muestra que escojas'.
Primero habría que definir que entiendes tu por 'diseñado correctamente'.
Yo parto de la base de no creerme nada de los datos backtesting, puesto que me resulta imposible separar el grano de la paja. Por ello 'no me importa' como de bien o de mal está diseñado el sistema: los datos auditados me lo irán diciendo.
Por otro lado, el drawdown de un sistema crece con el tiempo. No podemos esperar el mismo drawdown si analizamos un mes a si analizamos un año...por lo que el drawdown maximo futuro sí depende de la muestra que escojas. Lo que pretendíamos con el artículo es que cada cual aprenda a escoger la muestra del tamaño que más se adapte a su forma de invertir, su nivel de inversión, etc..
Un saludo"..
26/11/2013 10:01
Escriba un nuevo comentario

Identifíquese ó regístrese para comentar el artículo.