Dashboard voor opvolging Portfolio Beleggingsfondsen
Geplaatst: 9 maart 2018, 12:17
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