martes, 2 de enero de 2018

Como automatizar la comparación de carteras en fondos con Morningstar, Excel y Google Spreadsheets



Tras la última entrada en Cazadividendos escrita por Canela Fina paso a exponer como he automatizado en Excel un comparador de fondos donde ver, sin tener que buscar la cartera, la actualización de las mayores 10 posiciones de varios fondos, compararlo entre ellos y ver coincidencias.
El motivo de hacerlo en Excel es que para mí es mucho más fácil manejarlo que Google Sheets por deformación profesional. No obstante si alguien se anima a hacer algo parecido en Google Sheets sera bienvenido, os dejare al final una pequeña ayuda.

EXCEL

El concepto es el siguiente:

Encuentro varios fondos interesantes que quiera tener en cuenta, para el ejemplo usare Cobas Internacional y AzValor Internacional.
Encuentro su página en morningstar y su cartera: COBAS y AZVALOR

Ahora empieza el proceso de importación de datos a nuestro Excel. Existen maneras más optimas pero que requieren conocimientos de programación visual basic y HTML. En concreto la manera optima sería crear un objeto asociado a internet explorer decirle que navegue a nuestra web con los datos, navegar en el código HTML ver como están guardados los datos que queremos y pedir que nos los copie. No obstante no os asustéis existe una manera más simple que es importar datos desde una web:

En esta misma pestaña esta el boton actualizar todo que usaremos cada vez que queramos descargar de nuevo los datos desde morningstar.
Al darle al boton desde web nos aparecerá un navegador muy simple, donde introduciremos la web de morningstar.
En otras webs nos permiten seleccionar exactamente que queremos bajar, en morningstar yo no lo logré así que me bajo toda la web dando a importar, es decir matar moscas a cañonazos:
Elegimos donde queremos grabar los datos y nos queda algo así muy feo:

Nota, antes de seguir, los datos no se graban siempre en la fila 87, dependerá del fondo puede haber pequeñas modificaciones.
Ahora bien podéis empezar a poneros los datos bonitos en otra hoja usando formulas y recogiendo los datos que os sean útiles.

En mi caso prefiero usar macros porque hago todo del tiron. Me copio los datos que quiero a otra hoja, los estructuro y organizo como quiero realizo ya una comparación para ver que valores se repiten y me guardo un histórico quedando algo así:


Además mediante filtros puedo ver que empresas se repiten en los fondos que sigo:


Veis que Renault, Lonza, Sartorius y Hyundai eran empresas que se repetían en al menos 2 de los fondos que sigo. No pondré imagen pero si filtro por el nombre del fondo y miro más columnas puedo ver que top 10 de empresas tenía ese fondo en mi última actualización y comparar.

Aunque el Excel es completamente funcional no es interfazmente agradable y listo para un usuario básico. Falta de tiempo y que lo hice con la idea de usarlo yo, no de compartir, pero podrían usarse tablas y gráficos dinámicos para tener un resultado más visual.

GOOGLE SPREADSHEETS

Si habéis leído la parte de Excel tendréis una idea de lo que quiero llegar a hacer.
Bien, vamos a lo interesante. ¿os imagináis una hoja Google que nos diga lo que hacen nuestros fondos automáticamente? Ese sería el objetivo de esta entrada. Como dije para el ejemplo iba a usar AzValor y Cobas ambos con sus fondos internacionales. He investigado un poco pero el trabajo aún no esta acabado.
Para importar datos desde Morningstar podemos usar la formula importhtml y obtener los datos que queramos. Ventajas y problemas, se actualiza automaticamente, por tanto me resultará más difícil mantener el histórico, tendré que usar macros, llamadas aquí scrips. Los scrips de Google Sheet se programan en Java, el cuál desconozco, no creo que me llevará tiempo en aprender puesto que ya conozco varios lenguajes de programación pero no es inmediato quizás alguno de nuestros inversores ingenieros informáticos se animen pero necesitaríamos:

Un scrip que procesase los datos de todos los fondos a comparar y los pusiera todos juntos en una tabla con las columnas: Empresa, Fondo, Peso, Fecha de actualización, Veces repetidas en la lista (en excel es la función contar) y Variación con respecto última actualización (A calcular mediante otro Scrip). En el ejemplo lo he hecho con formula puesto que sirve para salir al paso.

Otro scrip que almacenase esa información en otra hoja sin estar enlazada al importhtml osea que fuese estática para que al producirse una actualización comparase el valor antiguo con el nuevo y pudiese rellenar la columna "Variación con respecto última actualización" Tened en cuenta que las empresas que desaparezcan del top 10 no aparecerán en nuestra lista. Esto creo que solo se puede hacer mediante Scrip

Poner los datos bonitos.

Tras todo este toston, os dejo una hoja de google donde comparo con actualizaciones automáticas las 10 primeras posiciones de AzValor y de Cobas y miro cuantas veces aparecen repetidos los valores.
Faltaría la parte del histórico para ver como progresan las posiciones que solo veo manera de hacerlo mediante Scrip. así como añadir más fondos a la ecuación.

¿os animáis?

HOJA DE GOOGLE AQUÍ

Si os es útil y os a gustado compartirlo en vuestras redes sociales que ya sabéis, ayuda un montón ;)

El joven inversor

Autor & Editor

Invierto en bolsa desde 2013. Te muestro mi camino para alcanzar la libertad financiera. Si tienes alguna duda o alguna sugerencia deja tu comentario.

2 comentarios:

  1. Muy interesante tu artículo, lo de automatizar el copiado de datos lo haré cuando tenga un rato, es que llevo algunos proyectos entre manos y no doy abasto.

    Ya he copiado la hoja de calculo y espero que sea más pronto que tarde me pondré a automatizar los datos.

    Muchas gracias por la idea y la hoja de calculo que servirá para encontrar ideas de inversión.

    Saludos!!

    ResponderEliminar
    Respuestas
    1. Hola Luis Miguel,

      En el documento compartido al final he añadido yo fondos internacionales, salen pocas comparaciones pero alguna sale ;)

      Un abrazo

      Eliminar