Avainsana-arkisto: Sijoittaminen

Lisäarvomalli


Osakkeiden hinnoittelu on yksi rahoitusteorian keskeisistä kysymyksistä. Teoriassa osakkeen hinnoittelu on helppoa: osakkeen arvo on yhtä kuin sen tulevaisuudessa tuottamien kassavirtojen nykyarvo. Käytännössä kuitenkin yrityksen kaikkien tulevien kassavirtojen ennustaminen on mahdotonta, eikä oikean tuottovaatimuksen määrittäminenkään ole helppoa.

Rahoitusteorialla on tarjota useita erilaisia osakkeen hinnoittelumalleja, joista yksi on lisäarvomalli. Lisäarvomallissa investoinnin tuotosta vähennetään kirja-arvon ja tuottovaatimuksen tulo. Tätä erotusta kutsutaan jäännöstuotoksi.

P/B-luku (price to book ratio) kuvaa osakkeen hinnan suhdetta osakkeen kirja-arvoon. Kirja-arvo taas on varojen ja velkojen erotus. Investoinnin arvo perustuu sen tulevaisuudessa tuottamiin tuloihin. Mitä korkeampi on tuotto-odotus, sitä suurempi on osoittajassa oleva P, eli osakkeen hinta. Mitä korkeampi on osakkeen hinta, sitä korkeampi on osakkeen P/B-luku.

Jäännöstuotto

Sijoittamisessa perusperiaate on, että sijoitus luo arvoa silloin, kun se tuottaa tuottovaatimustaan enemmän. Arvo koostuu kahdesta osasta: kirja-arvosta ja preemiosta, joka perustuu tulevaisuuden jäännöstuottoihin.

Jäännöstuotot (residual earnings) mittaavat investoinnin arvoa lisäävää osaa. Jäännöstuotoilla tarkoitetaan sitä osaa, joka ylittää tuottovaatimuksen vaatiman tuoton. Jos esimerkiksi 500 euron suuruinen investointi tuottaa vuoden aikana 550 euroa, on investoinnin euromääräinen tuotto 50 euroa ja tuottoprosentti 10. Oletetaan myös, että tuottovaatimus on 10 prosenttia. Euromääräinen tuottovaatimus on siis 50 euroa (0,1 x 500). Jäännöstuotot ovat:

50 € - (0,10 x 500 €) = 0 €

Mikäli investointi tuottaisi 560 euroa, olisi euromääräinen tuotto 60 euroa ja tuottoprosentti 12. Tällöin jäännöstuotot olisivat:

60 € - (0,10 x 500 €) = 10 €

Lisäarvomalli (residual earnings model) on osakkeen arvonmääritysmalli, joka arvottaa osakkeen sen kirja-arvon ja tulevaisuudessa tuottamien jäännöstuottojen avulla. Lisäarvomallissa arvo koostuu siis kahdesta osasta: kirja-arvosta ja odotettujen jäännöstuottojen nykyarvosta. Lisäarvomallin mukaan edellisten esimerkkien arvot olisivat:

500 € + (0 € / 1,10) = 500 €

ja

500 € + (10 € / 1,10) = 509,09 €

Jälkimmäisen investoinnin arvo ylittää investoinnin kirja-arvon, koska investointi kasvattaa arvoa (positiiviset jäännöstuotot). Ensimmäisen investoinnin P/B-luvun tulisi olla 1,0, koska investointi tuottaa täsmälleen tuottovaatimuksen verran. Toisen investoinnin P/B-luvun tulisi olla yli 1,0.

 Esimerkki lisäarvomallista

Oletetaan, että yritys A:n oma pääoma per osake oli vuoden 2012 tilinpäätöksessä 8 euroa. Oheisessa taulukossa on esitetty yrityksen osakekohtaisen tuloksen ja osinkojen ennusteet vuoteen 2016 saakka. Oletetaan lisäksi, että tiedämme näiden ennusteiden osuvan täysin oikeaan.

Yritys A:n ennustetut osakekohtaiset tulokset ja osingot. Tuottovaatimus 10 %.

Yritys A:n ennustetut osakekohtaiset tulokset ja osingot. Tuottovaatimus 10 %.

Ennustetun osakekohtaisen tuloksen ja osakekohtaisen osingon avulla saadaan ennustettua tuleva osakekohtainen kirja-arvo. Vuoden 2012 tilinpäätöksessä kirja-arvo per osake oli 8 euroa, joten vuoden 2013 jälkeen se on 8,60 euroa (= 8,00 + 0,90 - 0,30). Kirja-arvon ja osakekohtaisen tuloksen ennusteiden avulla saadaan ennustettua jäännöstuotto. Vuoden 2013 jäännöstuotto saadaan laskemalla:

0,90 - (0,10 x 8) = 0,10

Jäännöstuotto saadaan myös, kun kerrotaan oman pääoman tuoton ja tuottovaatimuksen erotus edellisen vuoden kirja-arvolla:

(0,1125 - 0,10) x 8,00 = 0,10

Vuoden 2013 jäännöstuotto on 0,10 euroa (10 prosentin tuottovaatimuksella). Tämän jälkeen jäännöstuotto diskontataan nykyhetkeen. Vuoden 2013 jäännöstuoton nykyarvo on 0,091 euroa (= 0,10/1,1). Seuraavaksi lasketaan jokaisen vuoden jäännöstuoton nykyarvo, jonka jälkeen jäännöstuotot lasketaan yhteen.

Viimeiseksi lasketaan osakkeen päätearvo (continuing value). Päätearvoa laskettaessa oletetaan, että jäännöstuotot kasvavat vakionopeudella. Päätearvoa laskettaessa voidaan myös olettaa, että jäännöstuotot eivät tietyn ajan jälkeen kasva ollenkaan, vaan säilyvät vakioina, tai jopa pienenevät. Esimerkissä oletetaan jäännöstuottojen kasvavan vuoden 2016 jälkeen 4 prosenttia vuodessa.

(0,455 x 1,04)/(1,10-1,04) = 7,89

Päätearvon nykyarvoksi muodostuu 5,39 euroa (= 7,89/(1,10^4). Lisäarvomallin mukaan osakkeen arvo vuoden 2012 lopussa on 14,36 euroa (= 8,00 + 0,970 + 5,39). Tätä arvoa voidaan verrata osakkeen markkinahintaan ja sen avulla arvioida, minkälaisia kasvuodotuksia markkinoilta kohdistuu osakkeeseen.

Lisäarvomallin käyttäminen kasvuodotusten arvioimisessa

Mielestäni yksi mielenkiintoisimmista asioista, mitä mallin avulla voi tehdä, on yrittää hahmotella minkälaista kasvua markkinat odottavat. Tämä saadaan, kun ratkaistaan lisäarvomallista yhtälö, jossa jäännöstuottojen kasvutekijä jätetään tuntemattomaksi.

Otetaan esimerkiksi Koneen osake. Koneen oma pääoma per osake oli 2012 7,07 euroa. Analyytikot odottavat Koneen osakekohtaisen tuloksen olevan vuonna 2013 2,82 euroa ja vuonna 2014 3,15 euroa (Reuters). Vuosien 2000 ja 2012 välisenä aikana Koneen osingonjakosuhde on ollut keskimäärin 76 prosenttia. Tällä hetkellä Koneen osakkeen hinta on 58 euroa. Tuottovaatimukseksi asetetaan 10 prosenttia. Tällöin yhtälöksi saadaan:

Ratkaisemalla yhtälöstä g, saadaan tulokseksi analyytikoiden ennusteista ja osakkeen hinnasta johdettu odotettu pitkän aikavälin kasvuvauhti. Tämän mukaan Koneen odotettu kasvuvauhti on 5,59 % vuodessa. Olen tehnyt tähän tarkoitukseen Excel-pohjan, jonka avulla on helppo kokeilla, miten eri syöttöarvot vaikuttavat johdettuun kasvunopeuteen. Excel-pohja on ladattavissa tästä.

KONE: analyytikoiden ennusteista johdettu kasvuvauhti

KONE: analyytikoiden ennusteista johdettu kasvuvauhti

Kasvuvauhdin ratkaisussa on hyvä käyttää Excelin ratkaisinta. Ratkaisimen tavoitteeksi asetetaan osakkeen hinta-solu ja muuttujaksi asetetaan kasvunopeus. Kohdasta "Kohde" valitaan "Arvo" ja arvoksi asetetaan osakkeen markkinahinta. Tämän jälkeen painetaan "Ratkaise". Oheinen kuvakaappaus selkeyttää asiaa.

Mikäli tuottovaatimukseksi asetetaan 12 prosenttia ja muut luvut pidetään ennallaan, on odotettu kasvunopeus 7,97 prosenttia. Jos taas kasvunopeudeksi asetetaan 5,59 prosenttia ja tuottovaatimukseksi 12 prosenttia, osakkeen arvoksi muodostuu 39,78 euroa.

Ennusteet ovat kuitenkin ennusteita, ja kuten kaikki tietävät, ennustaminen on erittäin vaikeaa, jopa mahdotonta. Itse suhtaudunkin melko skeptisesti ennusteisiin (ja ennustamiseen), vaikka niistä jonkinlaisen kuvan markkinoiden odotuksista saakin. Lisäksi on huomioitava, että tuottovaatimukset saattavat poiketa toisistaan.

Mallin avulla voi kuitenkin kokeilla, mitkä tekijät vaikuttavat osakkeen hintaan ja millä tavalla. Lisäksi analyytikoiden ennusteiden ja mallin avulla voi hahmotella minkälaisia kasvuodotuksia osakkeeseen kohdistuu. Tarkkaa ja täysin oikeaa arvoa malli ei tietenkään anna, mutta silti mallia voi mielestäni käyttää sijoituspäätöksien apuna, muiden työkalujen joukossa.

Lähde: Penman, Stephen H.: Financial Statement Analysis and Security Valuation, fifth edition

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.