Test de Montecarlo aplicado al trading

Como trader, cuando se necesitas calcular el riesgo o la consistencia de tu sistema e trading necesitas poner a prueba tus sistemas de trading. El test de Montecarlo es una buena herramienta para ello.

El método Montecarlo de basa en una simulación donde se evalúan todas las posibilidades mediante una generación de números aleatorios y se simulan todos los posibles escenarios.

La idea es generar la mayor cantidad de números aleatorios, para así simular la mayor cantidad de escenarios probables de nuestro trading. Es algo así como decir qué pasaría si se alteran algunas variables como el spread, la entrada y salida o el propio precio.

Así verás cómo cada opción evoluciona en el tiempo nuestro sistema de trading, si es viable a largo y corto plazo, y qué otras variables pueden influir en su curso.

En este artículo, te voy a enseñar cómo este test puede ayudarte en tu trading, algunos ejemplos prácticos, y también sabremos cómo utilizarlo de manera práctica.

🤷‍♂️ Â¿Para qué se puede usar la simulación de Montecarlo?

Es probable que no sepas para qué se utiliza este método. La simulación de Montecarlo se trata en el ámbito de la economía, tanto en empresas como en inversión, siendo este último donde más se ve en acción.

Algunas situaciones donde este tipo de simulaciones se realizan en inversión son para crear, valorar y analizar carteras de inversión. También sirve para valorar productos financieros complejos, como las opciones financieras o los modelos de gestión de riesgo.

Horror Technology GIF by Space Oddity Films - Find & Share on GIPHY

Dado que la rentabilidad de una inversión es impredecible, se utiliza este tipo de método para evaluar distintos tipos de escenarios. Un ejemplo sencillo se encuentra en el trading.

Como sabes, los movimientos en los precios no se pueden predecir. Se pueden aproximar, pero es imposible hacerlo con exactitud.  Aquí es donde entra en juego la simulación de Montecarlo, donde se intenta imitar el comportamiento de un sistema de trading o de un conjunto de ellos para analizar cómo éstos podrían evolucionar.

Una vez que se realiza la simulación, se extrae una cantidad muy grande de escenarios posibles.

🤔 Origen del nombre

Montecarlo cita el nombre de un famoso casino localizado en el partido de Mónaco. Es conocido por ser “la capital del juego de azar”, ya que la ruleta es un generador simple de números aleatorios.

El sistema fue ideado por primera vez en 1946, cuando el matemático Stanislaw Ulam, pensó en un método eficiente para mejorar su juego de solitario.

Fue entonces cuando se dio cuenta de que sería más fácil aproximar el resultado general del match de solitario haciendo pruebas múltiples con las cartas y contando las proporciones de los resultados que calcular una por una todas las posibilidades de combinaciones.

Le presentó esta idea a otro matemático, John Von Neumann, en su forma más rudimentaria.Quedó tan impresionado con el sistema que puso sus esfuerzos en el perfeccionamiento de la fórmula.

Los avances tecnológicos, junto al ordenador y las teorías de Alan Turing, permitieron que se facilitara el avance de la investigación de esta particular simulación financiera.

Una carta de Neumann al laboratorio en Los Álamos, fue determinante para difundir la fórmula a todo el mundo.

El uso del modelo Montecarlo como herramienta de investigación, proviene del trabajo realizado en el desarrollo de la bomba atómica durante la Segunda Guerra Mundial, en el Laboratorio Nacional de Los Álamos, en EE. UU.

Este trabajo conllevaba la simulación de problemas probabilísticos de hidrodinámica concernientes a la difusión de neutrones en el material de fisión. Esta difusión posee un comportamiento eminentemente aleatorio.

En la actualidad, es parte fundamental de los algoritmos de raytracing para la generación de imágenes 3D.

En principio, fue idealizado por Neumann para evaluar integrales múltiples. Hoy en día, se usa en el mercado laboral para toda clase de estadísticas, y muy curiosamente, para decisiones administrativas de alto riesgo, donde sería difícil comprobar la validez de una variante.

¿Quieres entender cómo funciona este método? Sigue leyendo.

🎲 Números aleatorios

El dato más esencial que debes tener en cuenta a la hora de hacer tu cálculo es que tienes que generar una buena cantidad de números aleatorios.

¿Cómo puedes generar números aleatorios? Si bien en el casino de Montecarlo, esto se utiliza con una ruleta, esto podría llevarte más horas de las que dispones. Lo más práctico para ti es que hagas uso de Software.

Si queremos generar 10.000 números aleatorios, para ponerte un ejemplo, imagina cuánto tiempo necesitaríamos para calcular cada probabilidad. Se utilizan programas informáticos que generan estos números. No se consideran números puramente aleatorios, ya que los crea el programa con una fórmula.

Aun así, se parecen mucho a las variables aleatorias de la realidad. Se les denomina números pseudo-aleatorios. Dicho todo esto, solo queda ver una aplicación correcta del método.

👉 Un ejemplo práctico

Los programas de diseño asistido por ordenador (CAD), pueden determinar rápidamente el volumen de modelos muy complejos.

Dicho software, en general, no es capaz determinar volumen (por ejemplo, para un prisma, área de la base multiplicada por la altura).

Por lo que la única solución es dividir el modelo en un conjunto de pequeños submodelos con el que el volumen se pueda determinar. Sin embargo, esto consume muchos recursos para el cálculo del volumen de cada uno de los elementos.

Para esto, utilizan simulaciones de Montecarlo, que son más robustos y eficientes. El software conoce la expresión analítica de la geometría del modelo (posición de los nodos, aristas y superficies) y puede aproximar un punto que esté dentro del modelo o fuera con un coste mucho menor.

En primer lugar, el software coloca el modelo dentro de un volumen conocido (por ejemplo, dentro de un cubo de 1 m3 de volumen).
A continuación, genera un punto aleatorio del interior del volumen conocido, y registra si el punto “ha caído” dentro o fuera del modelo. Este proceso se repite varias veces (miles o millones), consiguiendo un registro muy grande de cuántos puntos han quedado dentro y cuántos fuera.

La probabilidad de que caiga dentro es proporcional al volumen del modelo, así que, la proporción de puntos que han caído dentro, con respecto al total de puntos generados, es la misma proporción de volumen que ocupa el modelo dentro del cubo de 1 m3.

Si el 50% de los puntos han caído dentro, el modelo ocupa el 50% el volumen total, es decir, 0.5 m3. Evidentemente, cuántos más puntos genere el software, menor será el error de la estimación del volumen.

Venga, ahora a lo que nos interesa. Un ejemplo aleatorizando algunas variables de nuestros sistemas de trading:

💻 En excel

Una de las múltiples formas de realizar una simulación de Montecarlo es hacer un aleatorio orden de operaciones. Para esto, podemos realizar una simulación sencilla utilizando una hoja de cálculo.


Primero, comienza con los datos de la siguiente muestra. Son operaciones en haciendo trading, así que puedes hacer una lista con los resultados de las operaciones del backtest.

Ahora, asigna los resultados a diferentes rangos. Crea grupos de resultados y atribuye cada resultado a su grupo correspondiente. En LibreOffice, se puede hacer con: Funciones→Categoría Matriz → Frecuencia.

Siguiendo con el ejemplo, sólo hay una operación con una pérdida mayor a -600, 3 operaciones con resultados entre -300 y -200 y así, hasta distribuir toda la muestra.

Calcula la frecuencia relativa o probabilidad con que se da cada rango (frecuencia es el equivalente al total de operaciones). También calcula las frecuencias acumuladas, luego puedes obtener los intervalos de números aleatorios asociados a cada operación.

Lo siguiente que deberás hacer es cambiar el orden de las operaciones al azar, buscamos generar secuencias aleatorias de operaciones.
¿Como hacer esto? Utiliza la función BUSCAR, donde seleccionamos como criterio de búsqueda ALEATORIO y la matriz entre grupos y los intervalos. (entre 0 0.9999…). Así se vería una simulación de Montecarlo en una hoja de cálculo.

Cada número aleatorio estará vinculado a un rango con probabilidad menor o igual al número al azar obtenido. De esta forma, si, por ejemplo, el número generado es el 0,35, esto corresponderá con el rango de 100. Partiendo de las secuencias de operaciones, puedes dibujar las distintas curvas de beneficios.

En esta imagen se reflejan las curvas que corresponden a las Curvas de beneficio de las simulaciones de ejemplo.

Como puedes ver en este ejemplo, al poner aleatorio el orden de las operaciones, las curvas de capital arrojan resultados completamente diferentes.

Tomando como base estas curvas, puedes calcular la esperanza del sistema de trading, la dispersión de los resultados, el nivel drawdown máximo que puede esperar, y cualquiera otra ratio que necesites.

✅ Aplicar Montecarlo en tu trading

El test de Montecarlo es ideal para que puedas estresar tus sistemas de trading y ver cómo se comportan en diferentes escenarios. Recuerda que cada día el mercado cambia. 

Como no tenemos certeza de lo que sucederá mañana, cambiamos las variables que afectan a nuestro trading cómo es la volatilidad, spread, precios… y vemos qué tal reaccionan nuestras estrategias de trading.

Aquellas que pese a variar todo el escenario aún arrojan buenos resultados son aquellas que seguramente seguirán siendo rentables. Si por el contrario una estrategia con cada simulación varía considerablemente lo mejor es que la deseches, ya que en la práctica puede arrojar pérdidas con cualquier variación en las circunstancias del mercado. 

🤑 Úsalo con Darwins

También es posible utilizar el método para elegir entre distintos traders. Ya sabemos que, gracias a la fórmula explicada, se consigue aleatorizar operaciones para generar nuevos escenarios igual de probables en cada uno de ellos.

Con el análisis que concierne el artículo, podremos saber si una estrategia o un darwin funciona y es robusto y en qué grado de fiabilidad. Para calcular las diferentes curvas, necesitaremos primero una secuencia de resultados generados por un determinado darwin, es decir, necesitaremos que el darwin haya realizado la mayor cantidad de operaciones posibles.

Cuantas más haya hecho y cuánto más tiempo haya estado operando, mejor. Para conseguir estos datos, accede al perfil de riesgo del darwin que quieras analizar, ahí tendremos un histograma de todas sus operaciones.

Como podrás ver en la imagen adjunta, de todas las operaciones que ha ejecutado este darwin, 137 han tenido un resultado comprendido entre el 0 y el 2 % y 50 operaciones han tenido un resultado comprendido entre el 0 y el -2 %.

Con este histograma, podemos sacar la siguiente tabla en la que tenemos la frecuencia en la que se repite un resultado y la frecuencia acumulada.

Una vez tengas la tabla, tendrás que generar una serie de números aleatorios entre 0 y 100 (o entre 0 y 1, depende de cómo lo tengas configurado), y según el que salga, asignaremos un resultado a cada operación.

Así que, si nuestra hoja de cálculo hace que el número aleatorio sea de 55, el resultado de esa operación será de +2 %.

¿Cómo se sabe esto? Porque la frecuencia acumulada del resultado +2 % es de 68.90 % y la frecuencia acumulada de -2 % es de 30.53, así que todo número aleatorio que salga comprendido entre 30.53 y 68.9 tendrá un resultado de +2 %.

Esto lo generas para cada operación en cada curva, y así podrás elegir el número de operaciones y el número de curvas que pretendas simular.

Por ejemplo, una simulación de 50 curvas con 50 operaciones para el darwin seleccionado, tiene este aspecto:

En la imagen se muestran las 50 posibles futuras curvas de capital del darwin. Es muy adecuado porque muestra las distintas curvas en distintos colores, por lo que es más fácil de visualizar.

Como vas a observar, los beneficios de estas curvas oscilan entre el +178 % y el -53 %. De estas curvas también podemos sacar datos interesantes, como la media y la desviación típica de estas curvas de capital o incluso el drawdown medio.

Un darwin con una media positiva significa que, a largo plazo, tiene bastantes probabilidades de ser ganador.

Por otra parte, la desviación típica nos da una idea de la variabilidad de los posibles resultados de este darwin, cuanto más pequeña sea, mejor.

Estos parámetros dependen del número de curvas que vayas a simular (el número de curvas que hemos tomado como ejemplo no es suficiente, hay que simular más, normalmente se suelen simular 1000 curvas de capital) y del número de operaciones que queramos simular.

Para analizar datos de distintos darwins, puedes hacerlo a través de la página web Darwinex.

📈 Análisis de Montecarlo

El análisis de Montecarlo es uno de los métodos de análisis más grandes. Actualmente, es uno de los grandes protagonistas en cálculos de acciones de altos riesgo.

Implementar este modelo en tu trading significa tener más conocimiento objetivo de lo que haces. Si bien parece un método que tira una moneda al aire, la fórmula empleada deja muy poco margen de error y va a incrementar la realidad de cualquier hecho que realices.

Empresas multinacionales, como Google, han compartido sus éxitos en el uso del método analítico de Montecarlo. Apuestan grandes cantidades de dinero en la compra de redes sociales y demás servicios digitales y ahora se encuentran en la cima del mundo del internet.

Este tipo de análisis evitan posibles fallos a la hora de realizar las operaciones. Del mismo modo, gracias a él, podrás tener estrategias de trading más robustas y consistentes.

¡Si te ha gustado, comparte! ↷

Share on whatsapp
WhatsApp
Share on facebook
Facebook
Share on twitter
Twitter

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Aprende Trading,

suscríbete a la newsletter

¿Quieres ser Trader?

Únete a la comunidad de los Traders de Forex. Aprende y conoce a otras personas