Acceder

Mi Cartera: Simulación de Bootstrapping

7 respuestas
Mi Cartera: Simulación de Bootstrapping
1 suscriptores
Mi Cartera: Simulación de Bootstrapping
#1

Mi Cartera: Simulación de Bootstrapping

Simulación Bootstrapping

Mi Cartera

El Bootstrapping es, a “grosso modo” la curva teórica de rendimientos en la evolución de un activo en concreto basándose en un comportamiento constante de los rendimientos anteriores. Es decir, sería la previsión de la rentabilidad de un activo en el caso de que las rentabilidades pasadas se mantuvieran en cierto modo constantes en el tiempo. Este concepto precisamente es el contrario al mantra que siempre se repite en los mercados financieros y que es aplicable a muchos elementos de nuestro día a día: “rentabilidades pasadas no determinan rentabilidades futuras”.

Sin embargo hacer una estimación futura de las rentabilidades de nuestra cartera (sin ser un resultado determinante) puede servirnos a la hora de analizar en qué medida respondería nuestra cartera ante una situación socioeconómica parecida a la actual. Y sin ser muy partidario de las bolas de cristal, la herramienta que ofrece Mi Cartera es un buen método estadístico para realizar una previsión de la evolución de nuestras carteras. En este caso vamos a analizar cuál sería el resultado de aplicar el Bootstrapping en mi cartera real de fondos, que pese a llevar poco tiempo de vida nos servirá como caso de ejemplo. 

Para ello, en primer lugar deberemos seleccionar la cartera que queremos analizar y clicar en el botón de Simulación de Bootstrapping situado en la parte inferior.

Mi Cartera

En la siguiente pantalla podremos seleccionar en primer lugar el intervalo temporal del cual realizará las proyecciones, es recomendable que este plazo sea el más grande posible de manera que pueda ser más representativo. Y en segundo lugar, podremos seleccionar los parámetros para la simulación. En nuestro caso seleccionaremos en número de trayectorias 5.000,  número de años 5 (pese a ser recomendable no realizar simulaciones en un plazo superior a 3-5 años), y un nivel de confianza del 95%.

Mi Cartera

El resultado de la simulación muestra tres escenarios en un primer gráfico, una buena donde la rentabilidad esperada es de un 63,83%, una rentabilidad media o esperada de 31,85% y una mala de un 4,27%. En la parte inferior del gráfico encontramos otros datos referidos al   Maxloss, TimeToMaxloss y TimeToBreakEven.

Mi Cartera

El último gráfico que encontramos es un resultado estadístico de la distribución de los rendimientos acumulados, en el cual podemos analizar la probabilidad de obtener una determinada rentabilidad. Por ejemplo, en este caso el resultado que hemos obtenido es de un rendimiento de entre 21,10% y 29.88% con una probabilidad de un 19,64%. Podemos observar que la probabilidad de obtener unos resultados extremos es decir de entre 85%-94% es de un 0,26%, pero a su vez, la probabilidad de obtener un resultado de entre -5,5% y 2% es de un 2%.

Mi Cartera

Esta herramienta de Mi cartera por tanto nos permite realizar un estudio de probabilidades sobre las rentabilidades futuras, pero no debemos olvidar que se basa en el comportamiento pasado y por tanto los resultados no son estrictamente veraces. 

¿Cuál es el resultado de vuestra  Simulación de Bootstrapping ?

#2

Re: Mi Cartera: Simulación de Bootstrapping

Hola,

¿Esta herramienta que tipo de bootstraping realiza? ¿Bootstrap a secas? ¿Wild bootstrap? ¿block bootstrap?

Saludos

#3

Re: Mi Cartera: Simulación de Bootstrapping

Buenas tardes Prometeo,

En respuesta a tu pregunta es Bootstrapping a secas. ¿Cuál ha sido el resultado de tu análisis?

Un saludo.

#4

Re: Mi Cartera: Simulación de Bootstrapping

Hola Samuel,

No he realizado ninguna prueba. Mi pregunta venía motivada por que yo utilizo también bootstrap para hacer el backtest o calibrado de algunas estrategias. Pero no hago bootstrap "a pelo", sino que hago block-bootstrap. Te cuento:

Con el bootstrapping a secas lo que consigues, frenta a simulaciones Monte Carlo, es que las nuevas muestras tengan la misma distribución incondicional que los datos históricos (verdaderos). En otras palabras, si en los datos históricos hay grandes caidas, en las muestras bootstrap también estarán presentes (esto es bueno), mientras que con una simulación MonteCarlo normal, no, ya que asume normalidad y estas observaciones tan extremas son muy improbables bajo normalidad (pero en el mundo real ocurren).

No obstante, al hacer bootstrap a secas, te estás cargando toda la estructura que puedan tener los datos. Con esto me refiero a que con bootstrap dificilmente podrás reproducir periodos alcistas o periodos bajistas. En otras palabras, al seleccionar aleatoriamente las observaciones, tendrás mezcla de observaciones positivas y negativas, pero no tendrás periodos en los que se dan muchas observaciones consecutivas negativas (crash) o periodos en los que se dan muchas observaciones positivas consecutivas (boom).

Para solucionar esto existe el block-bootstrap, que en lugar de escoger aleatoriamente observaciones individuales, lo que hace es coger bloques y luego se concatenan. Al coger bloques de un determinado tamaño estás recogiendo si hay periodos de caidas o subidas, y esto es importante para checkear estrategias. La longitud del bloque suele ser el natural más cercano a n^1/3, donde n es el numero de observaciones de la serie original, pero no hay un criterio único. Además, los bloques pueden estar solapados.

Saludos

 

#5

Re: Mi Cartera: Simulación de Bootstrapping

Creo que he entendido lo que querías decir. En definitiva, si realizas Bootstrapping a secas partes de datos históricos reales y supone que si el periodo seleccionado es un boom o tendencia alcista (o al contrario) no refleja la evolución normalizada del activo. ¿Estoy en lo cierto?

Mi pregunta es sobre la técnica que comentas para evitar esto, ¿seleccionas bloques o periodos de tiempo donde presupones un comportamiento normalizado del activo? ¿En base a qué criterios seleccionas esos periodo? Me refiero, como consideras que en ese bloque que comentas, el comportamiento ha sido normalizado. Y por último, ¿qué ocurriría en el caso que quisieras analizar un activo concreto, en este caso un fondo de inversión de reciente creación, donde los históricos fueran escasos? 

Disculpa si no he entendido bien tu comentario. 

Un saludo.

#6

Re: Mi Cartera: Simulación de Bootstrapping

Los bloques son periodos de tiempo, como tu dices. Imagina que selecciono un longitud del bloque de 20 observaciones (por el criterio que sea). Entonces cuando seleccione una observación de la muestra original como si hiciese bootstrap simple, me quedo con esa observación y las 19 siguientes (en total 20, la longitud del bloque). De esta manera si hay dependencia temporal en los datos (autoregresivo, alta volatilidad, tendencia, etc....), me aparecerá reflejado en muchos de los miles de bloques que concateno para formar las 5000 muestras bootstrap. Luego capitalizo los rendimientos para tener la serie de precios.

Si no lo hago con bloques, no capturo las posibles estructuras que se dan en los precios de los activos, ya que el bootstrap a pelo asume que las observaciones son independientes unas de otras, cuando no es así.

Saludos

#7

Re: Mi Cartera: Simulación de Bootstrapping

Habiendo leido solo diagonalmente a gran velocidad sobre el tema que seguro conoces mucho mejor que yo, solo puedo recurrir al criterio  de autoridad de E.P Chan. En un reciente articulo en seekingalpha comentaba sobre un usuario que usaba la tecnica que describes, desaconsejandola por que no solia representar bien la "memoria" de las tendencias. En el articulo preferia usar modelos de series temporales para optimizar los resultados de las pruebas.

#8

Re: Mi Cartera: Simulación de Bootstrapping

Hola Subastero,

Yo mismo soy prometeus en seeking alpha, que le contesto sobre su metodología. Lo que hace Chan es otra solución al problema que yo planteo: si los datos tienen estructura de serie temporal (que la tienen), al hacer un bootstrap simple te la cargas, y las muestras bootstrap que vas a usar para tu backtest no recogerán esta característica de los datos.

Chan lo que propone es recoger primero toda la estructura posible con un modelo ARMA-GARCH, y luego hace bootstrap de los residuos y les da estructura con el modelo ARMA-GARCH que ha estimado previamente. De esta manera las muestras bootstrap podrán recoger clusters de volatilidad elevada (heterocedasticidad) o comportamientos autoregresivos (reversiones a una media, etc...).

Obviamente esto es mejor que hacer un bootstrap a pelo, ya que si los datos reales tienen estructura ARMA-GARCH la estás capturando y reproduciendo.

No obstante, lo que yo intento decirle, y creo que no lo ha entendido, es que esta metodología supone que toda la estructura de los datos reales se puede recoger con un modelo ARMA-GARCH, y esto no es cierto. Como el dice en su penúltimo párrafo,

"Of course, optimal in this case only means optimal within a certain universe of strategies and assuming an underlying AR(1)+GARCH(1, 1) price series model. "

Es decir, su propuesta será la óptima si los datos siguen, efectivamente un modelo ARMA-GARCH.

Lo que yo propongo allí y aquí es utilizar block-bootstrap, que al hacer el re-sampling por bloques de observaciones consecutivas estás capturando la estructura de los datos (tengan forma ARMA-GARCH o la forma que sea). Además, esta estructura es libre, ya que no asumes ninguna forma funcional (no paramétrica), simplemente lo que te digan los datos. Es decir, ¿porqué un GARCH y no un FIGARCH o un TGARCH o un GARCH con saltos? Hay muchos modelos que pueden ajustar la serie, pero serán aproximaciones que nunca recogerán todas las características y relaciones de dependencia de los datos, mientras que con el block-bootstrap, que no asume ningún modelo, sí.

Para finalizar, siendo honesto, estamos discutiendo refinamientos de metodología que a la hora de llevar a la práctica no creo que hagan una diferencia significativa.

Saludos