Estimación del DD por Montecarlo de un sistema multiactivo

El espacio de los traders quant: sistemas de trading, gestión monetaria, automatización de sistemas.
Avatar de Usuario
andriuking
Mensajes: 231
Registrado: 06 Nov 2010 18:37
Ubicación: Madrid
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por andriuking »

ranunculo escribió:Hablando de Montecarlos, últimamente ando preocupado con la fiabilidad de la simulación de Montecarlo.

Un ejemplo sencillo: un sistema compra en pullbacks, obteniendo rentabilidades diarias del 1 al 2%. Además añadimos un filtro basado en la caida de tu equity, o bien en la volatilidad del indice de referencia.
Asi, puedes obtener una secuencia tal como:

+0.5, +1,1, -0.4, -0.9, +1.1, -7.9, -0.5, -0.1, +.5, +1.2, +0.2, -0.9, -0.5, +0.6, +0.3, +0.1, -0.2, -0.1, -8.2, -0.1.. etc

Es decir, el sistema tiene alta volatilidad porque de vez en cuando pierde mucho. Pero como el sistema se autoajusta en caso de fuertes caidas o picos de volatilidad, pues es muy dificil que repita dos veces seguidas dos caidas fuertes que lleven a un DD grande.

Sin embargo, el Montecarlo, por probabilidad ciega, te da una probabilidad de DD mucho mayor de la que realmente sucedería..

Ergo: La distribución de Montecarlo resulta irreal. En este tipo de sistemas.
Correcto.

Montecarlo supone que las distribuciones de rentabilidades son independientes e igualmente distribuidas. En ese sistema que comentas habria correlaciones entre las rentabilidades, y necesitarías emplear un método que tuviese en cuenta esa matriz de correlaciones. Algo más complejo sin duda.
http://www.sistemasdebolsa.com/" onclick="window.open(this.href);return false;
Avatar de Usuario
andriuking
Mensajes: 231
Registrado: 06 Nov 2010 18:37
Ubicación: Madrid
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por andriuking »

No sé si es que estoy demasiado espeso, pero sigo sin verlo del todo claro.

Entiendo mas o menos el razonamiento para calcular el capital mínimo pero sigo creyendo que no resuelve el problema de la revalorazación o depreciacion en los activos a lo largo del tiempo. Me refiero al ejemplo de que si un índice valia 200 hace 10 años y ahora vale 1000, en contratos de futuros la diferencia de ganancia y pérdida por operación es enorme. Tanto haciéndolo en moneda como en %, veo que no se resuelve este problema.

Me gusta más el método de hacerlo en % porque se trabaja siempre sobre una misma escala, entiendo que es lo correcto, sin embargo, un DD del 20% sobre cuando el futuro estaba a 200 puntos son 40 puntos, pero cuando está a 1000 son 200. Por lo tanto, el capital mínimo necesario cuando el indice estaba en 200 debe ser muy inferior al necesario cuando está en 1000. Creo que para calcular el capital necesario se debe de tener en cuenta el valor actual del activo cuando se inicia la opertiva, aunque se usen los % de perdida y ganancia históricos para estimar el DD.
http://www.sistemasdebolsa.com/" onclick="window.open(this.href);return false;
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por Rafa7 »

andriuking escribió: Por lo tanto, el capital mínimo necesario cuando el indice estaba en 200 debe ser muy inferior al necesario cuando está en 1000. Creo que para calcular el capital necesario se debe de tener en cuenta el valor actual del activo cuando se inicia la opertiva
andriukin,

Si hablamos de bolsa o futuros sobre bolsa, podríamos considerar que sí se tiene en cuenta los niveles de pecios actuales al considerar la máxima pérdida, ya que normalmente la máxima pérdida se habrá producido en las últimas operaciones del histórico. ¿Cierto?

Uno de los motivos por el que elegí la máxima pérdida (en lugar de la pérdida media, por ejemplo) para deducir el capital mínimo a partir del DD calculado en fracción, es precisamente tener en cuenta el nivel de precios. La máxima pérdida me pareció exagerada hasta que pensé que tenía en cuenta, mas o menos, los niveles actuales de precios.

Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por Rafa7 »

andriuking escribió:N Me refiero al ejemplo de que si un índice valia 200 hace 10 años y ahora vale 1000, en contratos de futuros la diferencia de ganancia y pérdida por operación es enorme. Tanto haciéndolo en moneda como en %, veo que no se resuelve este problema.
En % pienso que se resuelve el problema, ya que el DD en % es transparente al precio.

El problema en todo caso es como se pasa de % a euros. Si queremos después de sufrir un DD en fración D, ¿para hacer una operación más que capital podemos perder? Bueno, he supuesto que la cantidad es R.

La discusión puede ser en cuanto a que debe ser R.
Si tienes claro que debe ser R, el cálculo del capital mínimo es fácil: >= S + R / (1 - D).
R en concepto es obvio: La cantidad en euros que podemos perder en una operación.
Entonces ¿cuántos euros es R?

Y que R sea la máxima pérdida por operación en euros es una buena alternativa.
A ver, R probablemente se habrá producido en las últimas operaciones (si hablamos de bolsa o sus derivados), o al menos se habrá producido, probablemente, en los mayores niveles.

Si operas en largo y te preocupa que en el futuro los precios tendrán niveles mas superiores que actualmente y que entonces las pérdidas serán superiores a la R prevista, eso no debería preocuparte porque si la bolsa sube, tu ya te habrás forrado en euros. Y si ocurre lo contrario que los precios bajan, tu R ya es una buena referencia para el cálculo del capital mínimo. El capital mínimo se be calcular en función de los precios actuales, no en función de los precios futuros o pasados. Y si tomas R como la máxima pérdida en euros por operación del histórico, ya estas teniendo en cuenta el nivel actual de precios.


Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por Rafa7 »

andruikin,


El planteamiento de calcular el DD en fracción es válido siempre que operar con un solo contrato tenga un DD inferior al comprar y mantener. ¿Y cómo sabemos que eso sucede? Pues comparando el máximo DD del histórico de uno y de otro.

Supongamos que operando con un solo contrato tenemos un DD inferior al comprar y mantener (hemos hecho la comprobación anterior).

Podemos hacer la conversión de DD en fracción a euros de otra manera:

C = máx(P * D + R + S; (P * D + R) / T)
Donde
C = Capital mínimo,
P = Precio actual del contrato,
D = DrawDown en fracción.
R = Máxima pérdida en euros por operación del histórico,
T = fracción de riesgo tolerable.

Y calculamos el D, tal como hemos dicho últimamente: expresando los contratos como precioVenta / precioCompra, y en la simulación de Montecarlo multiplicar en lugar de sumar. Si la fracción mas baja es H, entonces el D = 1 - H.

El R lo añado como sumando para que si se produce el DD, poder hacer al menos una operación.

Una cosa importante, En todas las fórmulas que he presentado he supuesto que no hay apalancamiento. Con apalancamiento lo que tendríamos que hacer, es calcular el DD sin apalancamiento y luego multiplicarlo por el apalancamiento. (O sea que P * D tendriamos que multiplicarlo por el apalancamiento). Los que operais en futuros sabeis mejor que yo como corregir la fórmula para que sea válida con apalancamiento.


Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com

Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por Rafa7 »

Andriukin,


Por fin he diseñado un algoritmo "sencillo" que es "perfecto" para calcula el DrawDown, no solo para un solo activo, sino que para varios sistemas de trading con varios activos. Pensaba que era muy complicado, pero después de darle vueltas he visto que no es tan difícil. Se me ocurrió para un solo activo pero me dí cuenta de que en realidad sirve para multitud de activos.

Por no aburrir al foro no lo voy a exponer.

Solo una pincelada: los únicos datos necesarios por operación son: Número de orden cronológico, Precio de compra y Rendimiento (fraccional o logarítmico). ¡Solamente 3 datos por operación! Con esos 3 datos ya podemos calcular el DrawDown de multisistema multiactivo.
En cuanto a que el DrawDown sea transportable a los niveles de precios actuales, se necesitarían unos pocos datos más.


Saludos.
Última edición por Rafa7 el 05 Dic 2012 20:33, editado 2 veces en total.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
predator75
Mensajes: 353
Registrado: 16 Dic 2011 12:31

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por predator75 »

No creo que la gente se aburra, asi que ya estas poniendo la formula porque parece interesante.
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por Rafa7 »

predator75 escribió:No creo que la gente se aburra, asi que ya estas poniendo la formula porque parece interesante.
predator75,

Mi mujer no me deja ahora, tenemos que ver una película.
Mañana será otro día.
He rectificado una cosa de mi post anterior, no es necesario fecha, en su lugar un número de orden. Es necesario que las órdenes estén ordenadas cronológicamente, pero para ello no es necesaria una fecha sino un número de orden ya es suficiente.

Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por Rafa7 »

Sres. foristas.


EL sistema que propongo para calcular DrawDowns le pongo por nombre Cálculo de DrawDown sintético por sistema de Montecarlo.

En cuanto a los datos necesarios son:
Número de orden cronológico de las ventas (es decir a la primera venta le asignamos 1, a la segunda 2, etc ...), importe de compra y rendimiento fraccional.

Importe de compra es precio de compra por contrato por el número de contratos y por el apalancamiento, mas comisiones de compra.
El importe de venta es precio de venta por contrato por el número de contratos y por el apalancamiento, menos comisiones de venta y mantenimiento.
Y el rendimiento fraccional es: importeDeVenta / importeDeCompra - 1.

Sobre el rendimietno logarítmico, mejor nos olvidamos. El rendimietno logarítmico (me lo invento) sería Ln(ImporteVenta) - Ln(ImporteCompra). Pero vamos a trabajar con el rendimiento fraccional.

Con estos 3 datos se puede calcular bien el DrawDown sobre un único activo con el mismo sistema de trading.
Si queremos calcular el DrawDown para varios activos y sistemas necesitaríamos un cuarto dato: identificador de sistema/activo.

Cuando hablo de sistema de trading me refiero al englobe al subsistema de entradas/salidas y risk management (stops). Dejando aparate el substiema de Money Management (= Position Sizing).

Primeramente expondré el cálculo cuando operamos con un solo activo con el mismo sistema de trading, y luego cuando operamos con diversos activos y sistemas de trading. Y podríamos ir aún mas lejos, cómo calcular el DrawDown de un sistema de money management condiversos activos y sistemas de trading.

Vamos a suponer que el posicionamiento es simple. Es decir, que abrimos una operación con un número de contratos, el que sea, y vendemos de golpe todos los contratos de esa operación. O dicho de otro modo, no vamos a suponer que piramidamos o hacemos ventas parciales.

En el caso de que el posicionamiento es múltiple (piramidación, ventas parciales, etc ...) vamos a considerar que el importe de la compra es la suma de importes de las compras (si piramidamos) y que la operación se vende cuando acabamos de vender todos los títulos comprados (si hacemos ventas parciales).

Dicho todo esto, ya podemos seguir.


Saludos.
Última edición por Rafa7 el 06 Dic 2012 22:25, editado 1 vez en total.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por Rafa7 »

Sres. foristas:


Voy a exponer el algoritmo para un único sistema y activo.

Lo describiré como si se programase. ¿Se puede programar con Excel? Sí, se podría, aunque creo que sería mas complejo que si usamos un lenguaje cualquiera de programación.

1. Crear una tabla "Ventas" cuyas columnas sean número cronológico de venta, importe de compra y rendimiento fraccional.
2. Crear una tabla "Rendimientos aleatorios" cuyas columnas sean número aleatorio y rendimiento fraccional.
3. Crear una tabla "Montecarlo" cuyas columnas sean número de serie, número cronológico y euros.
3. Insertar, por orden cronológico, una fila en la tabla "Ventas" por cada venta realizada. (Esta tabla contiene todos los datos de entrada que necesitamos).
4. inicializamos un contador de series a 0.
5. Hacemos el siguiente proceso 10.000 veces:
---5.1. Sumamos 1 al contador de series.
---5.2. Por cada fila de la tabla "Ventas" generar una fila en la tabla "Rendimientos aleatorios". (Necesitaremos para ello una función aleatoria. Por ejemplo, Excel la tiene y se llama "Aleatorio()").
---5.3. Ordenar la tabla "Rendimiento aleatorios" por la columna de números aleatorios.
---5.4. Leemos la primera fila de "Ventas" (que está en ordenada por el número cronológico), y leemos la primera fila de "Rendimientos aleatorios" (que está ordenada por número aleatorio).
---5.5. Repetimos el siguiente proceso hasta que terminemos de leer la tabla de "Ventas":
------5.5.1 Insertamos una fila en la tabla "Montecarlo" guardando en la columna de número de serie el contador de serie, en la columna número cronológico el número cronológico de "Ventas" y en la columna de euros la multiplicación del importe de compra por el rendimiento fraccional aleatorio.
------5.5.2 Leemos la siguiente fila de "Ventas" y la siguiente fila de "Rendimientos aleatorios".
6. Procesamos la tabla "Montecarlo" para calcular el DrawDown en euros.

El apartado 6 no lo explico porque ya sabéis como hacerlo. Pero no tengo inconveniente en explicarlo si alguien lo pide.

Avisé que podía ser aburrido.
Podría seguir para explicar el algoritmo para varios activos y varios sistemas de trading, pero para que valga la pena postear necesito saber si interesa o no, porque os aseguro que escribir este tipos de post requieren mucho esfuerzo y no me gusta esforzarme para no ser leído.

Es muy importante si sigo, que antes se entienda este post, si no tampoco vale la pena seguir posteando, ya que si no se entiende este post tampoco se va ha entender los siguientes posteos.


Saludos.
Última edición por Rafa7 el 07 Dic 2012 00:29, editado 4 veces en total.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por Rafa7 »

Sres. foristas,

Comprendo que el post anterior es mareante. Voy a resumir un poco para que se entienda mejor.
Se trata de que en cada operación del histórico en lugar de asignarle su rendimiento fraccional, le asignemos un rendimiento fraccional aleatorio de las de operaciones del histórico.
Esto tiene una gran ventaja: Los euros ganados/perdidos de estas operaciones "sintéticas" son realistas ya que toman como referencia los importes de compra. Es decir, que no asignamos a una operación a nivel de 6.000 € el contrato los euros ganados/perdidos en otra operación cuando el nivel de precio es de 10.000 €. (Qué es lo que se hace tradicionalmente en las simulaciones de Montecarlo para calcular DD).

Una virtud del algoritmo propuesto es que sirve para combinación de operaciones con diferentes apalancamientos sobre el mismo activo y sistema de trading.

Explicado esto, si volvéis a leer el post anterior, lo entenderéis mejor.

Otro tema es que calculado el DrawDown en euros como trasladarlo a precios actuales, con fines predictivos:
DrawDownEnEuros * PrecioCompraContratoActual / PrecioCompraContratoPrimeraOperación.

Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por Rafa7 »

Pensaba terminar el hilo con el algoritmo para varios sistemas si hubiere interés.
El interés no lo he visto, pero de todas maneras voy a dar la pincelada a dicho algoritmo.
Se trataría de calcular el DD de cada sistema, por separado, según he explicado en los dos últmos post. Entonces, así, cada sistema tendría su serie de DD del 1%. Entonces mezclamos todas estas series de operaciones ordenándolas por el orden cronólogico. De ahí, fácilmente obtenemos el DD global.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
joselopezde
Mensajes: 460
Registrado: 20 Feb 2012 11:11

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por joselopezde »

hola Rafa, poco interés no... yo tengo y mucho... me voy leyendo todos los posts que escribes... (me imagino que somos bastantes)
pero ten en cuenta que muchos somos de letras y no llegamos a tu nivel, simplemente leemos y vamos aprendiendo
un saludo
Avatar de Usuario
Rafa7
Mensajes: 4924
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Estimación del DD por Montecarlo de un sistema multiacti

Mensaje por Rafa7 »

Gracias joselopezde,


En el caso de multisistema faltaría saber como trasladar el DD en euros a precios actuales. Una posibilidad es elegir un índice de referencia. Sí, por ejemplo, todos los sistemas son del mercado español, podríamos tomar como referencia el Ibex35. Y si los sistemas son internacionales, podríamos tomar como referencia, por ejemplo, el SP500.

Supongamos que los sistemas son internacionales. Entonces el DD en euros lo podríamos multiplicar por el valor actual del SP500 y dividir por por el valor del SP500 en el momento de la primera compra del histórico.


Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Sistemas de Trading”