Herramientas, aplicaciones y hojas excel y de Google para seguimiento de carteras

Álvaro, lo que preguntas ha sido mi caballo de batalla mucho tiempo. Empecé con la CNMV para españolas, y no hubo manera. Investigué un poco los xblr, y no llegué a nada. Con morningstar la cosa mejoró, además puedes bajarte los balances y demás en excel, pero aún así no es automático. Finalmente conseguí que un amigo hiciese unas excels que una vez te bajas los excels de morningstar, ella sóla se nutre de ellos, compara empresas y demás. Pero lo de bajar los excels automáticamente, no lo hemos conseguido. Por cierto, el MS Excel tiene una funcionalidad de nutrirse de datos de tablas en internet, sin embargo dependiendo del tipo de web, es muy problable que no te funcione (por ejemplo en la de morningstar), por si te interesa.

@jgalesco, muchas gracias por la información de la función TIR.NO.PER. Ahora bien, por lo que entiendo, te da la rentabilidad final de una acción. Ya es algo, desde luego, pero para tener la rentabilidad diaria (para poder ponerla sobre un gráfico) de una cartera de muchas acciones, la cosa se complica un poco. Aunque está claro que se puede hacer. Sería cuestión de poner una macro que descargue cotización histórica de cada acción de nustra cartera, y luego rellenar los datos que dices para cada acción, y englobar la suma de todas y los movimientos en una sóla columna de fechas y otra de cantidades, y usar la formula diariamente (una vez por fila, por ejemplo, siendo las filas los días) como indicas… En fin, me estoy montando ya mi película…hay que pensarlo un poco pero algo así haré supongo.

@Alvaro M., supongo que tú con tu excel haces algo así, no? O cómo lo has enfocado? (sé que en tu blog hiciste una entrada de esto, sobre los cálculos que usabas, pero la cosa se complica si lo queremos en tiempo real, o que se nos grafique diariamente, o mensualmente, más o menos de forma automática, la cartera).

Gracias

Si la página donde entras necesita clave tampoco podrás bajarte (o yo no sé hacerlo) la información automáticamente con el Excel. Me pasa esto con la página de la OCU.

Yo uso Google Finance para el seguimiento de la cartera hasta que avance un poco más una aplicación que me estoy haciendo. La base de datos la tengo bastante completa y los scripts para bajarme los precios diarios también. De momento me sirve para hacer de forma sencilla el D6 y el 720 pero le queda mucho trabajo; a ver cuando tengo tiempo y le puedo añadir las mejoras que tengo pensado (las primeras el cálculo de rentabilidades y facilitar la declaración de la renta)…

Para los precios objetivo, yield que daría y demás uso una hoja de cálculo de Google que saca los datos de Google Finance y Yahoo (supongo que como muchos por aquí).

Semanas atrás manifesté mi inutilidad total en cuanto al uso de excels y todo lo que conlleva el manejo de las tecnologías actuales.

No obstante me interesé por la herramienta de Google Drive y después de unas semanas de ir probando e conseguido montarme unos seguimientos de carteras bastante completos. Las de las operaciones matemáticas las pillé enseguida así como todas las básicas que nos ofrece las de Google Finance. Pero hay una parte con lo que no me hago: la importación de datos de otras webs.

Google Finance no tiene ticket para varios fondos y ETFs por lo que hay la posibilidad de conseguir la cotización actual a través de importar datos de páginas como Yahoo Finance o Morningstar. He sido incapaz. He probado todo tipo de fórmulas, he copiado otras que he visto y nada. No suele gustarme pedir ayuda porque eso supone trabajo para otra persona pero viendo mis limitaciones no me queda otra.

Necesito la fórmula para la cotización actual (la de tiempo real se entiende) de 3 ETFs y 3 fondos y os pido ayuda. Que narices debo escribir en esa celda para que me dé la cotización de:

ETFs:

  • HSBC Etfs PLC HSBC MSCI Indonesia UCITS ETF (DE000A1JF7Q9): comprado en el Xetra alemán y cotizando en Euros.
  • Ishares MSCI Poland ETF (IE00B4N7GH52): comprado en el Xetra alemán y cotizando en Euros.
  • Ishares MSCI South Africa (IE00B52XQP83): comprado en el Xetra alemán y cotizando en Euros

Recalco lo del Xetra porque también se pueden comprar en las bolsas de Londres, París y Milán pero cotizan distinto.

FONDOS:

  • Metavalor Dividendo FI (ES0162701009)
  • Aberdeen Global Indian Equity A2 (LU0231490524)
  • Fidelity China Focus A-Acc-Eur (LU0318931192)

Todos cotizando en Euros.

Muchas gracias por toda la ayuda que me podaís prestar.

Hola, JordiRP,

Para los ETFs no sé, pero para los fondos puedes utilizar la web quefondos.com.

=SPLIT(MID(importXml(CONCATENATE(“http://www.quefondos.com/es/fondos/ficha/index.html?isin=“;A1);”(//span[@class=‘floatright’])[6]");1;50);"EUR”)

donde A1 es la celda que contiene el ISIN del fondo.

Está explicado en: Seguimiento de cartera con Google Sheets y GoogleFinance | Los cazadividendos

Yo uso mi hoja Excel y usaba Impok (era lo mejor)…cuando.impok dejo de funcionar empecé con Visual economy…facil y efectiva.

Saludos

Hola JordiRP,

A ver si te funciona este para el Metavalor Dividendo:

=SPLIT( MID( importXml( “METAVALOR DIVIDENDO, FI (ES0162701009) · METAGESTION”; “(//span[@class=‘floatright’])[6]”); 1; 50);“EUR”)

Yo lo saqué del artículo de cazadividendos del cual ha puesto el enlace, no sin volverme loco… No se por qué a veces al copiar y pegar la fórmula no funciona. Probé a borrar las comillas, puntos y comas, y demás símbolos y al final funcionó…

Muchas gracias Luís y Novatillo pero me sigue dando error.

He probado de copiar ambas fórmulas y me da error, concretamente #NA (el contenido xml importado no se puede analizar). Esto es lo que escribo en la celda:

=SPLIT(EXTRAE(IMPORTXML(CONCATENAR(“http://quefondos.com/es/fondos/ficha/index.html?isin=“;C39);”(//span[@class=´floatright´])[6]");1;50);"EUR”).

Seguro que hago mal pero no acierto ver el que.

Hola JordiRP,

Mi consejo es que si copias y pegas la fórmula directamente, deberías borrar luego las comillas (tanto las dobles como las simples) y volver a escribirlas. Suele dar problemas si las copias tal cual.

La fórmula que pones es correcta si en la casilla C39 tienes el ISIN del fondo cuyo valor quieres ver y, evidentemente, le borras el punto final.

Saludos.

Pues lo que yo decía…una gilipollez.

Testado que el copia y pga no funciona, primero opté por borrar y restituir paréntesis y comillas con idéntico resultado y finalmente el escribir toda la fórmula completa. Y seguía dando error. Cuando ya decidí dejarlo correr y poner manualmente cada día 15 y 30 del mes se me encendió la bombilla. La palabra floatright yo la entrecomillaba con acentos cuando debía usar la comilla simple.

Dicho y hecho y la cotización apareció.

Muchas gracias a todos por vuestra ayuda.

Buenas a todos,

Aunque todavía no me he presentado, cuando tenga un hueco lo haré, me ha parecido interesante este hilo porque me defiendo con Google Sheets y quería responder a JordiRP, te indico cómo añadir los ETF’s para seguir tu cartera en Google Sheets.

Supongamos que tienes en la celda B5 el ISIN o el código del valor, es decir, B5=DE000A1JF7Q9, que sería el ETF: HSBC Etfs PLC HSBC MSCI Indonesia UCITS ETF.

Entonces en la celda donde quieras conseguir el valor del ETF tienes que poner esto:

=VALUE(SUBSTITUTE(INDEX(importXML(“https://www.justetf.com/en/etf-profile.html?isin=“&B5;”//div[@class=‘val’]/span");2;1);“.”;",”))

Dos cosas importantes, si tienes la celda en valores USA, es decir, los decimales se muestran con un punto, entonces la formula los puntos y comas son comas, si es en EUR, los decimales se muestran con una coma, entonces no hay que cambiar nada.

Y lo segundo son las comillas, normalmente los editores como el del foro las cambian y cuando lo introduces en una celda no funciona, así que tendrás que volver a introducirlas.

Espero que te sea de ayuda.

1 me gusta

Hola, espero que este sea el sitio adecuado. Veo que algunos dominais el Google Sheet. No encuentro la forma de retirar los datos EBITDA de los valores. Alguna idea ¿?

Buenas tardes a todos,

Me gustaría haceros una consulta por si alguno me la sabéis resolver. Se trata de configurar Google Sheets para que cuando una de las casillas de la hoja de cálculo alcanza un valor que te interesa de cara a la operativa. El precio de los distintos índices y valores lo tengo solucionado con una aplicación excelente para móviles (Stock Watcher 2), que revisa el mercado cada X minutos para informarte si el precio que le has indicado lo ha sobrepasado por encima o por debajo.

Yo quiero ir más allá. Mi intención es crear una casilla con el nivel de contango/backwardation de un índice, y eso lo consigo dividiendo en una casilla dos valores distintos. Me gustaría que Google Sheets me enviase un email cuando el valor de esa casilla superase el 0,925, y actualmente no tengo ni la más remota idea de cómo hacerlo.

Por lo tanto, aquí dejo esta consulta para los cinturones negros de Google Sheets, que me consta que hay muchos por estos lares.

Un saludo.

Hola

Ya que estamos ¿A alguien le va bien google spreadsheets? Porque desde hace unas semanas los importHtml me van fatal, no se me actualiza el 80% de casillas importadas de webs con datos de BPA, DPA, etc

Antes iba mal pero normalmente al final de la sesion (22:00 sesion americana) o en fines de semana cargaba todo. Ahora ya ni eso

Un saludo

Yo tengo el mismo problema con importHtml. Apenas se me cargan los datos.

Para lo de enviar emails prueba con esto:

La pregunta es muy buena, creo que voy a intentarlo para mi hoja de seguimiento…

Ahora que te leo, ya veo que no es solo cosa mía … lo cual no evita el cabreo que produce el llevar ya un montón de días con todas las tablas colgadas dando error. El día que por cualquier cosa el dueño del cortijo (Mr Google) decida abandonar a su suerte a los pobres que vivimos del free nos matan en el acto.

Un saludo.

¡Milagro! Después de no se cuanto tiempo acabo de entrar y están cargando todas las fórmulas sin error. Voy a hacerle una foto para poder mirarla como recuerdo porque dentro de nada seguro que nos dejan de nuevo a “oscuras”. Free is free…

Un saludo.

Código sencillo para enviar datos de nuestras hojas de cálculo por email:

function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet(); // Seleccionamos la hoja activa (la que está asociada al script)

var startRow = 5; // Primera Fila de datos a procesar
var numRows = 1; // Número de filas a procesar
// Obtiene el rango de fechas a procesar (B5:C5)
var dataRange = sheet.getRange(startRow, 2, numRows, 2)
// Obtiene los valores para cada fila en el rango.
var data = dataRange.getValues();
for (i in data) { //Hace un barrido para obtener los datos de las 2 columnas
var row = data[i]; //Lee la fila i que hay en data
var emailAddress = row[0]; // Primera columna
var message = row[1]; // Segunda Columna
var subject = “Enviando alertas de mis inversiones”;
MailApp.sendEmail(emailAddress, subject, message);
}
}

Esto es muy básico, y tendréis que autorizar el script.

Lo voy a implementar en mis hojas de cálculo, cuando lo ponga en práctica os daré más detalles.

1 me gusta

Hola Luismi. Cuando lo imprementes en una hoja de prueba, súbelo para echarle un vistazo. Gracias.

1 me gusta