Vale, tus datos eran correctos. Mi error era usar en la fórmula rendimiento y desviación anualizados. Lo correcto es usar la media y desviación de los retornos diarios, que son los que aprox. siguen la distribución normal, y multiplicar después por la raíz cuadrada de 250 (días de mercado en un año).Cosas del camino aleatorio.Saludos
El máximo drawdown del Fundsmith en los últimos 5 años es del 14,49% tomando cierres mensuales. El real con VLs diarios es del 26,94% :19/02/20... VL=45,7323/03/20... VL=33,41Solo por precisar.
Necesitas la matriz de covarianzas y las ponderaciones.La matriz de covarianzas la obtienes a partir de la matriz de correlaciones multiplicando cada término por las 2 sigmas (desviaciones estándard) correspondientes.Para el cálculo de la varianza de la cartera lo más rápido es usar las funciones MMULT() y TRANSPONER(), multiplicar y transponer vectores/matrices respectivamente.Con las ponderaciones dispuestas en una fila, la fórmula sería (es una fórmula array, se termina con Ctrl+Shift+Enter)=MMULT(MMULT(rango ponderaciones; rango covarianzas);TRANSPONER(rango ponderaciones))Hay otras maneras. Hay muchos ejemplos en youtube: Portafolio de Markowitz, complemento de Excel Solver para optimizar los pesos, etc. Saludos
No problem Thorn, siempre nos quedará QueFondos ( y quéAburrimiento sacar los ISIN de al menos 150 fondos USA diferentes. Pequeñas muestras = pequeños tests).Aprovecho para publicar el resumen de la estrategia momentum que comentaba sobre un universo de 425 fondos. En esta versión de la estrategia se compran los 20 mejores fondos de cada mes y se venden todos al final del mes siguiente. Se aplica un stop loss del -5% tanto para cada fondo como para el conjunto de la cartera. Los VL de los fondos que se cierran por SL son D+1. Comprar menos de 20 fondos reduce la rentabilidad obtenida. Como curiosidad comprar los 20 peores bate al comprar los 20 mejores.No hemos ganao ni al Alavés..., digo al Amundi.Saludos
Yes, sir.La foto que pones da a entender que no has ejecutado la instrucción en amarillo, de modo que HTML_Text es todavía Empty/Vacío. Prueba esta versión que se puede ejecutar directamente en el VBE sin necesidad de pasarle argumento, y con el break donde se indica:
Hola, ignoro tu nivel en Excel y VBA pero "escondidos" en el código HTML de la página de fondos de Financial Times tienes los retornos diarios sobre 1000€ del fondo durante los últimos 5 años (obtener los VL sería aplicar una simple regla de 3 a partir del actual VL.).El HTML lo puedes obtener programáticamente creando un procedimiento o función en Excel. Tal que así:Function Roadbiker(ISIN As Variant) ' FT_path = "https://markets.ft.com/data/funds/tearsheet/summary?s=" FT_url = FT_path & ISIN ' Set obj = CreateObject("MSXML2.XMLHTTP") With obj .Open "GET", FT_url, False .send Do Until .readyState = 4 DoEvents Loop HTML_Text = .responseText End With 'aquí código para tratar la cadena HTML_Text '...End FunctionLa función tal como está te cargaría el HTML del fondo definido por su ISIN en la variable string HTML_Text. Ahora te tocaria terminar el código VBA, usando recurrentemente la función InStr, para sacar fechas y retornos y escribirlos en una hoja Excel.Todo similar a la función ImportXML de Google Sheets que emplea mucha gente en este foro para obtener los VL.El HTML de una página web (lo que almacenaría HTML_Text) lo puedes ver tecleando Ctrl+U.