La simulación de Montecarlo en trading: Introducción

simulación de montecarlo

El objetivo de someter un proyecto a una simulación de Montecarlo es hacer un análisis del riesgo, examinar la robustez y aumentar la confianza que podemos tener en el sistema.

Tendremos mayor confianza porque sabremos qué es lo que podemos esperar del sistema.
El análisis nos dirá con que nivel de confianza estadística los resultados futuros estarán dentro un rango X, y también nos indicará cuanto será el drawdown que posiblemente tendremos que afrontar.
Analizar todo esto es muy útil para determinar nuestra estrategia de money management y también para saber cuándo un sistema ha dejado de funcionar.

Vamos a ello:

Definición: Qué es una simulación de Montecarlo

cube-568190_640El método de Montecarlo se basa en la repetición aleatoria sobre la base de unos valores inputs, y a partir de estos inputs se determina la probabilidad de la distribución de los outputs.
La simulación de Montecarlo se puede utilizar cuando el comportamiento aleatorio o de probabilidad tiene un papel fundamental en el resultado.

Como podréis observar, La palabra clave en el método de Montecarlo es: ALEATORIO (RANDOM).

El nombre de este método viene en referencia al Casino de Monte Carlo – Mónaco – ya que la ruleta es un juego que genera siempre números aleatorios o al azar.
El nombre y el diseño sistemático del método de Monte Carlo se origina en el trabajo realizado para el desarrollo de la bomba atómica durante la Segunda Guerra Mundial en el Laboratorio Nacional de Los Álamos en USA. Pero no voy a aburrirte con la historia, si quieres profundizar en la Wikipedia hay una página entera sobre esto. Aquí hoy nos centramos en cómo podemos utilizar Monte-Carlo para mejorar nuestros sistemas que operan en bolsa.

Simulación de Montecarlo en trading

Cuando se diseña un sistema se parte de una serie de datos de entrada o inputs.
Si pensamos en finanzas, estos valores de entrada pueden ser las cotizaciones de los activos.
A partir de estos inputs se diseña el sistema y se obtienen unos resultados o outputs.

Ahora bien, el sistema se diseña con datos del pasado ( es normal porque no tenemos otros datos disponibles, y el pasado es lo único que conocemos), y el problema viene porque es poco probable que los datos futuros sean idénticos a los datos del pasado que utilizamos para desarrollar el sistema.
Las señales pueden darse con mayor o menor frecuencia, las operaciones pueden durar más o menos, es decir, las condiciones del mercado pueden variar tanto en el orden como en la proporción.

¿Cómo gestionar este futuro incierto? ¿Cómo saber si la ganancia del backtest ha sido fruto de una casualidad al coincidir las mejores operaciones posibles? → La simulación de Montecarlo se puede utilizar para crear múltiples secuencias aleatorias a partir de los mismos datos. Todas esas secuencias alternativas son igual de probables y como resultado nos dan múltiples curvas de capital también todas igualmente probables. A partir de estas curvas de capital podemos estimar la probabilidad de obtener determinados rangos de beneficios, de drawdown y de otros tipos de ratios estadísticos.

Qué es lo que puedo simular como aleatorio

Montecarlo es un técnica y para efectuar la simulación hay numerosas variables que se pueden generar como aleatorias. Por ejemplo podemos aleatorizar:

  • Modificar el orden de las operaciones:
    Alteramos el orden de las operaciones de manera que podemos tener más o menos pérdidas consecutivas que en la secuencia histórica. Esto afectará al drawdown estimado.
  • Podemos añadir un poco de «ruido aleatorio» a las cotizaciones históricas sobre las que efectuamos el backtest.
    Si quieres ver un ejemplo práctico sobre cómo añadir ruido aleatorio puedes ver esta entrada del blog: Prueba la robustez del sistema añadiendo ruido aleatoriorobustez del sistema
  • Sesgo en la selección de los activos:
    Por ejemplo, cuando trabajamos con una cartera que invierte en acciones. Se da muchas veces el caso en el que el sistema da entrada el mismo día para varios activos a la vez y somos nosotros los que tomamos la decisión de entrar en unos y no en otros.
    Al aleatorizar la selección de activos obtendremos varias curvas de capital representando la combinación entre las distintas selecciones.
  • Se puede variar, «poner un poco de ruido», en los parámetros del sistema. Por ejemplo, variar ligeramente los valores de los indicadores para las señales.
  • Otra opción es saltar aleatoriamente algunas entradas.

Ventajas de la simulación de Montecarlo: el análisis del riesgo

La aplicación del método de Montecarlo a los sistemas de trading nos permite sobretodo analizar el riesgo y poder gestionarlo mejor.

  • Analizar el riesgo: Puedo saber cuales son los niveles de drawdown es más probables.
  • Determinar el tamaño de la posición que hará que nuestra curva de capital crezca más mientras se limita el drawdown a un nivel aceptable.
  • Ayuda a estimar cuándo un sistema ha dejado de funcionar.
  • Conocer las características del sistema:
    Cuanto más conocemos como se comporta el sistema, más confianza podremos tener en él porque sabremos qué es lo que podemos esperar de su rendimiento.

Desventajas o inconvenientes

Antes de comenzar a utilizar un método es bueno saber qué es lo que este método NO permite hacer.

Montecarlo es una herramienta muy útil para analizar el riesgo y determinar la estrategia de postion size más adecuada, pero por otro lado es bueno tener en cuenta que:

  • Nos puede llevar a conclusiones erróneas cuando sistema está sobreoptimizado.
  • Si la muestra con la que trabajamos no es representativa de poco vale que podamos aleatorizar la secuencia. No nos dará resultados fiables.
  • Monte Carlo asume la independencia entre los datos, por lo que no gestiona correctamente los sistemas donde existe una alta correlación en los inputs.

Cómo hacer un análisis de Montecarlo

Para realizar un análisis de Montecarlo se puede hacer desde una manera sencilla utilizando por ejemplo Excel o cualquier hoja de cálculo, o recurriendo a algún software de pago como puede ser MSA.

También es posible realizar una simulación con otros softwares gratuitos como Equity Monaco o directamente implementando un poco de aleatorizacion en Amibroker (Actualización: a partir de la versión 6.0 Amibroker incorpora la opción de realizar una simulación de montecarlo en las opciones del backtest).

En una próxima entrada del blog vamos a aplicarnos a un ejemplo práctico. Hoy sólo teoría ;)

Nota: puedes ver la entrada con ejemplos prácticos del análisis de Montecarlo en este link.

Saludos y buen trading!


Si te gustan los artículos te puedes suscribir a Estrategias de Trading y recibir las entradas en tu correo. También puedes seguirlo por Feedly, Google+ o Twitter.


7 comentarios en «La simulación de Montecarlo en trading: Introducción»

Deja un comentario

ESTRATEGIAS DE TRADING