Sex år efter mitt första inlägg om automatisk uppdatering av aktiekurser i Google Sheets så kommer här äntligen en efterlängtad (i alla fall av mig själv) uppdatering. Hittills så har jag bara vetat hur man hämtar data för börshandlade innehav, det vill säga de som har en ticker, aktier och ETF:er. Idag har jag tack vare bloggrannen Krösus Sork, som ska ha stort tack för både tips och hjälp med koden, lyckats få data från Financial Times på mina vanliga indexfonder som nu uppdateras automatiskt. Äntligen ska jag säga, är mitt excelblad full automatic, och det är slut med att sitta och uppdatera fondkurserna manuellt varje fredag efter stängning.
Då kör vi:
1: Öppna ett Google Sheets, under fliken "Extensions" väljer du "Apps Script".
2: Radera eventuell default-text, annars fungerar inte koden.
3: Kopiera in följande kod på rad nummer 1:
function fintime1(symbol) {
symbol = symbol || "IE00BF20L762:SGD";
symbol = encodeURI(symbol);
Utilities.sleep(Math.floor(Math.random() * 5000));
var url = 'https://markets.ft.com/data/etfs/tearsheet/summary?s=' + symbol;
Logger.log(url);
// Fetch the URL
var response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
var responseCode = response.getResponseCode();
if (responseCode === 200) {
var html = response.getContentText();
// Use a regex that captures numbers, including commas and periods.
var match = html.match(/<span class="mod-ui-data-list__value">([\d,\.]+).*?<\/span>/);
if (match && match[1]) {
var content = match[1]; // The captured group with the number string
var finContent = content.toString().replace(/,/g, ''); // Remove commas from the number
Logger.log(finContent); // Log the cleaned-up number
return Number(finContent); // Convert the cleaned-up string to a number and return
} else {
Logger.log("No match found for the number.");
return null;
}
} else {
Logger.log("Failed to fetch data. Response Code: " + responseCode);
return null;
}
}
4: Klicka på den blå Deploy-knappen till höger och välj "New deployment". Klicka sedan på kugghjulet uppe till vänster och välj "Web App". Skriv in något om du vill på raden New description och klicka på Deploy nere till höger.
5: Google kommer av säkerhetsskäl behöva en verifiering för att kunna gå vidare, här hittar du en video som förklarar hur man gör:
Tryck på den blå knappen "Authorize access".
Välj ditt Googlekonto. Här kommer det upp en röd varningstriangel, tryck på "Advanced" nere till vänster.
Klicka på "Go to Untitled project (unsafe)"
Klicka på "Allow"
Klicka på "Done".
Dokumentet är nu klart för att ta emot data från Financial Times.
6: Gå tillbaka till ditt Google sheets och kopiera följande kod i valfri ruta:
=fintime1("SE0004870020:SEK")
Efter lite loading borde fondens NAV-kurs komma upp i rutan. Texten =fintime1 är för att hämta data från Financial Times och SE-koden inom citationstecken är indexfondens "ticker". I exemplet ovan använder jag koden för en av mina indexfonder som ger utdelning i pengar, Handelsbanken USA Index Criteria B1 SEK. Vill man hämta data för en annan fond, aktie eller ETF så går man till Financial Times Market Data och söker upp det önskade pappret i sökrutan.
Lycka till och god avkastning på er, vi ses bland miljonerna.
/K