sobota, 9 listopada 2024

Czy indeksy GPW są źle liczone?

Poprawne porównywanie stóp zwrotu z różnych indeksów, szczególnie w dłuższych okresach, wymaga odpowiedniej wiedzy. Np. WIG jest indeksem dochodowym w tym sensie, że uwzględnia nie tylko zmiany cen akcji, ale też dywidendy. Z kolei WIG20 i S&P 500 są indeksami cenowymi w tym sensie, że jedynie pokazują zmiany cen akcji, stąd nie są korygowane o dywidendy. Stanowią po prostu ważone kapitalizacje odpowiednich spółek. Aby móc porównać WIG z WIG20, stworzono WIG20TR - czyli właśnie odpowiednik WIGu dla największych 20 spółek. Również S&P 500 ma swój odpowiednik indeksu dochodowego - S&P 500 Total Return.

Tak więc porównanie WIG z S&P 500 nie jest poprawne - należy porównać go z S&P 500 TR. Można powiedzieć, że Total Return (TR) oznacza zwrot z indeksu dochodowego. Wydaje się więc, że sposób obliczania powinien być co do zasady ten sam - przynajmniej w kwestii dodawania dywidend.

I tu dochodzimy do meritum. Przeanalizowałem wzory, jakie stosują GPW i NYSE. Wg mnie sposób obliczania S&P 500 TR jest poprawny, a WIG20TR (a więc i WIG) niepoprawny.

Total Return na GPW

Metodologię obliczania indeksów, w tym WIG20TR, znajdziemy w regulaminach na tej stronie GPW -> W Regulaminie Rodziny Indeksów Giełdowych. 

Ogólny wzór na każdy indeks GPW jest następujący (pkt 4.2.1. Regulaminu):


gdzie:

Indeks(t) ‒ wartość Indeksu na Sesji „t”

M(t) ‒ kapitalizacja Portfela Indeksu na Sesji „t”

M(0) ‒ kapitalizacja Portfela Indeksu w Dniu Bazowym

Indeks(0) ‒ wartość Indeksu w Dniu Bazowym

K(t) ‒ Współczynnik Korygujący Indeksu na Sesji „t”


Dla WIG20TR (pkt 5.3.4.): 


gdzie:

M(t’) ‒ kapitalizacja Portfela Indeksu po rewizji, korekcie lub korekcie nadzwyczajnej obliczana na podstawie ostatniego kursu

M(t) ‒ kapitalizacja Portfela Indeksu zamknięcia przed rewizją, korektą lub korektą nadzwyczajną 


Dla uproszczenia załóżmy, że prawa poboru i nowe emisje akcji nie występują. Wtedy:


D(t) ‒ wartość dywidendy z akcji lub wartość teoretyczna dywidendy z akcji (obliczana przez Giełdę zgodnie ze Szczegółowymi Zasadami Obrotu Giełdowego), które na Sesji „t+1” po raz pierwszy będą notowane „bez dywidendy”; w przypadku ustalenia dywidendy w walucie obcej, kwota dywidendy zostaje przeliczona na złote.


Wyjaśnienie: w mianowniku występuje korekta K(t), która jest ułamkiem (indeksu bez dywidendy do indeksu z dywidendą), a więc podnosi cały indeks o odwrotność tego ułamka. Stąd WIG20TR nie będzie spadał o dywidendę. 

Ta konstrukcja jest identyczna dla WIG. Z kolei WIG20 nie zawiera owej korekty (zob. pkt 5.2.5. Regulaminu) i dlatego będzie spadał o średnioważoną dywidendę.
 

Total Return na NYSE i NASDAQ

Metodologia obliczenia TR jest zawarta w dokumencie Index Mathematics Methodology -> dok. pdf -> str. 21. 


Wtedy dzienny całkowity zwrot (Daily Total Return - DTR) zapiszemy:


gdzie IndexLevel(t) to typowy indeks giełdowy, jak S&P 500.

Wówczas indeks całkowitego zwrotu będzie określony wzorem:


Wyjaśnienie: Indeks z poprzedniego dnia jest powiększony o zwrot z tytułu zmiany cen i otrzymanej dywidendy nowego dnia.


Czy obydwa indeksy są równe?

Aby odpowiedzieć na to pytanie, podstawmy korektę K(t) do wzoru na Indeks:




Za K(t-1) analogicznie:



Powtarzając ten proces aż do K(0) dostaniemy:



W okresie 0 nie ma korekty albo przyjmujemy, że wszystkie wartości poprzednie M(t<0) = M(t<0') = M(0), stąd K(0) = 1. Dalej, w uproszczeniu możemy powiedzieć, że M(t'), M(t-1'), ... są to wartości na otwarcie kolejnego dnia, podczas gdy M(t), M(t-1), ... to wartości na zamknięcie tego samego dnia. Przy takim wyobrażeniu możemy zapisać, że:


dzięki czemu wzór na indeks się skraca:



Wyprowadźmy wzór na r'. Wiemy, że

M(t) = M(t') + D(t)

Czyli dla t-1:
M(t-1) = M(t-1') + D(t-1)

Teraz przekształcamy:
M(t) = M(t-1) + [M(t) - M(t-1)] = M(t-1') + D(t-1) + M(t) - M(t-1') - D(t-1) =
= M(t-1')*[M(t-1') / M(t-1') + [D(t-1) + M(t) - M(t-1') - D(t-1)]/M(t-1')] = 
= M(t-1')*[1 + [M(t) - M(t-1')]/M(t-1')] = M(t-1')*(1 + r')

Mamy więc
M(t) = M(t-1')*(1 + r'), gdzie
r(t') = [M(t) - M(t-1')]/M(t-1') = M(t) / M(t-1') - 1

Czyli zauważmy, że 



Jest to stopa zwrotu z WIG i WIG20TR. Problem polega na tym, że to wygląda tak, jakby ceną na zamknięcie była cena po odcięciu dywidendy - chociaż jeszcze tego odcięcia nie było, ponieważ nastąpi dopiero w kolejnym dniu. I wtedy w tym kolejnym dniu cena M(t) jest odnoszona do tej sztucznej ceny niby po odcięciu. Jak dla mnie to nie ma sensu. 

M(t) możemy też tak przekształcić, by uzyskać prostą stopę zwrotu:

M(t) = M(t-1) + [M(t) - M(t-1)] = M(t-1)/M(t-1)*M(t-1) + [M(t) - M(t-1)]/M(t-1)*M(t-1)   =
= M(t-1)*(1+r),
r(t) = [M(t) - M(t-1)]/M(t-1) = M(t) / M(t-1) - 1

r(t) jest zwykłą stopą zwrotu, typową dla WIG20 lub S&P 500, czyli bez dywidend. W takim razie całkowita dzienna stopa zwrotu z S&P 500 musi być równa:


Jest to oczywiście ten sam wzór, który wcześniej był podany w metodologii obliczania S&P.
Wynika z tego, że w ogólnym przypadku TR dla WIG nie będzie równa TR dla S&P 500, a dokładniej dla WIG będzie większa! Dla WIG dywidendę odejmuje się w mianowniku i od tego punktu liczy się wzrost. Dla S&P 500 TR w liczniku dodaje się dywidendę w stosunku do zamknięcia poprzedniego dnia. Z powodu tej różnicy powstaje przesunięcie czasowe w ustaleniu okresu dywidendy. W przypadku WIG i WIG20TR dywidenda nie dotyczy dnia, w którym nastąpiło jej odcięcie od cen, ale od poprzedniego dnia. W przypadku S&P 500 TR dywidenda dotyczy tego dnia, w którym następuje odcięcie. 

Przykład

Żeby zobaczyć różnicę zrobimy sztuczny przykład. W dniu 0 kupujemy 1 akcję po 10 zł z prawem do dywidendy po 1 zł. Jutro, w dniu 1, dostajemy dywidendę. Kurs akcji spadnie o wielkość dywidendy (bez odcięcia wyszedłby na zero). W dniu 2 kurs rośnie o 15%, a dodatkowo ustalona zostaje znów dywidenda 1 zł. W dniu 3 cena na otwarcie spada o wielkość tej dywidendy, ale od otwarcia cena rośnie o 10%:

(1) WIG / WIG20TR:

dzień 0: 
D(0) = 1
M(0) = 10
M(0') = M(0) - D(0) = 10 - 1 = 9
K(0) = 1

indeks(0) = M(0) = 10

dzień 1: 
D(1) = 0
M(1) = M(0') = 9
M(1') = M(1) - D(1) = 9 - 0 = 9
K(1) = M(0') / M(0) * K(0) = 9 / 10 * 1 = 0,9

indeks(1) = M(1) / (M(0) * K(1)) * 10 = 9 / (10 * 0,9) * 10 = 10

DTR(1) = indeks(1) / indeks(0) - 1 = 10 / 10 - 1 = 0

Sprawdźmy czy DTR(1) jest równe r':
r' = M(1) / M(0') - 1 = 9 / 9 - 1 = 0

Zgadza się: r' = DTR(1)

dzień 2: 
D(2) = 1
M(2) = M(1')*1,15 = 9*1,15 = 10.35
M(2') = M(2) - D(2) = 10,35 - 1 = 9,35
K(2) = M(1') / M(1) * K(1) = 9 / 9 * 0,9 = 0,9

indeks(2) = M(2) / (M(0) * K(2)) * 10 = 10,35 / (10 * 0,9) * 10 = 11,5

DTR(2) = indeks(2) / indeks(1) - 1 = 11,5 / 10 = 0,15

Sprawdźmy czy DTR(2) jest równe r':
r' = M(2) / M(1') - 1 = 10.35 / 9 - 1 = 0,15

Zgadza się: r' = DTR(2)

dzień 3: 
D(3) = 0
M(3) = M(2')*1,1 = 9,35*1,1 = 10,29
M(3') = M(3) - D(3) = 10,29 - 0 = 10,29
K(3) = M(2') / M(2) * K(2) = 9,35 / 10,35 * 0,9 = 0,813

indeks(3) = M(3) / (M(0) * K(3)) * 10 = 10,29 / (10 * 0,813) * 10 = 12,66

Policzmy zmianę w trzecim dniu:
DTR(3) = indeks(3) / indeks(2) = 12,66 / 11,5 - 1 = 0,10

Sprawdźmy czy DTR(3) jest równe r':
r' = M(3) / M(2') - 1 = 10,29 / 9,35 - 1 = 0,10

Zgadza się: r' = DTR(3)

W okresie od 0 do 3-go dnia indeks wzrósł o:
TR = (12,66 / 10 - 1)*100% = 26,6%


(2) S&P 500:

dzień 0: 
D(0) = 0
M(0) = 10

indeks(0) = M(0) = 10

dzień 1:  
D(1) = 1
M(1) = M(0) - D(1) = 10 - 1 = 9

DTR(1) = (M(1) + D(1)) / M(0) - 1 = (9 + 1) / 10 - 1 = 0

indeks(1) = indeks(0)*(1 + DTR(1)) = 10*(1 + 0) = 10

Zmiana indeksu:
indeks(1) / indeks(0) - 1 = 10/10 - 1 = 0 = DTR(1) 

dzień 2: 
D(2) = 0
M(2) = (M(1) - D(2))*1,15 = 9*1,15 = 10,35

DTR(2) = (M(2) + D(2)) / M(1) - 1 = (10,35 + 0) / 9 - 1 = 0,15

indeks(2) = indeks(1)*(1 + DTR(2)) = 10*(1 + 0,15) = 11,5

dzień 3: 
D(3) = 1
M(3) = (M(2) - D(3))*1,1 = (10,35 - 1)*1,1 = 9,35*1,1 = 10,29
DTR(3) = (M(3) + D(3)) / M(2) - 1 = (10,29 + 1) / 10,35 - 1 = 0,091

indeks(3) = indeks(2)*(1 + DTR(3)) = 11,5*(1 + 0,091) = 12,55

W okresie od 0 do 3-go dnia indeks wzrósł o:
TR = (12,55 / 10 - 1)*100% = 25,5%


Zatem widzimy, że - mimo identycznych założeń: poziomów kapitalizacji M(t), dziennych zmian ceny i identycznych dywidend - WIG rośnie mocniej od S&P 500 TR o 1,1 pkt proc.

Podsumowanie

No więc pytanie czy to możliwe, żeby GPW źle obliczała WIG i WIG20TR oraz inne indeksy TR? Są tylko 3 możliwości. Albo czegoś nie rozumiem, albo regulamin nie jest wystarczająco precyzyjny i GPW dokonuje jeszcze dodatkowej korekty indeksu, albo naprawdę źle liczą ten indeks. W USA jest natomiast prawidłowo - indeks TR jest konstruowany na podstawie powszechnie stosowanego wzoru na całkowitą stopę zwrotu.  

Mimo wszystko nawet jeżeli mam rację, to nie ma to w rzeczywistości wielkiego wpływu, bo mało prawdopodobne, żeby kurs zmieniał się o 10% i więcej dziennie, jak w przykładzie. W dodatku sam S&P 500 - bez dywidend - radzi sobie dużo, dużo lepiej niż nasz WIG z dywidendami. 

piątek, 1 listopada 2024

Lepiej żeby Trump wygrał?

Już 5 listopada odbędą się wybory w USA. Prof. A. Lichtman, którego metoda zawiodła tylko raz w 9-ciu na 10 przypadków (w ciągu ostatnich 40 lat) - przewiduje wygraną Kamali Harris (zob. np. tu , tu i tu). Przy tym trzeba zaznaczyć, że model Lichtmana jest krytykowany za zbytni subiektywizm. Mnie też zastanawia mocna krytyka Trumpa z jego strony (ostatnio razem z synem nazwał go faszystą, zob. tu). Oczywiście można chwalić za szczerość, ale wolałbym, żeby mówił to już po wyborach - byłby dla mnie bardziej wiarygodny. 

W artykule Dlaczego Demokraci dają lepsze stopy zwrotu niż Republikanie? pokazałem, że podczas rządów demokratów stopy zwrotu z S&P 500 są istotnie wyższe. Od tego czasu jednak indeks urósł 15%. W dodatku za nami 2 lata potężnej hossy (wzrost o ponad 40%). Gdyby więc Trump wygrał, wszystko stałoby się jasne: w Polsce indeksy by runęły (zresztą już chyba dyskontowanie Trumpa następuje), a w USA bessa mogłaby się rozpędzić. Dzięki temu nie tylko można by zarobić na bardziej pewnych spadkach, ale też łatwiej byłoby stopniowo budować portfel na przyszłość.

Spójrzmy na taki Microsoft:


Zapowiada się głębsze obsunięcie. Obecna wycena jest naprawdę okej (jak wyceniałem z rok temu, to dostałem ok. 400$), ale skoro poszybowało do 460, to i "musi" spaść do 340 dla równowagi.

Trochę przypomina to moment rozpoczęcia wojny w 2022 r., kiedy ludzie bali się wojny z Rosją. Wtedy bessa wydawała mi się zbyt oczywista - sądziłem, że spadki będą głębokie, ale krótkie. Teraz byłoby to dużo bardziej naturalne: dojście Trumpa do władzy wywoła strach nie tylko w Polsce, ale nie będzie tak gwałtowny jak wtedy w 2022 r. Wprawdzie wtedy USA przygotowywało publikę przez wiele miesięcy na wojnę, ale wielu (może nawet większość) w to nie wierzyło. Teraz jest niemalże na odwrót, media straszą, że jak Trump dojdzie do władzy, to za chwilę zobaczymy rosyjskie czołgi przy granicy. Więc będzie to znowu dobra okazja do kupowania co niektórych akcji. Portfel 60% największych spółek S&P 500, 20% kilka spółek z WIG i 20% coś innego - ETF, futures (np. na WIG20), fundusz, zagraniczne akcje, może surowce. To pierwsze przybliżenie portfela, jaki bym dziś budował.

Lichtman twierdzi, że Harris wygra, ale ekonomiczne argumenty idą na przekór. W USA jest niskie bezrobocie i niska inflacja - a to skłania ludzi do wyboru republikanów, jak było wyjaśnione we wspomnianym artykule. Poza tym jest jeszcze coś, o czym nikt nie mówi. Harris jest kobietą, a więc byłaby pierwszym prezydentem USA płci żeńskiej. Przynajmniej nasze media jakoś w ogóle nie poruszają tej kwestii, która przecież jest istotna. Bo skoro nigdy kobieta nie została prezydentem (w lewicowej nowomowie będzie się na pewno mówić "prezydentka"), to znaczy, że kobietom jest trudniej wygrać. Biorąc to wszystko pod uwagę, nastawiam się raczej na powrót Trumpa. To będzie prawdziwy test dla metody Lichtmana - jeśli znowu będzie miał rację, to zamknie usta krytykom. Jeśli się pomyli, to nikt już nie będzie go traktował poważnie i stanie się rodzajem anegdoty.