Dashboard voor opvolging Portfolio Beleggingsfondsen
TIP
Dashboard voor opvolging Portfolio Beleggingsfondsen
Hierbij wil ik met jullie de ontwikkeling van mijn dashboard delen hetwelke ik gebruik voor het opvolgen van de NIW's + rendementen van mijn beleggingsfondsen.
Ik gebruik hiervoor de beschikbare features / functionaliteiten van Google Sheets, Google Scripts en Google Drive. De input data voor dit alles komt van Morningstar.
Het Dashboard zelf wordt getoond in een Google Spreadsheet. De logica om het dashboard te creeëren en periodiek / automatisch te updaten gebeurd dmv een Google Script. Alles hiervoor kan geïnstalleerd en geconfigureerd worden op je Google Drive.
Met dit topic wil ik jullie stap voor stap begeleiden in hoe je dit alles voor jezelf kan opzetten.
A. Aanmaken van een Google Sheet op je Google Drive
- Log in op je Google Drive
- Maak daar een nieuwe map aan en hernoem die bijvoorbeeld naar 'Dashboards'
- Navigeer naar deze map en maak hierin een nieuwe Google Spreadsheet aan
- Er opent zich een browser venster die je een nieuwe spreadsheet toont (Naamloze spreadsheet)
- Hernoem deze spreadsheet naar bijvoorbeeld 'MijnDashboard'
- Na wijziging van de naam zal de nieuwe spreadsheet automatisch op je Google Drive opgeslagen worden
- Hernoem nu de sheet op tab 'Blad1' naar 'LIST_Funds' (let op hoofdletters / kleine letters hier!!)
B. Oplijsten van beleggingsfondsen dewelke je wil gaan monitoren met het dashboard
- Alle beleggingsfondsen dewelke je wil gaan opvolgen en monitoren in het dashboard moeten opgelijst worden in de sheet 'LIST_Funds'
- In kolom A van die sheet 'LIST_Funds' plaats je nu alle namen van de fondsen dewelke je actief wil gaan monitoren
- En op dezelfde rij in kolom B plaats je voor elk van die fondsen de link naar de informatie pagina hierover op Morningstar
- Bv. in A1 plaats je 'Robeco BP Global Premium Equities B (div) €' en in B1 'http://www.morningstar.be/be/funds/snap ... F0GBR05SC9'
- In A2 plaats je 'Threadneedle Global Equity Income Fund Retail Income EUR' en in B2 'http://www.morningstar.be/be/funds/snap ... F000000GMT'
- In A3 plaats je 'M&G Global Dividend Fund Euro A Inc' en in B3 'http://www.morningstar.be/be/funds/snap ... F00000Q5C6'
- Let wel, geen quotes (') plaatsen in de cellen!!
- Uiteindelijk kom je zo tot een tabelletje met 2 kolommen en x aantal rijen
C. Bepalen van het Google Sheets ID
- Het Google Script dat ervoor zal zorgen dat periodiek en automatisch het dashboard geupdate zal worden maakt gebruik van het ID van je Google Spreadsheet
- Dit kan je terugvinden als zijnde een substring in de URL van de spreadsheet...
- Wanneer je je spreadsheet open hebt in je browser zie je bovenaan als URL iets in de vorm van: https://docs.google.com/spreadsheets/d/ ... edit#gid=0
- Het Google Sheets ID is hier: 1Atkg8CbEIgEQaXfFgV5QnYg1Kd8mQL_6jaeSRlR06Pk (die lange alfa-numerieke string dus)
- Het is deze ID die je nodig hebt als input parameter in het Google Script. (dus best even letterlijk copiëren naar een tekstbestandje)
D. Toevoegen van het Google Script aan je Google Sheet
- In je spreadsheet, kies voor 'Menu' - 'Extra' - 'Script editor...'
- Een nieuw browser venster zal zich openen waarin je een Google Script kan aanmaken
- Maak het google script blad volledig leeg (verwijder 'function myFunction(){}...)
- Copieer nu de volledige inhoud van mijn Google Script (zie attachment DashboardScript.txt) in de text area
- In het script, wijzig je nu de parameter 'spreadSheetID' zodat die parameter de waarde krijgt gelijk aan het ID van je Google Sheet
- Voor het voorbeeld hier is dit dus: var spreadSheetID = "1Atkg8CbEIgEQaXfFgV5QnYg1Kd8mQL_6jaeSRlR06Pk";
- Klik op het "save" icoontje en geef je project een naam (bijvoorbeeld 'DashboardScript') en klik 'OK'
E. De eertse run
- Voor een eerste run van het script, klik nu op het schuine driehoekje in Google Scripts (the play-button)
- Je zal merken dat er autorisatie vereist wordt om dat Google Script uit te voeren
- Klik op 'Rechten bekijken'
- Selecteer jou 'Google Account'
- Je krijgt nu de melding dat deze App niet geverifieerd is
- Klik onderaan op 'Geavanceerd'
- Klik onderaan verder op 'Ga naar DashboardScript (onveilig)'
- Stem nu toe dat het DashboardScript je spreadsheet kan weergeven en beheren door op 'Toestaan' te klikken
- Nu zal het Google Script voor een eerste maal uitgevoerd worden... (Uitvoering wordt voorbereid / Functie main uitvoeren)
- Dit kan een tijdje duren...
F. Je Dashboard en Portfolio sheets + Fund output sheets werden aangemaakt
- Kijk nu even terug naar je Spreadsheet en je zal merken dat er x aantal tabs bij aangemaakt werden
- Een tab 'Dashboard', een tab 'Portfolio' en een aantal output sheets (evenveel als dat je fondsen hebt in je LIST_Funds sheet)
- Vanaf nu ben je klaar... Echter er is nog niet veel info beschikbaar natuurlijk
- Het enige wat je nu nog moet doen is het script periodiek laten lopen (bijvoorbeeld dagelijks) om de NIW's van de verschillende fondsen te updaten
G. Periodieke updates instellen en configureren
- Door zogenaamde triggers aan je script toe te voegen kan je er voor zorgen dat het periodiek en automatisch uitgevoerd kan worden vanop je Google Drive
- Keer terug naar je Google Script en selecteer daar 'Menu' - 'Bewerken' - 'Triggers voor huidige project'
- Klik door om een trigger toe te voegen
- Selecteer voor het uitvoeren van de functie 'Main' op basis van tijd
- Kies voor een 'dag timer' en selecteer een time window gedurende de nacht bijvoorbeeld tussen 0h en 1h
- Kies nadien voor opslaan
- Vanaf nu zal je script elke nacht lopen en het dashboard updaten met de laatste NIW's voor de fondsen
H. Wat vind je terug in je Dashboard
- In de sheet Dashboard: Een overzicht van de huidige NIW's en het dagelijks rendement van alle fondsen + een historisch overzicht voor elk fonds afzonderlijk (na verloop van tijd) in grafieken. Naargelang je meer en meer data verzameld hebt door de tijd heen zal je in die grafieken ook Average NIW's zien verschijnen... Zo zullen er averages getoond worden voor het 6-daags, het 12-daags en het 24-daags gemiddelde van de NIW
- In de sheet Portfolio: De waarde van je portfolio alsof je voor elke van de fondsen in je lijstje 100 EUR gestort zou hebben vanaf de eerste maal dat het script loopt + een evolutie hiervan
- In de output sheets: De NIW's voor elk van de fondsen afzonderlijk
- Het is van belang dat je de individuele output sheets niet delete, aangezien de data hieruit gebruikt worden om de grafieken te tekenen op de Dashboard sheet
- Eigenlijk gewoon best niets deleten... Alles gebeurt toch vanzelf
I. Known bugs
- Fondsen die noteren in vreemde valuta: valuta omrekening naar EUR worden niet meegenomen in de Portfolio calculations
- Het kan zijn dat je de eerste maal het scriptje 2x moet lopen (2x op de play button klikken)... De eerste maal worden enkel de kolomheaders aangemaakt en de 2e maal komt de eerste relevante data beschikbaar
- Je kan het ook gewoon zijn beloop laten gaan want de 2e run gebeurt toch automatisch als je de periodieke updates enabled hebt... (zie hiervoor G)
Zo ik hoop jullie hiermee van dienst te kunnen zijn:-)!! Mochten er vragen, opmerkingen etc... zijn, laat maar weten! Of ideetjes om nog toe te voegen ofzo?
Voor de liefhebbers... Ik heb het Google Script tamelijk uitvoerig voorzien van commentaar, dus hieruit zou je ook al 't één en 't ander moeten kunnen afleiden van hoe de dingen exact werken.
Veel plezier ermee!!
Mvg,
Caterpie
Ik gebruik hiervoor de beschikbare features / functionaliteiten van Google Sheets, Google Scripts en Google Drive. De input data voor dit alles komt van Morningstar.
Het Dashboard zelf wordt getoond in een Google Spreadsheet. De logica om het dashboard te creeëren en periodiek / automatisch te updaten gebeurd dmv een Google Script. Alles hiervoor kan geïnstalleerd en geconfigureerd worden op je Google Drive.
Met dit topic wil ik jullie stap voor stap begeleiden in hoe je dit alles voor jezelf kan opzetten.
A. Aanmaken van een Google Sheet op je Google Drive
- Log in op je Google Drive
- Maak daar een nieuwe map aan en hernoem die bijvoorbeeld naar 'Dashboards'
- Navigeer naar deze map en maak hierin een nieuwe Google Spreadsheet aan
- Er opent zich een browser venster die je een nieuwe spreadsheet toont (Naamloze spreadsheet)
- Hernoem deze spreadsheet naar bijvoorbeeld 'MijnDashboard'
- Na wijziging van de naam zal de nieuwe spreadsheet automatisch op je Google Drive opgeslagen worden
- Hernoem nu de sheet op tab 'Blad1' naar 'LIST_Funds' (let op hoofdletters / kleine letters hier!!)
B. Oplijsten van beleggingsfondsen dewelke je wil gaan monitoren met het dashboard
- Alle beleggingsfondsen dewelke je wil gaan opvolgen en monitoren in het dashboard moeten opgelijst worden in de sheet 'LIST_Funds'
- In kolom A van die sheet 'LIST_Funds' plaats je nu alle namen van de fondsen dewelke je actief wil gaan monitoren
- En op dezelfde rij in kolom B plaats je voor elk van die fondsen de link naar de informatie pagina hierover op Morningstar
- Bv. in A1 plaats je 'Robeco BP Global Premium Equities B (div) €' en in B1 'http://www.morningstar.be/be/funds/snap ... F0GBR05SC9'
- In A2 plaats je 'Threadneedle Global Equity Income Fund Retail Income EUR' en in B2 'http://www.morningstar.be/be/funds/snap ... F000000GMT'
- In A3 plaats je 'M&G Global Dividend Fund Euro A Inc' en in B3 'http://www.morningstar.be/be/funds/snap ... F00000Q5C6'
- Let wel, geen quotes (') plaatsen in de cellen!!
- Uiteindelijk kom je zo tot een tabelletje met 2 kolommen en x aantal rijen
C. Bepalen van het Google Sheets ID
- Het Google Script dat ervoor zal zorgen dat periodiek en automatisch het dashboard geupdate zal worden maakt gebruik van het ID van je Google Spreadsheet
- Dit kan je terugvinden als zijnde een substring in de URL van de spreadsheet...
- Wanneer je je spreadsheet open hebt in je browser zie je bovenaan als URL iets in de vorm van: https://docs.google.com/spreadsheets/d/ ... edit#gid=0
- Het Google Sheets ID is hier: 1Atkg8CbEIgEQaXfFgV5QnYg1Kd8mQL_6jaeSRlR06Pk (die lange alfa-numerieke string dus)
- Het is deze ID die je nodig hebt als input parameter in het Google Script. (dus best even letterlijk copiëren naar een tekstbestandje)
D. Toevoegen van het Google Script aan je Google Sheet
- In je spreadsheet, kies voor 'Menu' - 'Extra' - 'Script editor...'
- Een nieuw browser venster zal zich openen waarin je een Google Script kan aanmaken
- Maak het google script blad volledig leeg (verwijder 'function myFunction(){}...)
- Copieer nu de volledige inhoud van mijn Google Script (zie attachment DashboardScript.txt) in de text area
- In het script, wijzig je nu de parameter 'spreadSheetID' zodat die parameter de waarde krijgt gelijk aan het ID van je Google Sheet
- Voor het voorbeeld hier is dit dus: var spreadSheetID = "1Atkg8CbEIgEQaXfFgV5QnYg1Kd8mQL_6jaeSRlR06Pk";
- Klik op het "save" icoontje en geef je project een naam (bijvoorbeeld 'DashboardScript') en klik 'OK'
E. De eertse run
- Voor een eerste run van het script, klik nu op het schuine driehoekje in Google Scripts (the play-button)
- Je zal merken dat er autorisatie vereist wordt om dat Google Script uit te voeren
- Klik op 'Rechten bekijken'
- Selecteer jou 'Google Account'
- Je krijgt nu de melding dat deze App niet geverifieerd is
- Klik onderaan op 'Geavanceerd'
- Klik onderaan verder op 'Ga naar DashboardScript (onveilig)'
- Stem nu toe dat het DashboardScript je spreadsheet kan weergeven en beheren door op 'Toestaan' te klikken
- Nu zal het Google Script voor een eerste maal uitgevoerd worden... (Uitvoering wordt voorbereid / Functie main uitvoeren)
- Dit kan een tijdje duren...
F. Je Dashboard en Portfolio sheets + Fund output sheets werden aangemaakt
- Kijk nu even terug naar je Spreadsheet en je zal merken dat er x aantal tabs bij aangemaakt werden
- Een tab 'Dashboard', een tab 'Portfolio' en een aantal output sheets (evenveel als dat je fondsen hebt in je LIST_Funds sheet)
- Vanaf nu ben je klaar... Echter er is nog niet veel info beschikbaar natuurlijk
- Het enige wat je nu nog moet doen is het script periodiek laten lopen (bijvoorbeeld dagelijks) om de NIW's van de verschillende fondsen te updaten
G. Periodieke updates instellen en configureren
- Door zogenaamde triggers aan je script toe te voegen kan je er voor zorgen dat het periodiek en automatisch uitgevoerd kan worden vanop je Google Drive
- Keer terug naar je Google Script en selecteer daar 'Menu' - 'Bewerken' - 'Triggers voor huidige project'
- Klik door om een trigger toe te voegen
- Selecteer voor het uitvoeren van de functie 'Main' op basis van tijd
- Kies voor een 'dag timer' en selecteer een time window gedurende de nacht bijvoorbeeld tussen 0h en 1h
- Kies nadien voor opslaan
- Vanaf nu zal je script elke nacht lopen en het dashboard updaten met de laatste NIW's voor de fondsen
H. Wat vind je terug in je Dashboard
- In de sheet Dashboard: Een overzicht van de huidige NIW's en het dagelijks rendement van alle fondsen + een historisch overzicht voor elk fonds afzonderlijk (na verloop van tijd) in grafieken. Naargelang je meer en meer data verzameld hebt door de tijd heen zal je in die grafieken ook Average NIW's zien verschijnen... Zo zullen er averages getoond worden voor het 6-daags, het 12-daags en het 24-daags gemiddelde van de NIW
- In de sheet Portfolio: De waarde van je portfolio alsof je voor elke van de fondsen in je lijstje 100 EUR gestort zou hebben vanaf de eerste maal dat het script loopt + een evolutie hiervan
- In de output sheets: De NIW's voor elk van de fondsen afzonderlijk
- Het is van belang dat je de individuele output sheets niet delete, aangezien de data hieruit gebruikt worden om de grafieken te tekenen op de Dashboard sheet
- Eigenlijk gewoon best niets deleten... Alles gebeurt toch vanzelf
I. Known bugs
- Fondsen die noteren in vreemde valuta: valuta omrekening naar EUR worden niet meegenomen in de Portfolio calculations
- Het kan zijn dat je de eerste maal het scriptje 2x moet lopen (2x op de play button klikken)... De eerste maal worden enkel de kolomheaders aangemaakt en de 2e maal komt de eerste relevante data beschikbaar
- Je kan het ook gewoon zijn beloop laten gaan want de 2e run gebeurt toch automatisch als je de periodieke updates enabled hebt... (zie hiervoor G)
Zo ik hoop jullie hiermee van dienst te kunnen zijn:-)!! Mochten er vragen, opmerkingen etc... zijn, laat maar weten! Of ideetjes om nog toe te voegen ofzo?
Voor de liefhebbers... Ik heb het Google Script tamelijk uitvoerig voorzien van commentaar, dus hieruit zou je ook al 't één en 't ander moeten kunnen afleiden van hoe de dingen exact werken.
Veel plezier ermee!!
Mvg,
Caterpie
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
Re: Dashboard voor opvolging Portfolio Beleggingsfondsen
Waarom is dit beter/praktischer dan te werken met M* zelf?
Any man whose errors take ten years to correct is quite a man.
Rookie investor
Rookie investor
Mis geen enkele kans om te besparen.
Krijg de beste tips en aanbiedingen rechtstreeks in uw mailbox
Uitschrijven kan altijd. We respecteren uw privacy.
Re: Dashboard voor opvolging Portfolio Beleggingsfondsen
Wow, dat ga ik eens bekijken, Caterpie, bedankt!
@Cydox, ik heb zo'n tooltje offline in Excel. De Excel en de Morningstar-portefeuille hebben allebei hun pro's en contra's.
De voordelen tov m* voor mij:
@Cydox, ik heb zo'n tooltje offline in Excel. De Excel en de Morningstar-portefeuille hebben allebei hun pro's en contra's.
De voordelen tov m* voor mij:
- ik deel mijn portefeuille voorlopig nog op in onderdelen, die ik apart wil opvolgen
- ik heb er lijnen voor beleggingsgeld dat ik bewust op een spaarrekening zet (in m* heb je wel cashfondsen, maar die hebben zelfs een licht negatief rendement
- ik houd er bij welk fonds ik bij welke broker heb
- kolommen die je aandacht afleiden laat ik weg (bv rendement op 1 dag)
- ik heb wat formuletjes die me de vertellen welke fondsen ik binnenkort best opbouw/afbouw
Re: Dashboard voor opvolging Portfolio Beleggingsfondsen
@Cydox: Waarom is dit beter dan Morningstar?
Dit is gewoon een voorbeeldje van hoe je data van bv. Morningstar kan ophalen en verwerken op je "eigen" manier... Niet meer of niet minder. Eens je die data bij jou hebt doe je er uiteindelijk zelf mee wat je wel hé.
Ik haal nu bv. in mijn scriptje enkel de NIW's en de dagelijkse rendementen van x aantal fondsen op, display ze in grafiekjes en bereken average NIW's. Je kan daar bijvoorbeeld nog dingen aan toevoegen, zoals hoe de regio-allocatie of sector-allocatie wijzigt voor bepaalde fondsen doorheen de tijd, enz, enz...
Je zou het script ook kunnen gaan aanpassen om specifieke aandelenkoersen te gaan ophalen bv... Of om balans- en cashflowinfo te verzamelen en verder te verwerken.
Merk ook op dat je via deze manier van werken ook niet beperkt bent tot data van Morningstar alleen. Je kan hiermee data ophalen en verzamelen van om 't eender welke site... Yahoo finance, Google finance, Forex,... Zolang die data maar ter beschikking komt in een HTML TABLE object.
Je kan bv. ook vanuit je Google Script mailtjes versturen naar bepaalde accounts vanaf dat bijvoorbeeld een bepaalde voorwaarde vervuld is. Bv. een prijs van een aandeel dat je graag in portfolio zou hebben, zakt plots onder een bepaalde drempel waardoor het koopwaardig wordt?! Ik bedenk maar nu hé...
Zoals reeds aangehaald, ik heb het hier gepost enkel en alleen als voorbeeld met een mogelijke toepassing. Het staat anderen volledig vrij om het verder aan te passen zodat ieder hiermee zijn eigen ding kan doen;-)
Mvg,
Dit is gewoon een voorbeeldje van hoe je data van bv. Morningstar kan ophalen en verwerken op je "eigen" manier... Niet meer of niet minder. Eens je die data bij jou hebt doe je er uiteindelijk zelf mee wat je wel hé.
Ik haal nu bv. in mijn scriptje enkel de NIW's en de dagelijkse rendementen van x aantal fondsen op, display ze in grafiekjes en bereken average NIW's. Je kan daar bijvoorbeeld nog dingen aan toevoegen, zoals hoe de regio-allocatie of sector-allocatie wijzigt voor bepaalde fondsen doorheen de tijd, enz, enz...
Je zou het script ook kunnen gaan aanpassen om specifieke aandelenkoersen te gaan ophalen bv... Of om balans- en cashflowinfo te verzamelen en verder te verwerken.
Merk ook op dat je via deze manier van werken ook niet beperkt bent tot data van Morningstar alleen. Je kan hiermee data ophalen en verzamelen van om 't eender welke site... Yahoo finance, Google finance, Forex,... Zolang die data maar ter beschikking komt in een HTML TABLE object.
Je kan bv. ook vanuit je Google Script mailtjes versturen naar bepaalde accounts vanaf dat bijvoorbeeld een bepaalde voorwaarde vervuld is. Bv. een prijs van een aandeel dat je graag in portfolio zou hebben, zakt plots onder een bepaalde drempel waardoor het koopwaardig wordt?! Ik bedenk maar nu hé...
Zoals reeds aangehaald, ik heb het hier gepost enkel en alleen als voorbeeld met een mogelijke toepassing. Het staat anderen volledig vrij om het verder aan te passen zodat ieder hiermee zijn eigen ding kan doen;-)
Mvg,
Re: Dashboard voor opvolging Portfolio Beleggingsfondsen
Ook de naam van je fonds kan je uit morningstar halen op basis van de url. Ik heb hiervoor volgende formule:
=INDEX(SPLIT(IMPORTHTML("http://www.morningstar.be/be/funds/snap ... ;"table";9);"|");1;1)
Ik splits ook op de verticale streep.
Edit: blijkbaar haal ik de valuta waarin het fonds noteert niet op via een formule.
=INDEX(SPLIT(IMPORTHTML("http://www.morningstar.be/be/funds/snap ... ;"table";9);"|");1;1)
Ik splits ook op de verticale streep.
Edit: blijkbaar haal ik de valuta waarin het fonds noteert niet op via een formule.
Laatst gewijzigd door Natal op 10 maart 2018, 17:52, 1 keer totaal gewijzigd.
Re: Dashboard voor opvolging Portfolio Beleggingsfondsen
Nog een snelle:
Wisselkoersen ophalen kan via googlefinance. Hierbij het voorbeeld voor EUR NOK:
=GOOGLEFINANCE(("CURRENCY:EURNOK"))
Je krijgt dan de NOK die je krijgt voor 1 euro
Vervolgens heb ik volgende formule om de omrekening te doen:
=E21/VLOOKUP(D21;Wisselkoers!$A$2:$B$4;2;FALSE)
E21 is de waarde van het fonds in de munt van het fonds (NOK/USD/...)
D21 bevat de valuta (NOK/USD...)
Wisselkoers is de tab met de koersen
Ik moet er nu echt vandoor en laat jullie dit even verder uitvlooien. Sorry :-)
Wisselkoersen ophalen kan via googlefinance. Hierbij het voorbeeld voor EUR NOK:
=GOOGLEFINANCE(("CURRENCY:EURNOK"))
Je krijgt dan de NOK die je krijgt voor 1 euro
Vervolgens heb ik volgende formule om de omrekening te doen:
=E21/VLOOKUP(D21;Wisselkoers!$A$2:$B$4;2;FALSE)
E21 is de waarde van het fonds in de munt van het fonds (NOK/USD/...)
D21 bevat de valuta (NOK/USD...)
Wisselkoers is de tab met de koersen
Ik moet er nu echt vandoor en laat jullie dit even verder uitvlooien. Sorry :-)
Re: Dashboard voor opvolging Portfolio Beleggingsfondsen
Code: Selecteer alles
=LEFT(INDEX(IMPORTHTML("http://www.morningstar.be/be/funds/snapshot/snapshot.aspx?id=F0GBR04K6R","table",12),2, 3),3)