W wolnych chwilach (których niestety ostatnio nie mam za wiele) robię research na temat wyceny DCF (Discounted Cash Flow). Po co?
* simpllywall.st podaje wycenę wg DCF i chciałem zrozumieć jak to działa. Nawiasem mówiac, na simplywall.st mozna kliknąc w 'view data' do każdej wyceny i zobaczyć jakie dane używali do obliczeń.
* Chcę zbudować w przyszłości swój własny model 'skoringowy' (taki jak ma simplywall.st albo Seeking Alpha) i DCF wydal mi się czymś, co mogłoby być elementem takiego systemu.
* Chciałbym mieć jakikolwiek "uchwyt", "wartość wewnętrzną" dzięki której mógłbym z grubsza ocenić stopień 'odlotu' aktualnej wyceny akcji. Cokolwiek.
Nie chcę tu wymyślać koła od nowa, ale jednak model DCF jest czymś, co trzeba zrozumieć, żeby móc używac. Dlatego zrobiłem swojego 'excela' do wyliczania DCFa. Uwaga: brakuje w nim jeszcze obsługi zadłużenia firmy.
Cała moja wiedza opiera się na yt, przede wszystkim na tym filmie:
W załączonym excelu wycenę robiłem dla Fortineta. Wybrałem go trochę przypadkowo, ale to jedna z niewielu pozycji w moim portfelu, która wg DCFa simplywall.st była undervalued :D Nawiasem mówiac, FTNT jest firmą bez długu, co też wpływa na modelową wycenę. W excelu podzieliłem całość na 2 arkusze: jeden to tylko i wyłacznie dane wejściowe + sam wynik, drugi to obliczenia wewnętrzne, czary-mary które ostatecznie wypluwa wynik. Wszystkie dane do części "wejściowej" można wziąć z Yahoo Finance (głownie ze sprawozdania finansowego i z sekcji analiz). Mój excel ma twarde "odcięcie" przy 'terminal value'. Tzn. od razu zjeżdżam do 2,5% bez stopniowego zmniejszania growth rate. Wynika to tylko i wyłącznie z mojego lenistwa.
Oryginalnie robiłem to w Google Sheets, więc jakby ktoś był zainteresowany, to mogę udostępnić przez Google. Tutaj wklejam wyeksportowaną wersję do .xlsx:
Kilka przemyśleń:
* Po tym jak zrozumiałem jak działa wycena DCF przeszedłem na stronę niedźwiedzi.
* Tak, to powyżej to żart, nie mogłem się powstrzymac :P
* Ten model jest BARDZO subiektywny i wrażliwy na zmianę założeń.
* Najważniejszym elementem jest "discount factor", który w mojej wersji głównie bazuje na CAPM.
* CAPM z kolei opiera się na betcie (która jest wartością historyczną i nie wiemy jaka będzie w przyszłości), na risk free rate (to jest powiedzmy w miarę latwe do okreslenia, aczkolwiek w takim zwykłym CAPM nie zakładamy zmiany tej wartości w czasie) i na oczekiwanym zwrocie szerokiego rynku (znowu wartość historyczna lub bardzo uznaniowa).
* Wystarczy użyć o 1% innej wartości do określenia oczekiwanego zwrotu z szerokiego rynku i wycena spółki zmienia się o kilkadziesiąt procent (ale być może to wynika z tego, że mam za krótki okres do terminal-value, nie wiem).
* Używając czystego CAPM wpływ Risk-Free-Rate jest dla mnie co najmniej dziwny. Tzn. wycena spółki z beta < 1 będzie malała jeżeli RFR będzie większy, ale wycena spółki z beta > 1 będzie rosła wraz z większym RFR. Trochę dla mnie to jest nieintuicyjne, ale może gdzieś tam jakaś logika w tym jest. Albo używanie CAPM jest po prostu słabe. Nie wiem.
Także, tak ogólnie, troche się rozczarowałem odnośnie 'wrażliwości' wyniku końcowego na dane wejściowe, które nie są jasno określone (np. do wyznaczenia oczekiwanej stopy zwrotu z szerokiego rynku można wziąć średnią roczną stopę zwrotu z S&P500 z 30 lat albo z ostatnich 5. Można wziąć np. tę wartość z sektora IT. etc.). Ja rozumiem, że wycena tak czy inaczej będzie subiektywna, bo polega chociażby na estymatach odnośnie growth rate. Ale te wartości można zebrać od analityków. Ale jaki wybrac benchmark: to już jest w 100% uznaniowe. Byc może, jeżeliby dopracować ten model, sprawdzić statystycznie w backtestach możnaby tutaj pokusić się o jakiś swój wniosek jakich wartości używac i kiedy. To co robi simplywall.st na moje oko wydaje się sensowne, chociaż np. dla takiego FTNT beta im wychodzi < 1 a Yahoo Finance podaje > 1 ;)
To chyba wszystko, chociaz pewnie o czymś zapomniałem. Może się komuś to do czegoś przyda. Jak ktoś ma więcej doświadczenia w temacie DCFa, chętnie posłucham.
Aha, wszystko co tu napisałem może być nieprawdą, to jest dla mnie nowy temat, być może coś zrozumiałem na opak.
Discounted Cash Flow (DCF)
- Tomek
- Money talks
- Posty: 643
- Rejestracja: 13 mar 2021, 17:17
- Tu mieszkam: Sam już nie wiem, chyba głównie jednak na lotniskach
Re: Discounted Cash Flow (DCF)
Wszystkie wnioski, do których doszedłeś, są tymi, z powodu których mało który praktyk używa w ogóle DCF :)
PS. CAPM jest słaby, nawet sam Schiller ostatnio o tym pisał w NYT i proponował patrzenie na raczej na tzw. excess yield. No ale to też nieistotne w tym kontekście, bo każda zmiana parametru wejściowego w DCF pokaże totalnie inne wyniki na wyjściu. Wystarczy betę policzyć z innego okresu i dostaniemy dwa różne rezultaty.
PS. CAPM jest słaby, nawet sam Schiller ostatnio o tym pisał w NYT i proponował patrzenie na raczej na tzw. excess yield. No ale to też nieistotne w tym kontekście, bo każda zmiana parametru wejściowego w DCF pokaże totalnie inne wyniki na wyjściu. Wystarczy betę policzyć z innego okresu i dostaniemy dwa różne rezultaty.
Re: Discounted Cash Flow (DCF)
Fajna sprawa, też miałem zamiar do tego trochę przysiąść jako jeden z elementów większej analizy, ale właśnie nie jestem pewny użyteczności DCF, szczególnie w rękach mniej doświadczonego inwestora (moich ;)). Korzystałeś w swoim researchu z któregoś z tych spreadsheetow? - http://pages.stern.nyu.edu/~adamodar/Ne ... readsh.htm
Re: Discounted Cash Flow (DCF)
@Tomek - dzięki za komentarz.
@orzech - nie.. robiłem krok po kroku tylko wg tego filmu na yt, który podlinkowałem. I podglądalem też przez "view data" na simplywall.st dane z ich wyliczeń.
Ten DCF też nie do każdej spółki się nadaje, pomijając już 'wrażliwość' na parametry wejściowe. Muszą być pozytywne FCF i w ogóle stosunek FCF do Net Income powinien być mniej więcej stały na przestrzeni ostatnich lat, żeby uznać FCF jako 'proxy' do tego że firma rzeczywiście zarabia. Też na tym filmiku z yt jest o tym mowa. Na tym samym kanale jest też materiał gdzie są porównane różne modele wyceny i do czego który sie nadaje. Chyba kolejny któremu się przyjrzę to po prostu EV/EBITDA, o którym Tomek tez ostatnio wspominał. Zwłaszcza, że zwykle interesują mnie spółki Growth.
z DCFem pewnie jeszcze trochę poeksperymentuje, przede wszystkim spróbuje wymienić CAPM na coś bardziej wyrafinowanego. Np. coś co będzie mniej 'wrażliwe' na betę, albo/i będzie brało pod uwagę krzywą rentowności (a nie stałą wartość). Rozważam też zrobienie czegoś w rodzaju takiego 'brute force' DCFa - tzn. wyliczenie wartości dla różnych zakresów parametrów (np. dla bety od 0,9-1,2 , dla Rm (expected market return) 5%-9% i dla expected growth rate (np. 12%-20%). Z tych wszystkich kombinacji potem bym wyciągnął średnią. Tylko to już raczej nie nadaje się do excela, prościej będzie machnąć jakiś skrypt pythonowy do tego.
@orzech - nie.. robiłem krok po kroku tylko wg tego filmu na yt, który podlinkowałem. I podglądalem też przez "view data" na simplywall.st dane z ich wyliczeń.
Ten DCF też nie do każdej spółki się nadaje, pomijając już 'wrażliwość' na parametry wejściowe. Muszą być pozytywne FCF i w ogóle stosunek FCF do Net Income powinien być mniej więcej stały na przestrzeni ostatnich lat, żeby uznać FCF jako 'proxy' do tego że firma rzeczywiście zarabia. Też na tym filmiku z yt jest o tym mowa. Na tym samym kanale jest też materiał gdzie są porównane różne modele wyceny i do czego który sie nadaje. Chyba kolejny któremu się przyjrzę to po prostu EV/EBITDA, o którym Tomek tez ostatnio wspominał. Zwłaszcza, że zwykle interesują mnie spółki Growth.
z DCFem pewnie jeszcze trochę poeksperymentuje, przede wszystkim spróbuje wymienić CAPM na coś bardziej wyrafinowanego. Np. coś co będzie mniej 'wrażliwe' na betę, albo/i będzie brało pod uwagę krzywą rentowności (a nie stałą wartość). Rozważam też zrobienie czegoś w rodzaju takiego 'brute force' DCFa - tzn. wyliczenie wartości dla różnych zakresów parametrów (np. dla bety od 0,9-1,2 , dla Rm (expected market return) 5%-9% i dla expected growth rate (np. 12%-20%). Z tych wszystkich kombinacji potem bym wyciągnął średnią. Tylko to już raczej nie nadaje się do excela, prościej będzie machnąć jakiś skrypt pythonowy do tego.