Avainsana-arkisto: Seuranta

Tuloskatsaus: vuosi 2015


Sijoitusvuosi 2015 on takana ja uusi vuosikin on ehtinyt alkaa hyvin mollivoittoisesti. Jatkossa aion tarkastella tuottoja puolivuosittain, joten Q3 tuloskatsauksen jätin väliin.

Vuoden 2015 toinen puolikas sujui salkkuni osalta huonosti. Salkun tuotto toisella puolikkaalla oli -5,65 %. Vielä huonommin menestyi vaihtoehtoinen strategiani, jonka tuotto oli -8,88 %. S&P 500 TR -indeksi tuotti vastaavalla ajanjaksolla 0,15 % ja OMXH CAP GI 3,56 %. Salkun tuotoissa osingot on huomioitu nettomääräisinä, indeksien tuotoissa osingot ovat bruttomääräisinä. Myös Sharpen ja Sortinon luvuilla mitattuna molemmat strategiani hävisivät selkeästi em. indekseille.

Q4/2015 avainluvut

Q4/2015 avainluvut

Koko vuoden tuottoja tarkasteltaessa tulokset ovat hyvin samansuuntaiset, joskaan koko portfolioni ei aivan niin huonosti menestynyt. Koko vuoden tuotto oli 0,97 %, kakkosstrategian tuoton jäädessä -6,89 %:iin. S&P 500 TR -indeksi tuotti 1,38 % ja OMXH CAP GI huikeat 15,92 %. Sharpen ja Sortinon lukuja vertailtaessa salkkuni hävisi molemmille indekseille.

Portfolioiden ja vertailuindeksien Q4 tuotto

Portfolioiden ja vertailuindeksien Q4 tuotto

Vuoden 2016 alku on ollut samanlainen kuin mihin vuosi 2015 päättyi. Rajusta laskusta huolimatta on pysyttävä valitussa strategiassa ja pidettävä pää kylmänä. Tämänkaltaisissa tilanteissa tulee helposti tehtyä virheitä, mikäli alkaa hötkyilemään.

Lisäsin sivustolle "Markkinadata" -sivun, josta näkyy S&P 500- ja OMXH25 -indekseistä johdetut riskipreemiot sekä indeksien EV/EBITDA-tunnusluvut.

Tuloskatsaus: Q2/2015


Tämän vuoden toinen neljännes on takana ja se sujui sijoitusteni osalta melko huonosti. Kyseisellä ajanjaksolla portfolioni tuotti -2,15 % ja vaihtoehtoisen strategiani tuotto jäi -2,20 %:iin. Vertailuindekseistä S&P 500 TR tuotti samalla ajnajaksolla 0,28 % ja OMXH CAP GI -5,47 %. Molempien salkkujeni tuottoja painoivat pari virhesijoitusta, joista olen aikaisemminkin jo maininnut. Vaikutus erityisesti vaihtoehtoisen strategiani tuottoihin oli merkittävä.

Huonosta neljänneksestä huolimatta molemmat portfolioni ovat S&P 500 TR -indeksiä edellä, kun tarkastellaan koko vuoden tuottoja. OMXH CAP GI:tä molemmat portfolioni ovat merkittävästi jäljessä, johtuen Helsingin pörssin erinomaisesta alkuvuodesta. Toisen neljänneksen päättyessä portfolioni arvosta noin 20 % oli suomalaisia osakkeita. Vaihtoehtoisen strategiaportfolion arvosta 0 % oli suomalaisia osakkeita, joten tämän strategian ja OMXH CAP GI:n vertailu ei ole edes kovin mielekästä. Molemmissa portfolioissa merkittävin paino on yhdysvaltalaisissa osakkeissa.

Q2/2015 avainluvut

Q2/2015 avainluvut

Myös Sharpen luvulla mitattuna molemmat portfolioni hävisivät S&P 500 TR -indeksille. OMXH CAP GI:n todella surkean toisen neljänneksen johdosta molempien portfolioni Sharpen luvut olivat paremmat kuin ko. indeksillä. Sortinon luvulla mitattuna tulokset ovat samansuuntaiset.

Ensimmäisen puolivuotisjakson aikana molemmat portfolioni menestyivät riskikorjatuilla mittareilla vertailtaessa S&P 500 TR -indeksiä hieman paremmin, mutta hävisivät selkeästi OMXH CAP GI:lle. Koko portfolioni volatiliteetti oli puolivuotisjakson aikana suunnilleen samalla tasolla kuin S&P 500 TR -indeksin ja jonkin verran alhaisempi kuin OMXH CAP GI:llä.

 

Portfolioiden ja vertailuindeksien Q1 tuotto

Portfolioiden ja vertailuindeksien Q1 tuotto

Kuten ylläolevasta graafista voi havaita, vaihtoehtoinen strategiani on kuluneen vuoden aikana kokenut pari merkittävää romahdusta. Nämä ovat johtuneet pääasiassa noista aiemmin mainitsemistani virhesijoituksista, jotka osaan jatkossa välttää. Toki varmasti muitakin virhesijoituksia tulee, mutta ainakin nämä kyseiset virheet ovat vältettävissä.

Huonosta neljänneksestä huolimatta, molemmat portfolioni ovat yhä S&P 500 TR -indeksiä edellä. Toivottavasti asetelma jatkuu samanlaisena vuoden loppuun asti, mieluiten vielä niin että ero vertailuindeksiin suurenee. Kolmannen neljänneksen alussa aloin keräämään dataa päivätasolla suomalaisten (ja ulkomaalaisten) osakkeiden painosta salkussani. Ajatuksenani on laskea OMXH CAP GI:n ja S&P 500 TR -indeksin tuotoista painotettu arvo, jossa painoina käytän oman portfolioni painoja suomalaisissa ja ulkomaalaisissa osakkeissa. Koska toistaiseksi suurin osa sijoituksistani on Yhdysvalloissa, niin en ole päätynyt käyttämään esimerkiksi MSCI World -indeksiä vertailuindeksinä. Mikäli kuitenkin tilanne muuttuu jossakin vaiheessa, niin tällöin myös vertailuindeksi muuttuu, jotta se vastaa paremmin omaa portfoliotani.

Viimeaikoina S&P 500 indeksistä johdettu riskipreemio on ollut laskusuunnassa. Tämä viittaisi siihen, että osakkeiden arvostus on noussut hieman. Mistään yliarvostuksesta en kuitenkaan lähtisi puhumaan, vaikkakin olen viimeaikoina huomannut että sopivien ostokohteiden löytäminen on muuttunut haastavammaksi.

Sijoitusten seurannan automatisointi


Taloudellinen riippumattomuus kirjoitti sijoitusten seurannan automatisoinnista Google Spreadsheetsin avulla. Omalla kohdallani ongelmana on kuitenkin se, että Spreadsheets välillä kirjoittaa salkun arvoksi #N/A. Olen huomannut, että muillakin on esiintynyt tätä ongelmaa. Tästä syystä päätin toteuttaa Pythonilla skriptin, joka kirjoittaa päivämäärän ja salkun arvon tiedostoon. Miinuksena tässä on se, että skripti on ajettava koneella. Itse laitoin skriptin palvelimelle ja ajan sitä crontabilla. Käyn kirjoituksessa läpi kaksi vaihtoehtoista tapaa tehdä kyseinen skripti.

Skripti Google Spreadsheets Python API:n avulla

Tämä on yksinkertaisempi tapa, mutta tämä tapa vaatii Pythonin lisäksi gsprad API:n. API:n saa ladattua esimerkiksi tästä. Lisäksi ennen skriptin käyttämistä on luotava Google Spreadsheets taulukko, jonka avulla seurataan oman portfolion kehitystä. Mallin taulukon luomiseen voi katsoa Taloudellisen riippumattomuuden kirjoituksesta, johon löytyy linkki kirjoituksen alusta. Skriptin koodi on seuraavanlainen:

import gspread

#Kirjautuminen Google Spreadsheetsiin
client = gspread.login('kayttajanimi@gmail.com', 'salasana')

#Avataan taulukko
worksheet = client.open('taulukon_nimi').sheet1

#Valitaan solu, jossa päivämäärä on
date = worksheet.acell('G2').value

#Valitaan solu, jossa portfolion arvo on
content = worksheet.acell('H2').value

#Avataan tiedosto, johon päivämäärä ja portfolion arvo kirjoitetaan
text_file = open("log.txt", "a")

#Kirjoitetaan päivämäärä ja portfolion arvo tekstitiedostoon
text_file.write(date + "|" + content+"\n")

#Suljetaan tiedosto
text_file.close()

Tämän jälkeen lisätään crontabiin seuraavanlainen rivi:

0 5 * * 2-6 python portfolio.py

Tämä ajaa skriptin tiistaista lauantaihin klo 5 aamuyöllä. Eli maanantain ja tiistain välisenä yönä kirjoitetaan maanantain päätösarvo jne. Arvot tulostuvat tekstitiedostoon muodossa "PVM|Portfolion_arvo". Tekstitiedosto voidaan helposti tuoda esimerkiksi Exceliin, jolloin portfolion arvoja voidaan käyttää esimerkiksi TWR-tuoton laskemiseen.

Skripti ilman gspread API:a

Mikäli ei ole mahdollisuutta asentaa gspread API:a palvelimelleen, voi seurannan toteuttaa myös ilman kyseistä API:a. Tässä tapauksessa tehdään taulukko omasta portfoliosta samalla tavalla kuin ylempänä. Tämän jälkeen tehdään taulukkoon uusi tyhjä taulukko, johon laitetaan soluun A1 arvoksi "today()" ja soluun A2 arvoksi portfolion arvo. Taulukon nimeksi voi laittaa vaikkapa "portfolion_arvo" Seuraavaksi jaetaan kyseinen taulukko menemällä tiedosto -> julkaise internetissä -> valitaan "portfolion_arvo" -taulukko kohdasta, jossa määritetään mitkä taulukot halutaan julkaista ja tämän jälkeen aloitetaan julkaisu. Seuraavaksi tarvitsemme linkin kyseiseen taulukkoon. Tämän saa, kun alempaa valitaan linkin muodoksi "TXT (Plain text)" ja taulukoksi valitaan "portfolion_arvo". Seuraavaksi tarvitsemme skriptin, joka tallettaa kyseisen arvon päivittäin. Skripti on seuraavanlainen:

import urllib

#Avataan Google Spreadsheets taulukko ja käydään se läpi
url = 'tähän taulukon url, joka saatiin Google Spreadsheetsistä'
sock = urllib.urlopen(url)
content = sock.read()
sock.close()

#Avataan tiedosto, johon päivämäärä ja portfolion arvo tallennetaan
text_file = open("log.txt", "a")

#Tallennetaan päivämäärä ja portfolion arvo
text_file.write("%s\n"%content)

#Suljetaan tiedosto
text_file.close()

Yllä oleva skripti kirjoittaa päivämäärän ja salkun arvon log.txt -tiedostoon, josta myös arvot voidaan tuoda vaikkapa Exceliin.

Itse käytän Google Spreadsheetsiin tehtyä skriptiä, joka löytyy Taloudellisen riippumattomuuden kirjoituksesta. Spreadsheetsin skriptin ohella käytän myös kuitenkin Python-skriptiä, koska Googlen skripti välillä kirjoittaa portfolion arvoksi #N/A ja Python-skripti ei ainakaan tähän asti ole sitä kertaakaan tehnyt (ollut käytössä noin kaksi kuukautta). Tällöin Googlen kirjoittaessa #N/A:ta, voin katsoa portfolion arvon Python-skriptin antamasta logista ja kirjoittaa sen Spreadsheets-taulukkooni.