Dedicado a Rupertacho por su genialidad disruptiva ;).


Hace unas semanas mantuve un intenso debate con mi amigo Roberto Marcos aka @Rupertacho (al que entrevistamos en abril). Tras intercambiar algunas opiniones al respecto llegamos a la conclusión de que, si bien el uso de simulaciones de Monte Carlo puede ser una buena herramienta en algunas ocasiones, no siempre es legítimo usarlo por cuanto si lo hacemos podemos terminar obteniendo conclusiones del todo erróneas.

Dicho esto, pasamos a revisar en qué casos NO es legítimo usar Monte Carlo a la hora de evaluar nuestros sistemas de trading.

Un Breve Repaso
Para el que no sepa nada acerca de las simulaciones de Monte Carlo, lo primero de todo le recomiendo que vea este vídeo de YouTube donde expliqué en detalle qué son y para qué sirven:

Por si no les apetece ver el vídeo entero, les hago un rápido resumen: la idea fundamental es tomar la curva de beneficios de un sistema y reordenar todos los resultados de las operaciones múltiples veces y de forma aleatoria. Mediante esta reordenación de datos podemos, entre otras cosas, realizar una estimación realista del máximo drawdown de un sistema o analizar la consistencia de los resultados obtenidos.

El problema es que el principal supuesto que debe verificarse para poder usar Monte Carlo de forma legítima es que los resultados de las operaciones realizadas por el sistema deben ser independientes entre sí, del mismo modo que lo son los resultados del lanzamiento de una moneda o de un dado. Si este supuesto se rompe, entonces Monte Carlo no es válido para obtener conclusiones en relación al comportamiento del sistema o sobre su riesgo máximo teórico. Esta cuestión que, aunque lo parezca, no es baladí, y, sin embargo, nos podemos encontrar con que se da en más situaciones de las que nos pensamos.

Cuando NO es Legítimo Utilizar Monte Carlo
Veamos a continuación cuáles son los casos en los que usar Monte Carlo no es válido cuando analizamos un sistema de trading.


1. Sistemas Sobreoptimizados

Cuando un sistema está sobreoptimizado, realmente no tenemos ninguna ventaja, sino que las elevadas ganancias son fruto de la suerte (i.e., encontrar una combinación de parámetros que permiten ajustarse a la serie de precios). Por todo ello, evaluar un sistema sobreoptimizado con simulaciones de Monte Carlo es completamente inútil, por cuanto todas las reordenaciones de resultados que realicemos ofrecerán resultados similares.
 

2. Simetría forzada para largos y cortos
¡Ojo con este caso que es muy fácil pasarlo por alto! Si al desarrollar nuestro sistema hemos forzado las reglas para que las entradas largas y cortas sean simétricas (por ejemplo, eliminando stops de pérdidas u objetivos de beneficio de las reglas originales de tal forma que las posiciones largas se cierran con señales cortas y viceversa), entonces el uso de Monte Carlo no es válido por cuanto al realizar las simulaciones se romperá esa simetría.   


3. Sistemas seguidores de tendencia a largo plazo
Si el sistema que estamos analizando es un seguidor de tendencia en marco temporal diario o semanal que solo opera en el lado largo, posiblemente el uso de Monte Carlo tampoco sea adecuado. Debemos pensar que ese tipo de sistemas generalmente presentan muchas pérdidas pequeñas seguidas que se compensan con una gran ganancia cada cierto tiempo.

Si en este contexto realizamos simulaciones de Monte Carlo, podemos encontrarnos con que algunas de las trayectorias obtenidas para la equity podrían agrupar todas las operaciones en negativo seguidas al principio de la misma, provocando que la distribución presente un fuerte pico negativo a la izquierda, algo que es completamente irreal debido a la mecánica del sistema y el comportamiento del mercado. Si utilizáramos los resultados derivados de la simulación para calcular el capital necesario para operar la estrategia, sin lugar a dudas obtendríamos valores muy superiores a los correctos, por lo que utilizaríamos más capital del necesario para operar dicho sistema.


4. El sistema realiza operaciones que dependen del resultado de las operaciones previas, se basa en el comportamiento de la equity o se ha introducido un algoritmo de position sizing.
En este caso, es evidente que todas las operaciones presentan dependencia de la anteriores por lo que el uso de simulaciones de Monte Carlo es del todo ilegítimo. Pensemos simplemente en que si nuestra estrategia se basa por ejemplo en entrar largos cuando ha habido previamente una racha de operaciones perdedoras o utiliza un algoritmo para fijar el tamaño de las posiciones en función del capital, la reordenación de las operaciones obtenidas con esas reglas será completamente irreal, por cuanto no estará teniéndose en cuenta los criterios utilizados para generar las operaciones.

 
5. El número de operaciones del sistema es muy grande
Si bien este caso es menos intuitivo, seguramente un ejemplo nos permitirá entender mejor por qué el uso de Monte Carlo en esta situación no es conveniente. Supongamos que tenemos un sistema que, partiendo de un capital de 10.000 €, obtiene un beneficio neto de 3.000 €. El problema es que ese resultado lo ha obtenido ganando 20.000 € y perdiendo 17.000 €.

¿Qué puede suceder si realizamos una simulación de Monte Carlo con este sistema, suponiendo que ha realizado un elevado número de operaciones? Si bien es poco probable que suceda, podríamos encontrarnos con que algunas de las trayectorias obtenidas para la equity presenten un drawdown que supere al capital inicial, distorsionando así todo el análisis posterior.

Y de Regalo, el Número de Iteraciones
Si me han seguido hasta aquí, seguramente hayan entendido que, si bien generalmente podremos usar Monte Carlo sin problema en la mayoría de los casos, debemos tener cierto cuidado cuando lo hagamos y no olvidarnos de toda esta casuística que acabamos de describir, so pena de obtener conclusiones erróneas que puedan conducirnos a perder dinero.

Dicho esto, aún nos falta un detalle: aunque el uso de Monte Carlo sea legítimo, debemos establecer un criterio para determinar el número de iteraciones que realizamos. El motivo resulta evidente: no es lo mismo tener un sistema que realiza 100 operaciones en el histórico y hacer 10.000 iteraciones de Monte Carlo, que coger un sistema con 5.000 operaciones y realizar solo 500 iteraciones.  

Y aquí debo reconocer que Rupertacho me iluminó en este sentido con el paper de W. Oberle titulado Monte Carlo Simulations: Number of Iterations and Accuracy aunque posteriormente encontré otro de M. Liu que trata el tema titulado Optimal Number of Trials for Monte Carlo Simulation.

En base a lo explicado en esos artículos, la estimación del número óptimo de iteraciones de Monte Carlo que debemos realizar se puede obtener mediante la siguiente fórmula:

n = Z2Ø2/s2


Donde:

  • n representa el número de iteraciones
  • Ø es el nivel de precisión, entendido como la amplitud del intervalo de confianza que deseamos obtener.
  • s es la desviación típica muestral. Para estimarla, podemos realizar por ejemplo unas 500 simulaciones para obtener una estimación de la desviación típica muestral (se trata, en definitiva, de realizar un número de simulaciones para obtener una estimación más o menos fiable sin tardar mucho).
  • Z es el nivel de confianza. Considerando un error del 5% el valor de Z será 1.96.

 

Conclusión
Las simulaciones de Monte Carlo son una herramienta que nos permite crear un rango de posibles resultados a partir de los cuales podemos tomar decisiones para mejorar nuestro trading.

Sin embargo, no dejan de ser una forma de análisis estadístico que parte de una serie de supuestos que deben verificarse para poder utilizarlas de forma legítima. Las simulaciones de Monte Carlo no son ni mucho menos la panacea definitiva pero bien utilizadas pueden ayudarnos en el camino para alcanzar la rentabilidad con nuestra operativa.

 


Saludos,
X-Trader