Poweria salkun seurantaan - Osa 1 data
Olen varmasti yksi laiskimmista sijoitussalkun seuraajista maan kamaralla. Tai ainakin olisin, jos en blogia varten kävisi katsomassa kerran kuukaudessa, että mitä salkussani on tapahtunut. Monissa blogeissa on rakennettu näppärän näköinen salkun seuranta Google Sheetsin avulla. Esimerkiksi Kinskin (salkku) ja Osinkokuninkaan (salkku) portfoliot löydät kätevästi selaimella. Oma versioni on sen sijaan antanut odottaa itseään.
Toistaiseksi olen päivittänyt salkkuni arvon kuukausittain Exceliin, josta napsin kuvat kuukausikatsauksiin. Olen kerännyt tiedot käsin ja koska sijoituksia on neljässä eri paikassa, on tämä tarkoittanut kirjautumista neljälle sivustolle. Laiskan pulskeana possuna olen kuitenkin aina ajatellut, että on pakko olla olemassa helpompi ja automaattisempi tapa hoitaa seuranta.
Tämä on artikkelin ensimmäinen osa ja se keskittyy enemmän datan noutamiseen sekä siihen miten salkku on toteutettu. Yksinkertaistettuna esimerkkinä käytän omaa osinkosalkkuani. Artikkelista tuli suhteellisen pitkä ja yksityiskohtainen, mutta toivottavasti sen avulla voit halutessasi tehdä oman versiosi seurannasta. Varoituksena voin sanoa, että artikkeli sisältää paljon teknistä näpertelyä. Lisäksi jos aihe on jo entuudestaan tuttu, niin osa tarinasta menee varmasti kertauksen puolelle.
Artikkelin toisessa osassa salkku muutetaan taulukosta graafeiksi ja kolmannessa osassa on tarkoitus viedä salkun seuranta vielä askeleen pidemmälle.
Sijoitussalkkun seuranta
Kaikki löytämäni salkut oli toteutettu Google Sheetsin (jatkossa GS) avulla. GS:n kautta toteutetuissa salkuissa on muutama asia mistä en itse pidä.
- GS salkut ohjaavat lukijan pois blogin sivulta ja vievät linkitettyyn sivustoon, josta taulukko löytyy
- GS salkut on usein toteutettu pelkästään datariveinä ja itse tykkään katsoa kuvia
- En keksinyt kolmatta kohtaa, mutta täytyyhän jotain uusia mausteitakin tuoda mukaan joten oma toteutukseni on tästä johtuen hieman erilainen
Edellä mainitut ovat tietysti makuasioita, mutta halusin toteuttaa salkun seurannan omaan makuuni sopivaksi. Oma ratkaisuni on käyttää Google Sheetsiä vain datan lähteenä. Lisämausteena päätin muuttaa datan kuviksi Power BI:n (ilmaisen version) avulla. Lisäksi Power BI mahdollistaa datan käsittelyn tavalla, johon GS ei ainakaan omilla taidoillani taivu.
Jos kaikkien yksityiskohtien lukeminen ei nappaa, niin alla oikopolut suoraan lopputuloksiin:
- Tässä on osinkosalkkuni
- Mallidatan saat liittymällä sisäpiiriin
Salkun seurannan rakentaminen
Tutkimusretki salkun seurannan ihmeelliseen maailmaan eteni pääpiirteissään näin:
- Manuaalisesti osakkeiden tickerien ja kpl määrien syöttäminen GS-taulukkoon
- GoogleFinance -funktion avulla datan hakeminen
- GoogleFinance -funktion avulla valuuttojen muuttaminen euroiksi
- Datan täydentäminen import -funktioilla
- Power BI raportin rakentaminen käyttämällä GS -taulukkoa datalähteenä
- Raportin julkaiseminen ja päivityksen ajastus
Datan hakeminen GoogleFinance -funktiolla
Ensimmäisenä piti ratkaista se, että miten saan automaattisesti päivittyvää dataa Google Sheetsiin. Pienen selvittelyn jälkeen totesin, että helpointa on käyttää Googlefinance funktiota.
Googlefinance -funktio näyttää tältä:
GOOGLEFINANCE(ticker, [attribute], [start_date], [num_days|end_date], [interval]).
Tämä voi alkuun näyttää pelottavalta, mutta lopulta käyttö yksinkertaisimmillaan todella helppoa. Vaaditaan vain osakkeen tunniste ja päätetään mikä arvo/tieto halutaan tuoda. Valitaan vaikkapa Bank of Nova Scotia eli BNS. Jos tälle halutaan tuoda tämän hetkinen osakkeen kurssi, niin syntaksi näyttää tältä:
=GoogleFinance(“BNS”,”PRICE”).
Selkeyden vuoksi olen kirjoittanut kaavat auki, mutta varsinaisessa taulukossa kaikki on tehty soluviittauksilla, jotta kaavojen kopioiminen on yksinkertaisempaa.
Kenttien erotin riippuu siitä, minkä maan asetuksilla GS on käytössä. Itse totesin helpoimmaksi vaihtoehdoksi muuttaa käyttöön jenkkiasetukset (file -> spreadsheet settings -> locale : United States) jolloin erotin on kaavoissa pilkku ja numeraalisissa luvuissa piste. Kannattaa huomata, että esimerkin osakkeelle voidaan tuoda arvo myös Kanadan dollareissa (TSE:BNS).
GoogleFinance taipuu kurssin lisäksi esimerkiksi näihin:
- EPS (osakekohtainen tulos)
- PE (hinnan ja tuloksen suhde)
- Täydellinen lista
Aloitin rakentamisen täyttämällä GS:n taulukkoon käsin osinkosalkkuni osakkeiden tunnisteet sekä omistamani kappale määrän. Sen jälkeen hain Googlefinance -funktiolla arvot taulukkoon, jolloin lopputulos näyttää tältä.
Valuuttakurssit
Seuraava haaste oli valuuttakurssien käsittely. Onneksi GoogleFinance tukee myös valuuttoja. Koska olen kiinnostunut pääasiassa euroista, hain osakkeen tunnisteiden avulla valuutan koodin, jossa osake on listattu. Sen jälkeen muutin osakkeen kurssin kyseisen valuuttakurssin avulla euroiksi. Jaoin toiminnon kahteen osaan:
- Valuuttakoodin hakeminen
=GoogleFinance(“TSE:BNS”,”Currency”) -> CAD - Arvon laskeminen euroina
=GoogleFinance(“CURRENCY:CADEUR”) -> 0,6764 (kirjoitushetkellä) * kurssi Kanadan dollareina
Datan täydentäminen
Oma tiedonnälkäni on tyydytetty siinä vaiheessa, kun saan määrät päivitettyä manuaalisesti ja tuotua kurssit automaattisesti taulukkoon. Tiedän, että monille tämä ei riitä alkuunkaan. Onneksi tietoja on mahdollista täydentää mistä tahansa verkkosivulta. Vaikkapa osinkotuottoprosentti voi olla mielenkiintoinen lisä ja esimerkiksi alla luetelluilla funktioilla voit hakea dataa täydentämään GoogleFinance -funktion puutteita:
- IMPORTHTML
(=INDEX(IMPORTHTML(“https://finance.yahoo.com/q/ks?s=BNS+Key+Statistics”, “table”, 32),3,2)) - IMPORTDATA
( =importData(concatenate(“http://finance.yahoo.com/d/quotes.csv?s=BNS&f=y”)) ) - IMPORTXML
( =ImportXML(concatenate(“http://finance.google.com/finance?q=”,”BNS”), “//td[@data-snapfield=’latest_dividend-dividend_yield’]/following-sibling::*”) )
IMPORTHTML:n avulla voidaan tuoda GS -taulukkoon kokonaisia taulukoita tai yksittäisiä tietueita. Tietue saadaan eriteltyä taulukosta index -funktion avulla kertomalla, että mikä rivi ja sarake on kyseessä. Esimerkiksi täältä löytyi lista Yahoo Financen taulukoista, joista tietoa voi hakea. Yahoon sivut ovat muuttuneet sen jälkeen, kun Quoran artikkeli taulukoista on kirjoitettu, mutta myös vanhat linkit näyttivät vielä toimivan datan haussa.
Toinen vaihtoehto tietojen hakuun Yahoosta on IMPORTDATA. Täältä löytyi lista tageista, joita sen kautta voi hakea. Käytännössä viimeisen merkin tilalle (esimerkissä y) vaihdetaan toinen kirjain esimerkiksi e, jolloin lopputuloksena on osingon sijaan osakekohtainen tulos.
En valitettavasti löytänyt tietoa siitä miten Yahoon data päivittyy, mutta jos joku on näitä enemmän käyttänyt, niin saa täydentää. Tämän testauksen perusteella en ihan täysin uskaltaisi dataan luottaa ja epävarmuutta lisäsi se, että Google Financen ja Yahoon luvuissa on pieniä heittoja. Jotain viitteitä oli siitä, että tiedoissa saattaa olla epätarkkuuksia.
IMPORTXML:n avulla voidaan hakea suoraan yksittäinen tietue. Funktiolle pitää kertoa, että miltä sivulta haetaan ja mistä kohdasta sivua. Itselleni funktion käyttö tuotti ensin hieman harmaita hiuksia, koska funktion käyttämä xpath_query ei ollut lainkaan tuttu.
Google Financen sivuilta voidaan tarkistaa, että mikä kohta sivua on kyseessä viemällä hiiri halutun kohdan päälle, klikkaamalla hiiren oikealla ja valitsemalla tarkista. Esimerkiksi osakekohtainen tulos näyttäisi löytyvän tunnisteella eps.
Näin Bank of Nova Scotian osakekohtainen tulos voitaisiin hakea Google Financesta (arvo löytyy tunnistetta seuraavasta kentästä):
=ImportXML(concatenate(“http://finance.google.com/finance?q=”,“NYSE:BNS”), “//td[@data-snapfield=’eps’]/following-sibling::*”)
Myös IMPORTXML:stä löytyy netistä mukavasti artikkeleita ja tässä yksi, missä oli rakennettu GS-taulukko osinko-osakkeiden seurantaan.
Yhteenveto
Kaiken tämän jumpan jälkeen lopputulos näyttää tältä (+sarakkeet, jotka eivät mahtuneet kuvaan). Taulukon saat itsellesi liittymällä sisäpiiriin.
En ole vielä täysin sinut kaikkien kaavojen kanssa ja jokainen import -funktio tuotti jossain vaiheessa päänvaivaa. Sama kaava saattoi tuottaa virheen yhtenä hetkenä, mutta toisena se toimi moitteettomasti. GoogleFinance -funktio oli ainoa, joka toimi koko ajan ilman virheitä. Tutkimus jatkuu ja tässä kohtaa lopputulemana on perusta jolle rakentaa – Ei Roomakaan rakennettu päivässä.
Salkun sisältö saattaa herättää intohimoja ja voin jo nyt myöntää, että valintametodit menevät kategoriaan “ÄLÄ TEE NÄIN”. NOV ei ole enää lähelläkään osinko-osaketta eikä RDS-A myöskään vakuuta. Näistä ja muusta sijoittamisessa enemmän joskus tulevaisuudessa, mutta seuraava osa salkun seurannasta ja ohjeet graafien tekemiseen tulossa ensi viikolla.
Antoisia hetkiä askartelun parissa!
Sivusto ei tallenna sinusta mitään tietoja tai käytä evästeitä, kun luet artikkeleita. Toiveita,
kommentteja ja kysymyksiä voi laittaa tulemaan myös meilillä.
Huom! Kommentointi käyttää evästeitä. Nimi, sähköposti ja verkkosivusi tallennetaan selaimeesi,
jotta voit jatkossa kommentoida helpommin samoilla tiedoilla. Kentät vapaaehtoisia ja voit
jättää ne halutessasi tyhjiksi.