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

Para seguimiento de cotizaciones, Yahoo Finance. Para seguimiento de noticias, análisis, presentación de resultados, etc, Seeking Alpha.

Yo tengo toda la cartera en un Excell y hay es donde lo veo todo con detenimiento, pero eso suelo hacerlo una vez al mes, cuando meto los dividendos.
Investing lo utilizo porque tengo activada la opción de que todos los sábados me mande un email con el movimiento semanal de mi cartera, muestra los movimientos de las acciones por individual y el conjunto cartera.
Y la que utilizo para vistazo rápido del día es la de Yahoo, el problema es que tanto yahoo como investing las cifras no me coincide con la realidad.
A los que utilizas investing o yahoo os pasa?

Para USA Seeking Alpha, tiempo real, Investing para Europa y Morningstar para mi cartera.

1 me gusta

Desde hace tiempo Croda International no sale en Google Finance con el ticker LON:CRDA.

¿Alguien sabe si ha cambiado de ticker?

A veces lo cambian sin avisar, en Yah CRDA.L pero en SA aparecen como COIH. algo en OTC $.
Paso parecido con Barrick Gold, ABX a GOLD…pero en SA lo actualizan rapido.

Hola compañeros,

Escribo porque no encuentro la manera de recuperar el yield en Google Sheet. He probado varias opciones y siempre funcionan a la primera y luego dejan de funcionar. Os pongo ejemplos de fórmulas que he utilizado:

=IMPORTXML(CONCATENAR(“https://finance.yahoo.com/quote/“;XX);”//*[@id=‘quote-summary’]/div[2]/table/tbody/tr[6]/td[2]”)

=importXML(CONCATENAR(“https://seekingalpha.com/symbol/“;XX;”/analysis-and-news");"//[@id=‘quotes-chart-data’]/div[5]/span[2]”)

=SPLIT(INDICE(ImportHtml(CONCATENAR(“Symbol Lookup from Yahoo Finance ()”;VERDADERO)

Donde XX es el ticker de la acción de turno.
Uso Firefox y las funciones de Google me obliga a poner punto y coma (,) en vez de coma (,) como he visto en otros ejemplos.
Las hojas que uso tienen varias decenas de registros, puede ser por un exceso de registros?

Alguien tiene una formula para Google Sheet que obtenga el yield y le funcione normalmente? Es un poco frustrante currarte una “pedazo de hoja” y que el dato sobre el que casi se basa todo deje de funcionar de un dia para otro :sob:

Muchas gracias a todos de antemano!!!

1 me gusta

A mí me pasa lo mismo con importXML/importHTML. Cuando hay muchas filas tienden a colgarse.
Al final mantengo el dato de dividendo a mano (y es un gustazo actualizarlo en cada subida :grinning:). Como el precio siempre va bien con GoogleFinance(), obtener el yield es solo hacer la división…

Hola.

Me gustaría guardar automáticamente el valor total de mi cartera el último día de mes en una nueva línea de una pestaña concreta y que esos datos se almacenen indefinidamente junto a la fecha correspondiente, ¿sabéis cómo se puede hacer? Llevo un buen rato buscando información por Internet sin éxito.

Muchas gracias de antemano.

Buenas @AlvaroLP, esta opción se hace a través de programación en los scripts de google y daría para un artículo bastante largo en el foro.

Hola,
Es una opinión, pero salvo que lo encuentres hecho no sé si te va a compensar el esfuerzo. Yo el último día de mes hago bastantes cosas a mano (cálculo de ahorro, rendimientos etc.) y veo imposible automatizarlo.
Para lo que dices, tendrías que crear un trigger temporal que se lanzara el día 30 a la hora adecuada:

Yo nunca lo he hecho y no sé cómo de complicado será. Es investigarlo…

Ese trigger tendría que invocar a una función que hiciera la copia. Si sabes algo de Javascript, esto es bastante trivial. Si no lo sabes, dime y te oriento

1 me gusta

Gracias a ambos por orientarme dónde buscar. Voy a informarme.

Un saludo.

¿Alguien sabe alguna manera de obtener el VLP de un fondo en una hoja de Google Finance de manera sencilla?

Por lo que veo,

googleFinance(ticker;“netassets”)

devuelve el NAV. No sé si esto es lo mismo que el FLV, pero es lo más parecido que se puede sacar:

Si se trata de fondos de inversión, attribute es uno de los siguientes valores:

  • "closeyest" : precio al cierre del día anterior.
  • "date" : fecha de comunicación del valor neto del activo.
  • "returnytd" : retorno obtenido durante el año hasta la fecha.
  • "netassets" : activos netos.
  • "change": variación entre el último valor del activo comunicado y el valor inmediatamente anterior.
  • "changepct": variación porcentual del valor neto del activo.
  • "yieldpct": rendimiento de distribución; suma de las distribuciones de ingresos de los últimos 12 meses (dividendos de acciones y pagos de intereses de renta fija) y ganancias de valores de activos netos divididas por el número de valores de activos netos del mes anterior
  • "returnday" : retorno total en un día.
  • "return1" : retorno total en una semana.
  • "return4" : retorno total en cuatro semanas.
  • "return13" : retorno total en trece semanas.
  • "return52" : retorno total en 52 semanas (anual).
  • "return156" : retorno total en 156 semanas (3 años).
  • "return260" : retorno total en 260 semanas (5 años).
  • "incomedividend" : importe de la distribución de efectivo más reciente.
  • "incomedividenddate" : fecha de la distribución de efectivo más reciente.
  • "capitalgain" : importe de la distribución de ganancias de capital más reciente.
  • "morningstarrating" : valoración en “estrellas” de Morningstar.
  • "expenseratio" : coeficiente de gastos del fondo.

Hola @Juanvi,

Al final seguí investigando y resulta que me faltaba un caracter en la sentencia que utilizaba, al final queda así:

=importXML(CONCATENAR(“https://seekingalpha.com/symbol/“;XX;”/analysis-and-news");"//*[@id=‘quotes-chart-data’]/div[5]/span[2]”)

“XX” es el ticker de la empresa sobre la que quieres consultar el dividendo anual. Va bastante bien, aunque si tienes centenares de registros tarda un buen rato en mostrarlos todos jejejeje.

4 Me gusta

Pues voy a probarlo, a ver si ya no se atascan.

¡Gracias!

Funciona de maravilla. Yo casi había tirado la toalla con este tema: extraerla de Yahoo Finance es un infierno. Abusando de tu amabilidad, ¿sabes como importar el “4 Year Average Yield” ? Gracias

Hola Ruindog,

Pues estoy intentando sacar un dato parecido al que mencionas, pero del apartado “Dividend Safety” y no logro mostrarlo. De todas formas, sigo intentándolo y en cuanto saque algo te comento. :grin:

1 me gusta

Yo tengo automatizado bastantes scripts que se activan diariamente, mensualmente etc… el concepto es simple: se crea un script que realize los cálculos y escriba en las celdas y luego se crea una actividad que ejecute el script con la frecuencia que queramos, en tu caso una vez al mes.

Muestro básicamente cómo lo tengo montado yo:

1. vas a tools → script editor y creas un nuevo projecto.

El script es algo así:

function dailyPortfolioTrendRecord() 
{
  var sourceSS = SpreadsheetApp.openById("ID_DE_TU_GOOGLE_SHEET"); //Hoja de Origen
  var destinationSS = SpreadsheetApp.openById("ID_DE_TU_GOOGLE_SHEET"); //Hoja de Destino
  
  sourceSS.setActiveSheet(sourceSS.getSheetByName("PESTAÑA_DE_ORIGEN")); 
  destinationSS.setActiveSheet(destinationSS.getSheetByName("PESTAÑA_DE_DESTINO"));
  
  //Encontramos la primera fila vacía para escribir en ella
  var rowToWrite = 0;
  var column = destinationSS.getRange('A:A');
  var values = column.getValues();
  
  for (var row=0; row<values.length; row++) 
  {
    if (!values[row].join("")) break;
  }
  rowToWrite = row + 1;
  
   //En mi hoja de destino, en mi pestaña de destino, me posiciono en la primera fila vacía encontrada, en la columna A, y allí escribo la fecha de hoy.
 
  destinationSS.getActiveSheet().getRange(rowToWrite,1).setValue(new Date());
 

// De mi hoja de origen, de mi pestaña de origen, tomo el dato de la celda P16, y lo copio a mi hoja de destino, pestaña de destino, en la primera fila vacia, pero esta vez en la columna B, y me aseguro de que no copio la fórmula, sino el valor numérico de esa celda.
sourceSS.getActiveSheet().getRange("P16").copyTo(destinationSS.getActiveSheet().getRange(rowToWrite,2), {contentsOnly:true}); 
      
    }

ID_DE_TU_GOOGLE_SHEET: lo encuentras en la URL al abrir tu hoja en un navegador,

image

PESTAÑA_DE_ORIGEN / DESTINO: Las pestañas que existen dentro de tu hoja

image

Si quieres ejecutar el script una sola vez para ver si funciona, sólo tienes que darle al play:

image

2. Programar el script para que se ejecute automaticamente

Dentro del mismo projecto, vas a Edit → “Current Project’s Triggers” y ahí crearemos un trigger haciendo click en “add trigger”, donde elegiremos el script a ejecutar, la frecuencia etc… tal y como aparece aqui:

Está un poco esquematizado todo, pero debería entenderse. Cualquier pregunta, estoy por aquí.

6 Me gusta

Yo creo que desde SA va a ser complicado porque parece que pinta esos datos en javascript, no veo como echarles mano con import.

Esto sí es sencillo desde Yahoo Finance (para 5 años en lugar de 4), pero supongo que lo conoces y buscas alternativa porque comentas que ahí te va peor…

=INDEX(ImportHTML("https://finance.yahoo.com/quote/XOM/key-statistics/";"table";10);5;2)
2 Me gusta

Mi hoja de Google Sheets debe estresar mucho a Yahoo Finance porque en los últimos tiempos no hay manera de obtener todos estos datos. Gracias por la ayuda

1 me gusta