wtorek, 17 września 2024

Jak wykorzystać model GARCH w trejdingu?

Model GARCH jako taki nie służy do prognozowania cen czy stóp zwrotu, ale ich zmienności. Można go jednak rozumieć w szerszy sposób, tj. ARIMA-GARCH. Ten artykuł jest kontynuacją wcześniejszych: Dlaczego oddzielne badanie autokorelacji jest błędem? oraz Modelowanie ryzyka z rugarch (język R). Omówię te dwa sposoby z punktu widzenia trejdingu. 

Przygotowanie danych

Na początek ładuję dwa pakiety: xts oraz rugarch

# Przedwstęp

if (require("xts")==FALSE) {

  install.packages("xts")

}

library("xts")

if (require("rugarch")==FALSE) {

  install.packages("rugarch")

}

library("rugarch")


Analizę wykonam na WIG20, plik .csv - dzienne dane - pobrane ze stooq.pl. Przekształcam je w tygodniowe i ucinam do 200 ostatnich notowań (ostatnie to 13.09.2024). Przekształcam w stopy zwrotu.

# Wstęp

nazwaPliku = "wig20_d.csv"

Obs <- 200

plik <- read.csv(nazwaPliku)

plik$Data <- as.Date(plik$Data)

tabela <- tail(to.weekly(as.xts(plik), indexAt="endof", OHLC=FALSE), Obs)

cena <- tabela$Zamkniecie

stopaZwrotu <- diff.xts(log(cena))

tabela$stopaZwrotu <- stopaZwrotu

tabela <- na.omit(tabela)

stopaZwrotu <- tabela$stopaZwrotu


1. ARIMA-GARCH

W szerszym ujęciu GARCH dzieli się na dwie części: najpierw szukamy optymalnego ARIMA za pomocą funkcji autoarfima(). Ustawiam max 10 rzędów zarówno dla części AR, jak i MA.  Na początek zakładam rozkład skośno-normalny głównie z powodu szybkości obliczania jego parametrów:  

# 1. część ARMA

arimaDopas <- autoarfima(stopaZwrotu, ar.max = 10, ma.max = 10, criterion = "HQIC",

                        distribution.model = "snorm", 

                        method="partial")

                       

Po wpisaniu zmiennej dostajemy statystyki

arimaDopas

*----------------------------------*
*          ARFIMA Model Fit        *
*----------------------------------*
Mean Model	: ARFIMA(5,0,3)
Distribution	: snorm 

Optimal Parameters
------------------------------------
       Estimate  Std. Error    t value Pr(>|t|)
mu     0.002644    0.000001    2376.47        0
ar1   -0.616537    0.000031  -19828.09        0
ar2    1.054657    0.000034   31037.94        0
ar3    0.533467    0.000028   19356.08        0
ar4   -0.173088    0.000010  -17629.16        0
ar5    0.053956    0.000006    8470.41        0
ma1    1.038622    0.000009  118359.33        0
ma2   -1.083726    0.000008 -139217.06        0
ma3   -1.131477    0.000060  -18831.84        0
sigma  0.024462    0.000096     254.15        0
skew   0.833062    0.002360     352.95        0

Robust Standard Errors:
       Estimate  Std. Error    t value Pr(>|t|)
mu     0.002644    0.000000   6484.164        0
ar1   -0.616537    0.000119  -5183.800        0
ar2    1.054657    0.000090  11723.967        0
ar3    0.533467    0.000040  13248.164        0
ar4   -0.173088    0.000041  -4179.572        0
ar5    0.053956    0.000019   2915.708        0
ma1    1.038622    0.000358   2897.527        0
ma2   -1.083726    0.000012 -88962.282        0
ma3   -1.131477    0.000060 -18854.153        0
sigma  0.024462    0.000949     25.785        0
skew   0.833062    0.003603    231.216        0

LogLikelihood : 456.9 

Information Criteria
------------------------------------
                    
Akaike       -4.4819
Bayes        -4.2999
Shibata      -4.4876
Hannan-Quinn -4.4082

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                         statistic p-value
Lag[1]                       2.763 0.09649
Lag[2*(p+q)+(p+q)-1][23]    11.182 0.91984
Lag[4*(p+q)+(p+q)-1][39]    17.964 0.71904

H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                      2.091  0.1482
Lag[2*(p+q)+(p+q)-1][2]     2.238  0.2262
Lag[4*(p+q)+(p+q)-1][5]     4.670  0.1816


ARCH LM Tests
------------------------------------
             Statistic DoF P-Value
ARCH Lag[2]      2.347   2  0.3093
ARCH Lag[5]      9.088   5  0.1056
ARCH Lag[10]    13.467  10  0.1987

Nyblom stability test
------------------------------------
Joint Statistic:  7.683
Individual Statistics:             
mu    0.00450
ar1   0.21211
ar2   0.20711
ar3   0.19583
ar4   0.09643
ar5   0.12618
ma1   0.19549
ma2   0.19475
ma3   0.16916
sigma 0.27608
skew  0.10861

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:     	 2.49 2.75 3.27
Individual Statistic:	 0.35 0.47 0.75

Najlepszy to ARMA(5, 3). Zapisujemy optymalne rzędy:

rzadAR <- arimaDopas$rank.matrix[1,1]

rzadMA <- arimaDopas$rank.matrix[1,2]


Model jest niestabilny (Joint Statistics > 2,75). Prawdopodobnie wybraliśmy zły rozkład. Zmieńmy na skośny uogólniony rozkład błędów, tj. "sged". Ponieważ wybór innego rozkładu niż normalny i skośno-normalny wydłuża znacząco cały proces obliczeń, dodamy parametr cluster, który wykorzystuje pakiet parallel do równoczesnego przetwarzania danych przez pozostałe rdzenie procesora (na koniec wyłączamy tę opcję); to przyspieszy proces: 

klaster <- makeCluster(detectCores() - 1)

arimaDopas <- autoarfima(stopaZwrotu, ar.max = 10, ma.max = 10, criterion = "HQIC",

                        distribution.model = "sged", cluster = klaster,

                        method="partial")

stopCluster(klaster)

arimaDopas

*----------------------------------*
*          ARFIMA Model Fit        *
*----------------------------------*
Mean Model	: ARFIMA(5,0,3)
Distribution	: sged 

Optimal Parameters
------------------------------------
       Estimate  Std. Error      t value Pr(>|t|)
mu     0.002994    0.000001    2333.1750        0
ar1   -0.735343    0.000231   -3185.0574        0
ar2    1.065479    0.000335    3185.0574        0
ar3    0.715202    0.000225    3185.0574        0
ar4   -0.164068    0.000052   -3185.0574        0
ar5   -0.012163    0.000005   -2435.7292        0
ma1    1.043899    0.000029   36290.9045        0
ma2   -1.073710    0.000050  -21428.3317        0
ma3   -1.130274    0.000008 -139344.0095        0
sigma  0.024216    0.001212      19.9784        0
skew   0.872133    0.075043      11.6218        0
shape  1.711239    0.172880       9.8984        0

Robust Standard Errors:
       Estimate  Std. Error     t value Pr(>|t|)
mu     0.002994    0.000005    556.1676 0.000000
ar1   -0.735343    0.021895    -33.5850 0.000000
ar2    1.065479    0.053812     19.8000 0.000000
ar3    0.715202    0.020475     34.9306 0.000000
ar4   -0.164068    0.001227   -133.6667 0.000000
ar5   -0.012163    0.000004  -2972.8839 0.000000
ma1    1.043899    0.000706   1479.4296 0.000000
ma2   -1.073710    0.001064  -1009.1810 0.000000
ma3   -1.130274    0.000055 -20500.1353 0.000000
sigma  0.024216    0.001543     15.6918 0.000000
skew   0.872133    0.112199      7.7731 0.000000
shape  1.711239    0.705025      2.4272 0.015216

LogLikelihood : 459.4 

Information Criteria
------------------------------------
                    
Akaike       -4.4965
Bayes        -4.2979
Shibata      -4.5033
Hannan-Quinn -4.4161

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                         statistic p-value
Lag[1]                    0.002713  0.9585
Lag[2*(p+q)+(p+q)-1][23]  8.977574  1.0000
Lag[4*(p+q)+(p+q)-1][39] 16.731900  0.8385

H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.5398  0.4625
Lag[2*(p+q)+(p+q)-1][2]    0.6712  0.6184
Lag[4*(p+q)+(p+q)-1][5]    3.1718  0.3766


ARCH LM Tests
------------------------------------
             Statistic DoF P-Value
ARCH Lag[2]     0.8306   2  0.6601
ARCH Lag[5]     7.7465   5  0.1708
ARCH Lag[10]   12.4933  10  0.2534

Nyblom stability test
------------------------------------
Joint Statistic:  1.744
Individual Statistics:             
mu    0.05618
ar1   0.03768
ar2   0.03560
ar3   0.03446
ar4   0.03642
ar5   0.03377
ma1   0.06555
ma2   0.06355
ma3   0.07824
sigma 0.24067
skew  0.25045
shape 0.27590

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:     	 2.69 2.96 3.51
Individual Statistic:	 0.35 0.47 0.75


Rzeczywiście model staje się stabilny, co oznacza, że problemem był rozkład. Nadal najlepszy jest ARMA(5, 3). Zaskakujące, że diagnostyka nie wykrywa ani autokorelacji w kwadratach reszt, ani efektu ARCH.

2. GARCH

Skoro diagnostyka nie wychwyciła występowania ARCH, można by pominąć ten krok i zająć się od razu prognozą. Jednak zastosowanie modelu wariancji pozwoli sprawdzić również efekt Arch-In-Mean. W tym wpisie pokazałem, że dzienne stopy zwrotu mogą być modelowane za pomocą TGARCH-ARCH-In-Mean, a miesięczne za pomocą EGARCH-ARCH-In-Mean. Sugeruje to, że tygodniowe będą czymś pomiędzy. Dla przypomnienia  model ARCH-in-Mean oznacza, że stopa zwrotu jest zależna od wariancji warunkowej. Wówczas jednak rzędy ARMA były pominięte. Co by się stało, gdybyśmy je dodali? Oczywiście możemy to zrobić poprzez dodanie rzędów ARMA(5, 3), ale wcale nie jest pewne, że będzie to model najlepszy. Dlatego warto zrobić własną funkcję szukającą najlepszego modelu ARMA-GARCH. Funkcja wykorzysta otrzymane z autoarfimy optymalne rzędy jako maksymalne rzędy przeszukiwania, tzn. będziemy sprawdzać rzędy od 0 do rzadAR oraz od 0 do rzadMA. Co więcej będzie uwzględniał zarówno Arch-In-Mean, jak i bez niego. Kod dla TGARCH ma postać:

# 2. część GARCH

kryteriaInfor <- list()

for (k in 0:1) {

  for (i in 0:rzadAR) {

    for (j in 0:rzadMA) {

      mojGarch <- ugarchspec(variance.model = list(model = "fGARCH", submodel = "TGARCH",

                                                   garchOrder = c(1, 1)), 

                             mean.model = list(armaOrder = c(i, j), archm = as.logical(k)), 

                             distribution.model = "sged")

      dopasGarch <- ugarchfit(spec = mojGarch, data = stopaZwrotu)

      

      nr <- paste0("ARMA(", i, ", ", j, ") - ARCH In Mean")

      # usuwamy ARCH in mean dla k = 1

      nr <- ifelse(k == 1, nr, sub(" - ARCH In Mean", "", nr))

      kryteriaInfor[[nr]] <- infocriteria(dopasGarch)

    }

  }

}


kryteriaDf <- do.call(cbind, kryteriaInfor)

colnames(kryteriaDf) <- names(kryteriaInfor)

minKryteria <- apply(kryteriaDf, 1, function(wiersz) {

  

  wartoscMin = min(wiersz)

  kolumnaMin = colnames(kryteriaDf)[which.min(wiersz)]

  return(c(Minimum = wartoscMin, Kolumna = kolumnaMin))

})


minKryteriaDf <- as.data.frame(t(minKryteria))

minKryteriaDf


Otrzymany wynik:

                       Minimum    Kolumna
Akaike       -4.45083487203567 ARMA(5, 3)
Bayes         -4.2045670547213 ARMA(3, 3)
Shibata      -4.46117146205014 ARMA(5, 3)
Hannan-Quinn -4.35036611102375 ARMA(5, 3)

 

Oznacza to, że wynik autoarfimy koresponduje z TGARCH. Dla EGARCH kod jest oczywiście taki sam poza fragmentem:

list(model = "fGARCH", submodel = "TGARCH"

który zamienia się w:

list(model = "eGARCH", submodel = NULL 


I z niego otrzymałem:

                       Minimum    Kolumna
Akaike       -4.43263086741263 ARMA(2, 2)
Bayes        -4.25058889217661 ARMA(2, 2)
Shibata      -4.43832575443847 ARMA(2, 2)
Hannan-Quinn  -4.3589537760039 ARMA(2, 2)


Sytuacja okazuje się niejednoznaczna. Z punktu widzenia AIC TGARCH jest lepszy. Z punktu widzenia BIC i HQIC lepszy jest EGARCH. Jeśli chodzi o SHC, czyli kryterium Shibata, to ja to pomijam, po pierwsze niemal zawsze wskazuje ten sam kierunek co AIC, a po drugie jest słabo opisany w literaturze.

Należy zauważyć, że oba modele nie zawierają elementu Arch-In-Mean. Można powiedzieć, że ARMA go zastąpiła.

Otrzymane modele wymagają diagnostyki. Zacznijmy od ARMA(5, 3)-TGARCH(1, 1):

mojGarch <- ugarchspec(variance.model = list(model = "fGARCH", submodel = "TGARCH",

                                             garchOrder = c(1, 1)), 

                       mean.model = list(armaOrder = c(rzadAR, rzadMA)), distribution.model = "sged")

dopasGarch <- ugarchfit(spec = mojGarch, data = stopaZwrotu)
dopasGarch


*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics 	
-----------------------------------
GARCH Model	: fGARCH(1,1)
fGARCH Sub-Model	: TGARCH
Mean Model	: ARFIMA(5,0,3)
Distribution	: sged 

Optimal Parameters
------------------------------------
        Estimate  Std. Error    t value Pr(>|t|)
mu      0.001222    0.000004   287.4520 0.000000
ar1    -0.646631    0.000094 -6851.4518 0.000000
ar2     1.106298    0.000084 13106.6297 0.000000
ar3     0.627234    0.000090  6953.5872 0.000000
ar4    -0.102406    0.000040 -2533.7961 0.000000
ar5     0.099523    0.000039  2578.2384 0.000000
ma1     1.035966    0.000078 13332.0845 0.000000
ma2    -1.079756    0.000171 -6301.9226 0.000000
ma3    -1.128152    0.000256 -4412.9976 0.000000
omega   0.002007    0.001332     1.5071 0.131781
alpha1  0.054355    0.024212     2.2450 0.024768
beta1   0.876710    0.053657    16.3391 0.000000
eta11   0.996087    0.508698     1.9581 0.050217
skew    0.864175    0.062759    13.7697 0.000000
shape   1.601437    0.251582     6.3655 0.000000

Robust Standard Errors:
        Estimate  Std. Error      t value Pr(>|t|)
mu      0.001222    0.000018    66.728331  0.00000
ar1    -0.646631    0.004215  -153.419278  0.00000
ar2     1.106298    0.007908   139.895269  0.00000
ar3     0.627234    0.004506   139.206023  0.00000
ar4    -0.102406    0.000244  -419.427330  0.00000
ar5     0.099523    0.000060  1667.478136  0.00000
ma1     1.035966    0.000476  2177.437996  0.00000
ma2    -1.079756    0.000322 -3357.818162  0.00000
ma3    -1.128152    0.004830  -233.579659  0.00000
omega   0.002007    0.006530     0.307381  0.75855
alpha1  0.054355    0.686095     0.079224  0.93685
beta1   0.876710    0.741582     1.182216  0.23712
eta11   0.996087    8.183445     0.121720  0.90312
skew    0.864175    0.042192    20.481868  0.00000
shape   1.601437    0.680752     2.352454  0.01865

LogLikelihood : 457.9 

Information Criteria
------------------------------------
                    
Akaike       -4.4508
Bayes        -4.2026
Shibata      -4.4612
Hannan-Quinn -4.3504

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                         statistic p-value
Lag[1]                      0.3174  0.5732
Lag[2*(p+q)+(p+q)-1][23]   10.3414  0.9983
Lag[4*(p+q)+(p+q)-1][39]   18.5933  0.6475
d.o.f=8
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                         statistic p-value
Lag[1]                  0.00004328  0.9948
Lag[2*(p+q)+(p+q)-1][5] 3.39042514  0.3404
Lag[4*(p+q)+(p+q)-1][9] 5.51638020  0.3576
d.o.f=2

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[3]     4.431 0.500 2.000 0.03530
ARCH Lag[5]     5.177 1.440 1.667 0.09349
ARCH Lag[7]     6.140 2.315 1.543 0.13209

Nyblom stability test
------------------------------------
Joint Statistic:  3.741
Individual Statistics:              
mu     0.01584
ar1    0.01865
ar2    0.02030
ar3    0.01897
ar4    0.02063
ar5    0.01946
ma1    0.01911
ma2    0.01778
ma3    0.01841
omega  0.06211
alpha1 0.04989
beta1  0.08077
eta11  0.31789
skew   0.07723
shape  0.04888

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:     	 3.26 3.54 4.07
Individual Statistic:	 0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias           0.9408 0.3480    
Negative Sign Bias  0.3877 0.6987    
Positive Sign Bias  0.2705 0.7871    
Joint Effect        1.0407 0.7914    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     18.99       0.4575
2    30     34.82       0.2105
3    40     44.82       0.2409
4    50     40.95       0.7865


Model jest lekko niestabilny (przez to parametry (G)ARCH nieistotne). Teraz ARMA(2, 2)-EGARCH(1,1).

*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics 	
-----------------------------------
GARCH Model	: eGARCH(1,1)
Mean Model	: ARFIMA(2,0,2)
Distribution	: sged 

Optimal Parameters
------------------------------------
        Estimate  Std. Error     t value Pr(>|t|)
mu      0.000872    0.000007  1.3068e+02  0.0e+00
ar1    -1.695986    0.000000 -1.6489e+07  0.0e+00
ar2    -0.735113    0.000000 -9.7011e+06  0.0e+00
ma1     1.874230    0.000648  2.8906e+03  0.0e+00
ma2     0.868271    0.001679  5.1706e+02  0.0e+00
omega  -0.384768    0.000038 -1.0045e+04  0.0e+00
alpha1 -0.189127    0.046551 -4.0628e+00  4.8e-05
beta1   0.947281    0.001075  8.8104e+02  0.0e+00
gamma1 -0.075395    0.000542 -1.3914e+02  0.0e+00
skew    0.836575    0.112010  7.4688e+00  0.0e+00
shape   2.646523    0.666196  3.9726e+00  7.1e-05

Robust Standard Errors:
        Estimate  Std. Error     t value Pr(>|t|)
mu      0.000872    0.000542  1.6082e+00 0.107795
ar1    -1.695986    0.000013 -1.3200e+05 0.000000
ar2    -0.735113    0.000008 -8.7846e+04 0.000000
ma1     1.874230    0.091483  2.0487e+01 0.000000
ma2     0.868271    0.315734  2.7500e+00 0.005959
omega  -0.384768    0.107277 -3.5867e+00 0.000335
alpha1 -0.189127    4.249978 -4.4501e-02 0.964505
beta1   0.947281    0.106032  8.9339e+00 0.000000
gamma1 -0.075395    0.025790 -2.9234e+00 0.003462
skew    0.836575    0.494241  1.6926e+00 0.090523
shape   2.646523   61.861149  4.2782e-02 0.965876

LogLikelihood : 452.0468 

Information Criteria
------------------------------------
                    
Akaike       -4.4326
Bayes        -4.2506
Shibata      -4.4383
Hannan-Quinn -4.3590

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                         statistic p-value
Lag[1]                       1.428  0.2320
Lag[2*(p+q)+(p+q)-1][11]     3.101  1.0000
Lag[4*(p+q)+(p+q)-1][19]     9.156  0.6119
d.o.f=4
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.1386  0.7097
Lag[2*(p+q)+(p+q)-1][5]    0.8697  0.8884
Lag[4*(p+q)+(p+q)-1][9]    2.8003  0.7914
d.o.f=2

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[3]    0.2651 0.500 2.000  0.6066
ARCH Lag[5]    0.8789 1.440 1.667  0.7692
ARCH Lag[7]    2.6093 2.315 1.543  0.5901

Nyblom stability test
------------------------------------
Joint Statistic:  2.4751
Individual Statistics:              
mu     0.03485
ar1    0.03350
ar2    0.03469
ma1    0.04462
ma2    0.03174
omega  0.15840
alpha1 0.14496
beta1  0.16233
gamma1 0.20550
skew   0.09238
shape  0.09576

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:     	 2.49 2.75 3.27
Individual Statistic:	 0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias           0.6633 0.5080    
Negative Sign Bias  0.1653 0.8689    
Positive Sign Bias  0.3918 0.6956    
Joint Effect        0.5216 0.9141    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     15.57       0.6856
2    30     39.04       0.1009
3    40     39.99       0.4258
4    50     54.52       0.2728


EGARCH jest dużo bardziej stabilny od TGARCH, ale efekt GARCH tylko częściowo występuje (alpha1 nieistotna, beta1 istotna). W tym miejscu powinniśmy zadać sobie pytanie, czy w ogóle nie należy pominąć GARCH i nie wybrać samego modelu ARMA(5, 3), który został uznany za najlepszy przez autoarfimę, a jej diagnostyka w ogóle nie wykryła autokorelacji w wariancjach składnika losowego. Dla ARMA(5, 3) dostaliśmy wartości kryteriów

Akaike       -4.4965
Bayes        -4.2979
Shibata      -4.5033
Hannan-Quinn -4.4161

Dla ARMA(5, 3)-TGARCH(1,1) dostaliśmy

Akaike       -4.4508
Bayes        -4.2026
Shibata      -4.4612
Hannan-Quinn -4.3504

Dla ARMA(2, 2)-EGARCH(1, 1):

Akaike       -4.4326
Bayes        -4.2506
Shibata      -4.4383
Hannan-Quinn -4.3590

Wydawałoby się, że należy po prostu zastosować zwykły ARMA(5, 3). Jednakże takie porównanie 1:1 nie wydaje się rozsądne. W przypadku modelu ARIMA prognozujemy jedynie stopy zwrotu, podczas gdy w GARCH (czy precyzyjniej ARIMA-GARCH) nie tylko stopy zwrotu, ale i odchylenie od średniej.

W sumie należy oddzielić dokładność prognozy stopy zwrotu od prognozy jej odchylenia. Zwykła korelacja nie nadaje się, bo skupia się na kierunku zmian, a nie ich znaku. Gdyby nasza prognoza miała zawsze taki sam znak jak prawdziwa stopa zwrotu, ale różny kierunek (tzn. gdy prawdziwa zmiana rośnie, to prognoza spada), to dostalibyśmy ujemną korelację, a więc zupełnie nie ma to sensu. Dlatego potrzebna jest miara badająca bardziej wspólność znaków niż kierunku. Oczywiście najbardziej naturalnym podejściem jest obliczenie częstości poprawności prognozy i porównanie jej z teoretycznym prawdopodobieństwem co najmniej tylu sukcesów w rozkładzie dwumianowym - tak jak pokazałem w tym artykule. Test dwumianowy wskaże czy liczba sukcesów jest istotna statystycznie, ale nie poda już  faktycznej skuteczności - tj. prawdopodobieństwa po uwzględnieniu przypadkowych odchyleń. 

Taką miarą jest zaś tzw. dokładność kierunkowa. rugarch oferuje specjalny test DAC (ang. Directional Accuracy Test - test kierunkowej dokładności), który ją oblicza i testuje jej istotność. Zastosowanie DAC jest proste. jego konstrukcja jest następująca:

DACTest(forecast, actual, test="PT")

Symbol "PT" oznacza test Pesaran-Timmermann. Zamiast tego można wpisać "AG" - test Anatolyev-Gerko. Oba dają bardzo zbliżone rezultaty.

Znajdujemy więc prognozy w każdym modelu. Dla ARMA(5, 3):

# prognoza w próbie

stopaZwrotuDopas <- fitted(dopasGarch)

# Testujemy zdolność prognostyczną modelu:

DACTest(forecast = stopaZwrotuDopas, actual = as.numeric(stopaZwrotu), test="PT")

$Test
[1] "Pesaran and Timmermann"

$Stat
[1] 5.390263

$p.value
[1] 3.51773e-08

$H0
[1] "Independently Distributed"

$Decision
[1] "Reject  H0"

$DirAcc
[1] 0.6884422


Prognoza zdaje test na 68,8% i jest istotna.

Następnie sprawdzamy to samo dla ARIMA(5, 3)-TGARCH(1, 1) oraz ARIMA(2, 2)-EGARCH(1, 1). I tak test DAC wskazał dla TGARCH dokładność kierunkową = 0.693, a dla EGARCH 0.658. Wynika z tego, że TGARCH jest najlepszy spośród wszystkich trzech modeli. Dostaliśmy dowód, że dodanie do ARMA modelu GARCH może poprawić prognozę samej części ARMA, choć mogłoby się wydawać, że są to części niezależne.

Przed utworzeniem wykresu z prognozą, warto jeszcze spojrzeć na dopasowanie reszt TGARCH do rozkładu SGED:

plot(dopasGarch, which=8)


Wygląda w miarę dobrze.


Możemy robić prognozę: dwa tygodnie do przodu, pokażemy 30 ostatnich obserwacji na wykresie:

prognoza_plus_wykres <- function(stopaZwrotu, dopasGarch, ileDoPrzodu, Ost) {

  # warunkowe odchylenie std w próbie

  ryzyko <- sigma(dopasGarch)

  

  # prognoza poza próbą

  prognozaGarch <- ugarchforecast(dopasGarch, n.ahead = ileDoPrzodu)

  prognozaStopaZwrotu <- fitted(prognozaGarch)

  prognozaRyzyko <- sigma(prognozaGarch)

  

  # zamiana na ts i łączenie z prognozą dla wykresu

  stopaZwrotuWykres <- tail(as.numeric(stopaZwrotu), Ost)

  stopaZwrotuDopasWykres <- tail(as.numeric(stopaZwrotuDopas), Ost)

  ryzykoWykres <- tail(as.numeric(ryzyko), Ost)

  stopaZwrotuWykres <- c(stopaZwrotuWykres, rep(NA, ileDoPrzodu))

  stopaZwrotuDopasWykres <- c(stopaZwrotuDopasWykres, rep(NA, ileDoPrzodu))

  prognozaStopaZwrotuWykres <- c(rep(NA, Ost-1), stopaZwrotuWykres[Ost], 

                                 as.numeric(prognozaStopaZwrotu))

  

  # Wyłuskaj nazwę modelu wariancji

  modelWariancji <- dopasGarch@model$modeldesc$vmodel

  podmodelWariancji <- dopasGarch@model$modeldesc$vsubmodel

  modelWariancji <- ifelse(!is.null(podmodelWariancji), podmodelWariancji, modelWariancji)

  # Wyłuskaj nazwę modelu średniej

  modelSredniej <- paste0("ARMA(", dopasGarch@model$modelinc["ar"], ",", dopasGarch@model$modelinc["ma"], ")")

  # zmienne do wykresu

  ryzykoWykres <- c(ryzykoWykres, rep(NA, ileDoPrzodu))

  prognozaRyzykoWykres <- c(rep(NA, Ost-1), ryzykoWykres[Ost], as.numeric(prognozaRyzyko))

  okres <- index(stopaZwrotu)

  okresPrognoza <- seq.Date(from=max(okres), by="week", length.out=ileDoPrzodu+1)[-1]

  okresWykres <- c(tail(okres, Ost), okresPrognoza)

  # wykres

  zakresX <- c(min(okresWykres), max(okresWykres))

  zakresY <- c(min(na.omit(-ryzykoWykres))*3, max(na.omit(ryzykoWykres))*3)

  plot(x=okresWykres, y=stopaZwrotuWykres, main="stopa zwrotu WIG20", xaxt="n", xlim=zakresX, ylim=zakresY, lwd=2, type="l", xlab="")

  axis(side=1, at=okresWykres, labels=okresWykres, las=2, cex.axis=0.7)

  lines(x=okresWykres, y=stopaZwrotuDopasWykres, col="lightblue", lwd=2)

  lines(x=okresWykres, y=prognozaStopaZwrotuWykres, lwd=2, col="green")

  lines(x=okresWykres, y=ryzykoWykres, lwd=2, col="red")

  lines(x=okresWykres, y=-ryzykoWykres, lwd=2, col="red")

  lines(x=okresWykres, y=prognozaRyzykoWykres, lwd=2, col="brown")

  lines(x=okresWykres, y=-prognozaRyzykoWykres, lwd=2, col="brown")

  abline(h=0, col="grey")

  abline(v=okresWykres, col="grey")

  legend(x="topleft", legend=c("stopa zwrotu", 

                               paste("modelowana stopa zwrotu -",  modelSredniej), 

                               paste("prognoza stopy zwrotu -",  modelSredniej),

                               paste("modelowane ryzyko -",  modelWariancji), 

                               paste("prognoza ryzyka -",  modelWariancji)), 

         bg = "transparent", cex = 0.8, 

         lwd=c(2,2,2,2,2), col=c("black",                                                                                                        "lightblue",

                                 "green",

                                 "red",

                                 "brown"))

  

  legend("bottomleft", legend=paste("korelacja stopa zwrotu / prognoza stopy zwrotu:", korelacja), 

         bty="o", bg="white", box.lwd=1, text.font=2)

}

prognoza_plus_wykres(stopaZwrotu, dopasGarch, ileDoPrzodu = 2, Ost = 30)



Tak więc dostaliśmy prognozę dodatnią na ten tydzień i ujemną na następny.

Pozostaje kwestia stabilności. Przypomnę, że ARMA(5,3)-TGARCH(1,1) jest niestabilny, ale sam ARMA(5, 3) był stabilny. Logiczne więc, że cała niestabilność bierze się z części modelu wariancji. To dobra wiadomość dla prognozowania stopy zwrotu. Z kolei ARMA(2, 2)-EGARCH(1, 1) jest stabilny. Wobec tego możemy użyć tego ostatniego do prognozy wariancji. Dla niego dostałem:


Zauważmy, że prognozowane odchylenia (ryzyko) lepiej się tu dopasowują do faktycznych niż przy zastosowaniu TGARCH. Jednak końcówka i prognoza odchyleń - w zasadzie są identyczne. Natomiast nie sugerowałbym się już prognozą stóp zwrotu, chociaż w tym wypadku kierunek jest ten sam.

W ogólnym przypadku zmienność, a więc i sam GARCH (bez ARMA) można wykorzystać w trejdingu na różne sposoby. Jeżeli występuje efekt Arch-In-Mean, to wzrost ryzyka będzie powiązany z oczekiwaną stopą zwrotu, co pokazałem w tym art. Jeżeli Arch-In-Mean nie występuje, tak jak tutaj, to nadal możemy wykorzystać zmienność ryzyka. W przypadku EGARCH rosnące ryzyko oznacza, że w kolejnych okresach nadal będzie ono duże, a co za tym idzie możemy spodziewać się większych zmian. W takim razie, przykładowo, czekamy na odpowiednio duży spadek, aby w tym momencie wejść na rynek. Ze względu na większą zmienność, rośnie szansa, że nastąpi odbicie. Sprzedawać można, gdy stopa zbliża się do krawędzi prognozy odchylenia. Obecnie ryzyko raczej pozostaje podwyższone. W połączeniu z dodatnią prognozą stopy spodziewałbym się większego impulsu w górę, a za tydzień w dół - oczywiście na ten moment. W przypadku spadającego ryzyka można dłużej utrzymywać stratną pozycję i czekać na zajęcie pozycji przeciwnej - gdy stopa przekroczy odchylenie - w dół - pozycja długa, w górę - pozycja krótka, mówiąc umownie.

poniedziałek, 2 września 2024

Czeka nas kryzys?

Paradoksem jest, że kryzysy gospodarcze, których przyczyną są praktycznie zawsze rządy populistów, są wykorzystywane do zdobycia popularności, a może i władzy przez innych populistów. Przykładowo, po kryzysie 2007-2009 neoliberalizm stał się określeniem negatywnym. Środowiska lewicowe wpajały błędne twierdzenie, że za kryzys odpowiedzialny jest wolny rynek. Wiadomo, że było na odwrót - to rząd USA zastąpił banki w udzielaniu kredytów. Agencja Fannie Mae dostawała gwarancje jej utrzymywania, a w zamian miała za zadanie dosłownie kupować kredyty hipoteczne od banków. Żeby je kupić... emitowała obligacje (tzw. MBS-y, ang. Mortgage Backed Securities), które normalnie sprzedawała na rynku. Po co? Bo wtedy banki nie musiały się przejmować, czy klient będzie spłacał kredyt, czy nie, bo i tak za chwilę sprzedawał ów kredyt - a zatem udzielał go wszystkim jak leci. Wprawdzie Fannie Mae istniała od dawna (co ciekawe powstała jako część New Deal-u, czyli konsekwencja kryzysu 1929-1932), ale w 1999 r. poluzowano kryteria, wg których oceniano kupowane kredyty. W dodatku w 2004 r. wybuchł skandal księgowy, polegający na ukrywaniu przez wiele lat strat przez tę agencję  [1, 2]. A jak dodamy do tego fakt, że w latach 2003-2006 FED zaniżał stopę procentową o prawie 2 pkt proc. (por. dane w Czy FED powinien podnieść stopy?), to otrzymamy gotową receptę na bańkę, która musi pęknąć.

Ale i tak słyszymy od różnej maści komentatorów, że nikt nie przewidywał kryzysu, że to było nieprzewidywalne itp. Nieprzewidywalny może był moment zapaści, ale i to może okazać się nie do końca prawdą.

Funke et al. [3] zbudowali model, który wskazuje, że rządy populistów sukcesywnie pogarszają wzrost gospodarczy, tak że po 15 latach PKB staje się niższy o 10% niż gdyby rządzili nie-populiści. W ich definicji lider grupy jest populistą, jeżeli dzieli społeczeństwo na dwie sztuczne grupy - "lud" oraz "elity" - a następnie twierdzi, że jest jedynym przedstawicielem prawdziwego ludu. Populiści umieszczają rzekomą walkę ludu ("my") przeciwko elitom ("oni") w centrum swojej kampanii politycznej i stylu rządzenia. Mówiąc dokładniej, populiści zazwyczaj przedstawiają "lud" jako cierpiącą, z natury dobrą, cnotliwą, autentyczną, zwyczajną i powszechną większość, a jej wolę ucieleśnia populistyczny przywódca. W przeciwieństwie do tego, "elita" jest z natury skorumpowaną, wyrachowaną, gromadzącą władzę mniejszością, negatywnie definiowaną jako wszyscy ci, którzy nie są "ludem".

Problem z jakim mamy tu do czynienia wymaga rozdzielenia populizmu prawicowego od lewicowego. Populizm lewicowy jest głównie ekonomiczny. Lewicowi populiści atakują finansowe, kapitalistyczne i oligarchiczne elity, które rzekomo plądrują kraj oraz domagają się polityki interwencji państwa. Populizm prawicowy jest głównie kulturowy. Prawicowi populiści atakują obcokrajowców oraz mniejszości etniczne i religijne, które mają zagrażać tożsamości narodowej i kulturze narodowej. Nacjonalizm przekłada się jednak na aspekt ekonomiczny poprzez większy izolacjonizm (protekcjonizm) i mniejsze inwestycje zagraniczne.

Badacze zebrali dane dla wszystkich krajów OECD dla lat 1900-2020: spośród 1482 liderów z ponad 60 krajów. zidentyfikowano 51 populistycznych liderów. Udział populistów gwałtownie wzrósł od 2000 r:


Poniższe dwie grafiki przedstawiają wyniki pierwszego modelu. Pierwsza ogólna dynamika trendu PKB w trakcie rządów populistów w porównaniu ze scenariuszem kontrfaktycznym: 


Druga na skumulowanych zmianach procentowych realnego PKB w podziale na lewicowy i prawicowy populizm:


Po 15 latach rządy populistów przynoszą ponad 10 pktów proc. straty dla gospodarki.

W drugim modelu dodatkowo sprawdzono, jak PKB zachowywał się przed dojściem do władzy populistów. W sumie uzyskano okno +/-15 lat, w którym środek (punkt zero) wyznaczał moment dojścia do władzy. Wyniki z podziałem na lewicowy i prawicowy populizm zostały przedstawiono poniżej:


Panel A porównuje scenariusze trendu PKB: zakreskowana linia oznacza potencjalny trend bez populistów, a linia ciągła faktyczny trend. Panel B pokazuje to samo, ale na zmianach PKB: poziom zero to sytuacja kontrolna, bez populistów,  a wykres liniowy wskazuje lukę utraconych dochodów w procentach.

Wiadomo, że PKB nie obejmuje całego dobrobytu społeczeństwa. Przykładowo mniejsze nierówności dochodowe oznaczają, że PKB (per capita) jest bardziej równomiernie rozłożony między grupami społecznymi, co zwiększa poziom bezpieczeństwa w kraju. Badacze sprawdzili więc jak zachowywałby się wskaźnik Giniego w ich modelu dla populistów i bez nich:

Z definicji populiści odwołują się do nierówności społecznych: prawicowi do kulturowych, lewicowi do dochodowych. Jeśli chodzi o prawicowych, to sytuacja się trochę komplikuje, ponieważ w gruncie rzeczy większa spójność kulturowa jest korzystna dla biedniejszych krajów (zob. Polityka multi-kulti nie dla Polski), więc mogą mieć oni w tym sensie rację. Ale lewicowi, czy może raczej socjalistyczni (patrz PIS), którzy grzmią o "sprawiedliwości społecznej", wcale do niej nie doprowadzają, bo, jak widać na obrazku, wskaźnik nierówności pozostaje na tym samym poziomie i dopiero po 15 latach spada ledwo o 0,5 punktu.

Prawicowy populizm będzie jednak nakładał cła, osłabiał wymianę handlową i stosował większy protekcjonizm. Rzeczywiście poniższe 3 wykresy na to wskazują:

Kolejnym istotnym czynnikiem nieuwzględnionym przez PKB, jest inflacja. Niska i stabilna inflacja jest wartością samą w sobie. Okazuje się, że rządy populistów sprzyjają wyższej i niestabilnej inflacji:


Wśród prawicowych populistów znaleźli się m.in. Mussolini, Hitler, Erdogan, Bolsonaro, Kaczyński i Trump. Wśród lewicowych z kolei m.in. Gandhi, Fico, Chavez i Maduro.

W artykule można przeczytać krótki opis PISu i uzasadnienie dla przyporządkowania jego lidera do prawicowych populistów. Autorzy pominęli jednak niuanse, takie jak populistyczna polityka socjalna kosztem nowych podatków, która także uzasadniałaby częściowo lewicowy populizm. W tym sensie powiedziałbym, że PIS jest partią skrajnie populistyczną. I chyba opozycja nie potrafiłaby sama sobie z nią poradzić. Bardzo wątpię, żeby KO wygrała, gdyby nie nieudolne zarządzanie kryzysem pandemicznym, fatalna polityka NBP oraz niezliczone afery podczas rządów PIS. 

Główną zmianą strategii PO, żeby odzyskać władzę, stało się naśladowanie PISu w populistycznej retoryce. Stąd te wszystkie hasła "nic co dane nie będzie odebrane", słynne już paliwo po 5.19, kredyt 0%, czy też takie oto wpisy z 2022 r.:


Jeżeli zatem PO kontynuuje populizm PISu w warstwie gospodarczej, to można stawiać tezę, że kolejne lata zakończą się dekoniunkturą. Oczywiście tytułowe pytanie jest trochę prowokacyjne, bo nawet nie jestem pewny, czy obecna ekipa spełnia definicję populistów z tej pracy. Wiadomo też, że ogromna liczba czynników wpływa na wzrost gospodarczy. 

Jaki wniosek dla inwestorów? Nie jest wcale pewne, że rządy prawicowe, często utożsamiane z polityką wolności gospodarczej, muszą dawać wyższe dochody. I z drugiej strony, rządy lewicowe, które w ostatnich latach kojarzone są z praworządnością i demokratycznością - choć, jak dowodziłem, średnio biorąc pozytywnie wpływają na stopy zwrotu z akcji (zob. tu i tu) - wcale nie muszą sprzyjać lepszym dochodom. Wygląda więc na to, że np. ETF-ów lepiej szukać dla krajów (a) praworządnych, (b) demokratycznych, (c) z rządami / przywódcami nie-populistycznymi. 


Literatura:

[1] https://pl.wikipedia.org/wiki/Fannie_Mae ;

[2] https://en.wikipedia.org/wiki/Fannie_Mae ;

[3] Funke, M., Schularick, M., & Trebesch, C. (2022). Populist Leaders and the Economy. hal-03881225.

środa, 21 sierpnia 2024

Wyciskanie akcjonariusza, czyli kiedy wycena nie ma sensu

Cała teoria wyceny opiera się na cichym założeniu wolnego rynku. Wikipedia definiuje wolny rynek jako  system gospodarczy, w którym podstawą działalności są dobrowolne umowy zawierane z poszanowaniem prawa własności prywatnej. Oczywiste więc, że gdy ktoś nas wywłaszcza z naszej własności, to nie mamy do czynienia z wolnym rynkiem. 

Ani w podręcznikach, ani w poradnikach na temat wyceny w ogóle nie znajdziemy nic o tym założeniu. Częściowym wyjaśnieniem może być to, że tak naprawdę nie jest potrzebny czysty wolny rynek, aby wyceniać akcje, ponieważ żaden uregulowany prawnie rynek nie jest stricte wolny. Rynek akcji, często utożsamiany z dzikim kapitalizmem, także nie jest całkowicie wolny choćby dlatego, że handel obowiązuje tylko w określone dni o określonych porach. W przypadku wywłaszczenia można by przekonywać, że za wywłaszczenie należy się odszkodowanie równe wartości godziwej. Czyli potrzebny byłby biegły, który określiłby wartość wywłaszczenia, a stąd dochodzimy już do użycia metod wyceny. W ten sposób można starać się deprecjonować znaczenie wolnego rynku dla istoty wyceny. 

Takie wytłumaczenie jest jednak wymówką. W przypadku handlu instrumentami przeciętny inwestor i tak będzie handlował np. między 9 a 16 w dni robocze, niezależnie od tego, czy istnieją ograniczenia godzin handlu. W przypadku wywłaszczenia określenie wartości godziwej przez biegłego wymaga w zasadzie gospodarki wolnokonkurencyjnej, co wynika wprost z definicji wartości godziwej. Widzimy więc, że nie można teoretyzować na temat wyceny, jeśli nie jest spełniona podstawowa przesłanka w postaci wolnego handlu.

Przez to, że w ogóle się o tym nie mówi (w sensie, że milczą na ten temat poradniki i podręczniki), wielu inwestorów pozostaje nieświadomych zagrożenia jakim jest przymusowy wykup akcji, zwany "wyciskaniem akcjonariusza" (ang. squeeze out). A może on spotkać właściwie każdego, jeśli nie będzie rozumiał, co się dzieje wokół spółki i nie zareaguje na czas.

Przykładów jest wiele, np. Synthos, Impel czy ostatnio Kernel i Wojas. Popatrzmy na pierwsze dwie (źródło).

Synthos. Swego czasu popularna spółka trejderów ze względu na dużą płynność, nowoczesną branżę i dobre fundamenty. Powiedzmy, że inwestor kupił akcje na początku lutego 2017 za ok. 6 zł. W tym samym roku otrzymałby dywidendę 50 gr, ale po chwili zostałby przymuszony do sprzedania akcji za 4,93 zł. Inwestor straciłby na tej operacji niemal 10%, gdyby trzymał akcje do końca (4,93 + 0,5 - 6) / 6 = -9,5%). To znaczy akcje zniknęłyby z jego konta bez pytania, a zamiast nich pojawiłyby się pieniądze. Poniższy wykres akcji uwzględnia dywidendę 50 gr:


Impel. Inwestor kupując ją na początku stycznia 2017 r. po ok. 24 zł i trzymając do końca straciłby niemal 50% kapitału (ogłoszenie wykupu pod koniec 2020 po cenie 13,05, w tym czasie nie zapłacono dywidendy). Wykres:


Przykład Impela jest spektakularny, dlatego warto go pokazywać, by przestrzec przed kupowaniem akcji na długi termin niezależnie od fundamentów. 

Widzimy jak na dłoni, że podręczniki czy poradniki do inwestowania powinny nauczać o istnieniu wszystkich pułapek czysto prawnych. W zasadzie to powinna być podstawa, bez której nie ma sensu dalsza analiza przedsiębiorstwa czy jego otoczenia. Co więcej, powinny także pokazywać jak inwestor może minimalizować to ryzyko. 

Przymusowy wykup akcji jest zaprzeczeniem idei, że prawo powinno chronić słabszych. Ktoś wpadł na pomysł, że czasem prawo powinno chronić silniejszych. Akcjonariusz mniejszościowy ma się podporządkować większościowemu i oddać mu akcje po pewnej cenie. Właściwie cała awantura rozbija się o cenę wykupu. Tutaj zaczynają się różne stopnie tego absurdalnego prawa. Najbardziej absurdalny oczywiście polegałby na tym, że mały akcjonariusz ma sprzedać dużemu po dowolnie niskiej cenie jakiej chce duży (ale na szczęście powyżej zera). Mogłoby się wydawać, że w Polsce aż tak źle nie jest, bo cena wykupu nie może być niższa niż średnia rynkowa sprzed 6 miesięcy od "zawiadomienia o zamiarze ogłoszenia wezwania do zapisywania się na sprzedaż" (art. 79 ust. 1–3 ustawy o ofercie publicznej).

Tak na marginesie - piszący to prawo mają wielkie zaufanie do wartości rynkowej jako wyznacznika wartości godziwej. Widać, że prawnicy, nie ekonomiści. Łatwo udowodnić, że jest to błąd. Otóż wartość rynkowa nie spełnia jednego podstawowego warunku wartości godziwej jaką jest równość stron transakcji w sensie poziomu ich poinformowania. 

A jeszcze na pod-marginesie: sama definicja wartości godziwej jest daleko nieprecyzyjna, bo właściwie co to znaczy, że strony są dobrze poinformowane? O czym poinformowane? O wszystkim co do dotyczy wyceny? Czy to znaczy, że są świadome swoich ograniczeń? Czy skoro powiązanie jednej informacji z drugą kreuje nową informację w postaci jakiegoś wniosku czy przypuszczania, to powinni oni też być tego świadomi? Nikt się nad tym nie zastanawia. A to przecież powoduje różnice w subiektywnych prawdopodobieństwach i wycenach. Gdyby wartość rynkowa - nawet średnia z jakiegoś okresu - miała być wyznacznikiem wartości godziwej, to nie miałoby sensu w ogóle tworzenie wycen. Dalej - rekomendacje analityków powinny być zakazane, bo wprowadzałyby w błąd. Ale jest coś jeszcze lepszego - płynność waloru nie miałaby znaczenia do istotności owego wyznacznika.

W sumie by się przydał jeszcze jeden margines - wartość godziwa zakłada także, że strony transakcji są ze sobą niepowiązane. To jak udowodnić, że w ciągu tych 6 miesięcy akcjonariusz większościowy, posiadający z definicji duże zasoby kapitału, nie zmawia się z zaufanymi trejderami, że będzie z nimi handlował, sterując odpowiednio cenami? Największe niebezpieczeństwo oczywiście będzie istnieć, jeśli na danym walorze będzie możliwa krótka sprzedaż. 

Wykup akcji spółek giełdowych jest przedmiotem ustawy o ofercie publicznej. Jej przepisy zmieniają się z czasem, ale warto byśmy ją poznali (w kontekście wykupu akcji - art. 69, 72a, 73, 75, 77d, 79, 79a-b, 79f, 82, 90a, 91). Absurdalne prawo wychodzi już na etapie przekroczenia 50% ogólnej liczby głosów. Art. 73 ust. 1:

W przypadku przekroczenia progu 50% ogólnej liczby głosów w spółce publicznej, akcjonariusz lub podmiot, który pośrednio nabył akcje, jest obowiązany, w terminie trzech miesięcy od przekroczenia tego progu, do ogłoszenia wezwania do zapisywania się na sprzedaż lub zamianę wszystkich pozostałych akcji tej spółki, zwanego dalej „wezwaniem obowiązkowym”.

Czyli żeby ominąć ten przepis, wystarczy, że nie jeden akcjonariusz czy podmiot, ale kilku akcjonariuszy czy podmiotów wykupi akcje, osiągając razem więcej niż 50%. 

I w końcu art. 82 ust. 1:

Akcjonariuszowi spółki publicznej, który samodzielnie lub wspólnie z podmiotami od niego zależnymi lub wobec niego dominującymi oraz podmiotami będącymi stronami porozumienia, o którym mowa w art. 87 podmioty objęte obowiązkami określonymi w przepisach szczególnych ust. 1 pkt 5, osiągnął lub przekroczył 95% ogólnej liczby głosów w tej spółce, przysługuje, w terminie trzech miesięcy od osiągnięcia lub przekroczenia tego progu, prawo żądania od pozostałych akcjonariuszy sprzedaży wszystkich posiadanych przez nich akcji (przymusowy wykup).

Trzeba jednak ustawodawcę pochwalić, bo jeszcze kilka lat wcześniej progiem było 90%. 

Poza tym pewną ochroną jest maksymalna liczba tych głównych akcjonariuszy, których nie może być więcej jak pięciu. Nie jest to określone w ustawie o ofercie publicznej, ale w Kodeksie Spółek Handlowych, który także daje prawo do przymusowego wykupu w przypadku spółek niepublicznych. Art. 418 par. 1:

Walne zgromadzenie może powziąć uchwałę o przymusowym wykupie akcji akcjonariuszy reprezentujących nie więcej niż 5% kapitału zakładowego (akcjonariusze mniejszościowi) przez nie więcej niż pięciu akcjonariuszy, posiadających łącznie nie mniej niż 95% kapitału zakładowego, z których każdy posiada nie mniej niż 5% kapitału zakładowego.

Można starać się na różne sposoby bronić squeeze-outu. Na przykład co zrobić w sytuacji, gdy główny akcjonariusz podjął decyzję o opuszczeniu przez spółkę giełdy? Przecież gdyby 5% akcjonariatu zostało z akcjami, nie mogłoby ich już łatwo sprzedać. Problem polega na tym, że nikt nie pytał tych akcjonariuszy, czy w ogóle chcą je sprzedać. Mogą przecież liczyć na dywidendy lub podział majątku w przypadku likwidacji. Nie jest to więc żaden argument.

Spójrzmy więc, co by się stało, gdyby nie było tego progu. Główny akcjonariusz byłby zmuszony kupować po coraz wyższej cenie, a zatrzymałby się dopiero w momencie, że nie opłacałoby mu się dalej skupować. A kiedy tak się stanie? Możemy logicznie założyć, że ma plan albo zmniejszenia kosztów (wyjście z giełdy także zredukuje wiele obowiązków), albo restrukturyzacji, albo likwidacji spółki. Jeżeli pierwsze lub drugie, to oszacuje o ile te działania podniosą wartość spółki i będzie skupował tak długo, aż wartość rynkowa nie zrówna się z jego zaktualizowaną wyceną. Jeżeli trzecie, to granicą będzie wartość księgowa kapitału własnego po odjęciu kosztów likwidacji (czyli wartość likwidacyjna). Załóżmy teraz, że akurat posiadanie 95% wyznacza te granice. W każdym z tych przypadków 5-cio procentowy akcjonariat uzyskałby dodatkową korzyść. Albo wartość wewnętrzna spółki by wzrosła (pierwsze dwa przypadki), albo dostaliby proporcjonalną część majątku (skoro akcje zostały wykupione, to znaczy, że przed wykupem musiały kosztować poniżej wartości likwidacyjnej). 

Jeden argument obalony, ale jakie są inne? Otóż obrońcy "wyciskania" akcjonariuszy przekonują, że należy chronić akcjonariuszy większościowych przed nadużywaniem praw mniejszości, takich jak (a) nadmierne zaskarżanie uchwał walnego zgromadzenia, jeżeli jest ono wykonywane w celu utrudnienia, a nawet uniemożliwienia dojścia do skutku planowanych przez spółkę ważnych dla niej przedsięwzięć gospodarczych, (b) zbyt częste zwoływanie walnych zgromadzeń czy wykonywanie uprawnień informacyjnych akcjonariuszy [2].

Dlaczego jednak problem jest tylko z 5% mniejszości, a już 15% nie? Dalej, dlaczego obawę przed "nadużywaniem praw" rozwiązuje się za pomocą wywłaszczenia (nie w sensie prawno-formalnym, ale jednak), a nie prostu za pomocą odpowiednich przepisów, które ograniczałyby te "nadużycia"? I w końcu, czy w ogóle bierze się pod uwagę, że akcjonariusz większościowy może zwyczajnie nadużywać tego prawa?

W 2005 r. Trybunał Konstytucyjny uznał, że przymusowy wykup akcji nie jest niezgodny z Konstytucją. Kiedy pierwszy raz się o tym dowiedziałem przypomniałem sobie o dekomunizacji... ale przyjrzyjmy się uzasadnieniu P 25/02.

TK zwraca uwagę, że wywłaszczenie stanowi odjęcie własności jedynie na cele publiczne i stąd nie odnosi się ono do przymusowego wykupu akcji. Jednak wcześniej stwierdza:

Celem spółki akcyjnej jest realizowanie wielkich przedsięwzięć gospodarczych, co wymaga stosunkowo znacznego kapitału zakładowego, zarazem nie tworząc istotnych ograniczeń w zakresie minimalnej wartości nominalnej akcji. Założeniem jest rozproszenie akcjonariuszy, i – drugim założeniem, że rzeczywisty ich wpływ na podejmowane w spółce decyzje będzie ograniczony.

A później:

Czynnikiem określającym rozumienie istoty przymusowego wykupu akcji jest także rozumienie znaczenia pojęcia interesu publicznego w kontekście działalności gospodarczej prowadzonej przez spółki akcyjne. Dotyczy to w szczególności: długoterminowego tworzenia warunków dla sukcesu gospodarczego firmy; tworzenia warunków dla nieskrępowanego inwestowania i rozwoju rynku kapitałowego; ...


Można więc odnieść wrażenie, że TK sam sobie trochę zaprzecza rozdzielając pojęcie wywłaszczenia od "wyciskania". Dlaczego ma to tutaj znaczenie? Bo, jak sam TK stwierdza, "cel publiczny jest warunkiem dopuszczalności wywłaszczenia". Co więcej, wywłaszczenie jest możliwe tylko wówczas, gdy cel publiczny nie może być zrealizowany w inny sposób. Można by więc rzeczywiście bronić wywłaszczenia z akcji, gdyby chodziłoby o ważny cel publiczny. W takiej sytuacji potrzebne byłoby pełne uzasadnienie przez akcjonariusza większościowego potrzeby tego rozwiązania. Wówczas - gdyby akcjonariusz mniejszościowy nie zgodziłby się z ta decyzją i odwołał się do sądu o rozstrzygnięcie - mógłby bronić swoich praw właśnie poprzez udowodnienie, że główny akcjonariat słabo uzasadnił squeeze-out albo po prostu jest to tylko pretekst do opuszczenia rynku czy pozbycia się możliwości najmniejszej jego kontroli.

Jakie jednak jest uzasadnienie TK dla squeeze-outu? Można je podzielić na dwie części.

1) Pierwsza część jest wyjatkowo głupia. Otóż TK stwierdza, że drobny akcjonariusz nie może liczyć na równe traktowanie, bo jest drobny. Skoro nie może uchwałami niczego sam załatwić i musi się podporządkować uchwałom większości, to musi się też liczyć z tym, że uchwałą go "wycisną": 

4.10. Z zasadą rządów większości związany jest problem ochrony mniejszości, a w szczególności kwestia granic prawnych tej ochrony. Istnieją w doktrynie dwa stanowiska co do zakresu obowiązywania w polskim prawie spółek mechanizmów ochrony mniejszościowych akcjonariuszy. Zwolennicy pierwszego z nich przez prawa mniejszości rozumieją wszystkie uprawnienia służące ochronie praw akcjonariusza. Według drugiego stanowiska za prawa mniejszości uważa się tylko takie uprawnienia, których realizacja jest uzależniona od posiadania określonego ułamka kapitału zakładowego, to znaczy wówczas, gdy akcjonariusz lub grupa akcjonariuszy jest w stanie skupić akcje stanowiące więcej niż 10% kapitału zakładowego. Jeżeli przyjąć drugie stanowisko, wówczas także w tym zakresie spełniony jest test proporcjonalności z punktu widzenia ograniczeń uprawnień akcjonariuszy mniejszościowych.

Normatywnym wyrazem „rządów większości nad mniejszością” w spółce akcyjnej jest podejmowanie uchwał przez akcjonariuszy (działających jako walne zgromadzenie) większością głosów, tj. większością bezwzględną (art. 414 k.s.h.) albo kwalifikowaną (np. art. 415 § 1 k.s.h.), a nade wszystko działanie zasady większości przy uszczuplaniu praw akcjonariusza. W spółce akcyjnej zgoda akcjonariusza wymagana jest tylko na uszczuplenie prawa mu osobiście przyznanego (art. 415 § 3 k.s.h.), podczas gdy w spółce z o.o. (czyli spółce kapitałowej o elementach osobowych) zgoda wspólnika jest wymagana w przypadku uszczuplania mu przez zgromadzenie wspólników jakichkolwiek jego praw w spółce. Przyjęcie na gruncie spółek kapitałowych zasady rządów większości odróżnia je od spółek osobowych.

Prymat większości nad mniejszością, jak dowodzą zwolennicy tej zasady, wynika bowiem z charakteru spółki akcyjnej jako przedsięwzięcia kapitałowego, mającego na względzie zasadę zbywalności akcji, i związanego z tym faktu częstych zmian personalnych. Z uwagi na konieczność zapewnienia sprawności działania spółki oraz bezpieczeństwa i pewności obrotu gospodarczego ustawodawca wprowadził do spółki akcyjnej zasadę rządów większości. Zasada rządów większości jest odzwierciedleniem innej reguły rządzącej spółką akcyjną, a mianowicie prymatu kapitału nad osobą.

Ściśle powiązana z zasadą większości jest zasada proporcjonalności praw i wkładu, polegająca na tym, że zakres praw danego akcjonariusza w spółce zależy od liczby akcji, które skupił w swych rękach. Normatywnym wyrazem tej zasady jest art. 411 § 1 zd. 1 k.s.h., zgodnie z którym akcja daje prawo do jednego głosu na walnym zgromadzeniu. Innymi słowy, jeżeli dany akcjonariusz objął więcej akcji i tym samym wniósł większy wkład do spółki, to jest rzeczą naturalną, że posiada przez to większą liczbę głosów w spółce. Akcjonariusz, który wniósł większy kapitał, ponosi też większe ryzyko gospodarcze, jest więc uzasadnione, aby jego interesy były uwzględniane proporcjonalnie do wniesionego kapitału. W spółce akcyjnej zasada proporcjonalności praw i wkładu pełni rolę bariery tamującej nadmierną roszczeniowość akcjonariuszy mniejszościowych, trudno bowiem uznać, aby tak samo traktować osobę, która opłaciła ponad połowę kapitału zakładowego spółki, jak osobę, która opłaciła jedną tysięczną tego kapitału.

4.11. Koncepcja przymusowego wykupu akcji drobnych akcjonariuszy jest zatem zgodna z naturą spółki akcyjnej, opisaną powyżej, która zakłada „rządy większością nad mniejszością”, a także przyjmuje zasadę proporcjonalności praw i wkładów wspólników. Nasuwa się jednak pytanie, czy zasady spółki akcyjnej dostatecznie tłumaczą konieczność tego rodzaju ograniczenia prawa akcjonariuszy, z jakimi mamy do czynienia w art. 418 k.s.h., zakwestionowanym przez Sąd Rejonowy oraz Rzecznika Praw Obywatelskich. Istotna jest tu kwestia, czy należy uznać za słuszną tezę, iż zgodne z Konstytucją jest to, że drobny akcjonariusz musi liczyć się z naturą spółki akcyjnej, a tym samym musi się liczyć również z tym, że większość akcjonariuszy wbrew jego woli, a nawet bez jego zgody może pozbawić go przysługujących mu praw.

Ewidentnie ci sędziowie nie rozumieją czym jest wartość spółki. Skupiają się na najmniej istotnej sprawie, czyli prawie głosu. Drobnego akcjonariusza nie obchodzi przecież prawo głosu! Chodzi o przyszłe zyski (dywidendy), jakie może uzyskiwać jako współwłaściciel.

2) TK zauważa, że jeśli drobny akcjonariusz czuje się pokrzywdzony, zawsze może iść do sądu. Dodaje, że jeżeli przyczyną "wyciśnięcia" istotnie nie były szkodliwe działania drobnego akcjonariatu, to ci drobni powinni wygrać z dużym. A że sprawa będzie się kisić przez miesiące czy lata? Tego już TK nie obchodzi. Parafrazując klasyka, nie mamy pańskich akcji i co nam pan zrobi?

Jak można się łatwo domyślić, squeeze-out nie jest polskim wynalazkiem. De facto był wzorowany na prawie holenderskim, francuskim i belgijskim. W dodatku w wymienionych krajach również prawo to weszło w życie niewiele lat wcześniej (we Francji w 1994 r., w Polsce w 2001). Jednakże już Rzecznik Praw Obywatelskich, zaskarżając art. 418 ksh do TK, zwrócił uwagę, iż w tych krajach wykonywane jest ono pod określonym w ustawach nadzorem sądowym [2]. Wielka Brytania wprowadziła instytucję przymusowego wykupu akcji zdaje się jako pierwsza w 1929 r. Ale i tam prawo bardziej szanuje akcjonariuszy mniejszościowych: przed "wyciśnięciem" podmiot przejmujący musi najpierw ogłosić wezwanie do odsprzedaży mu akcji i co najmniej 90% wezwanych (w sensie udziału w kapitale), którzy nie są powiązani ze wzywającym, musi zgodzić się na jego warunki, tj. na cenę wykupu. Bez tego squeeze out nie dojdzie do skutku. Nie ma znaczenia ile podmiot przejmujący posiada już akcji. Jeżeli nie ma on w ogóle akcji, to 90% będzie oznaczać 90% całego kapitału i jednocześnie 90% liczby akcji. Jeżeli posiada 60% akcji, to 90% z pozostałych 40%, czyli 36% całego akcjonariatu, musi pozytywnie odpowiedzieć na wezwanie. 

Na tle innych krajów to rozwiązanie wydaje się najbardziej sprawiedliwe. Oczywiście w przypadku naprawdę małej liczby akcjonariuszy powstaje ryzyko zmowy między nimi, aby celowo zmusić przejmującego do podwyższenia ceny powyżej wartości wewnętrznej. Powiedzmy, że 10 akcjonariuszy trzyma 5%, a przejmujący ma już 90% akcji. Wzywa do sprzedaży pozostałe 10%, ale zgodzić musi się co najmniej 9%. 4% się zgadza, ale zostaje te 5%, które wspólnie ustala, że nie sprzeda po cenie wezwania. Inne ryzyko polega na tym, że do tych 5% wzywający po prostu nie może dotrzeć. Jednakże takie sytuacje prawo brytyjskie również uwzględniło, gdyż wzywający może wystąpić do sądu w celu uzyskania orzeczenia zezwalającego na squeeze-out bez akceptacji 90% wezwanych [1]. Warto chyba zauważyć, że to sytuacja asymetryczna w porównaniu, gdy to drobny musi bronić się przed wyciskaniem.

Na tle prawa brytyjskiego nasza instytucja przymusowego wykupu to czysty zamordyzm. Okazuje się, że terror praworządności naprawdę istnieje. Nie ma co oczekiwać, że zagraniczni inwestorzy będą długoterminowo inwestować w mniejsze spółki. Wystarczy, że przyjdzie bessa czy nawet jakieś losowe zdarzenia (pandemia, wojna) i na wiele miesięcy cały rynek akcji zanurkuje, pięciu inwestorów zacznie odkupywać, a po paru miesiącach ogłosi przymusowy wykup. Ciekawe, że jakoś polityków nie interesuje ten temat. Widocznie mają ważniejsze sprawy na głowie (np. organizacja igrzysk olimpijskich za 20 lat).

Na razie, jedynie co możemy zrobić, to - tworząc portfel na długi termin - wykonać oprócz analizy fundamentalnej i wyceny, analizę akcjonariatu. Jeśli kupujemy już polskie akcje, lepiej wybierać te z dużym free-floatem. Nie znaczy to, że im bardziej rozproszony kapitał, tym zawsze lepiej dla akcjonariuszy. Gdy kapitał jest maksymalnie rozproszony, menedżerowie nie będą odpowiednio kontrolowani i nie będą przykładać się do efektywnego zarządzania firmą. Najlepiej jeśli zarząd i podmioty z nimi związane nie mają razem więcej niż 50%, a jednocześnie różne fundusze mają trochę w nich udziałów. To zapewnia relatywne bezpieczeństwo przed "wyciśnięciem". 


Literatura:

[1] Radwan, A. Przymusowy wykup akcji drobnych akcjonariuszy w prawie brytyjskim na tle k.s.h.. „Przegląd Prawa Handlowego” nr 1 (124), 2003, s. 41 – 48.

Inne źródła:

czwartek, 1 sierpnia 2024

Prognozy Trading Economics - czy można je traktować poważnie?

Dziś zobaczyłem, że na stronie Trading Economics można za pomocą kliknięcia zobaczyć ich średnio- i długoterminnowe prognozy dla dowolnych indeksów. Pierwsza prognoza dotyczy kolejnego kwartału, a druga kolejnego roku. Oto kilka przykładów.

S&P 500 (USA)

The main stock market index in the United States (US500) increased 772 points or 16.18% since the beginning of 2024, according to trading on a contract for difference (CFD) that tracks this benchmark index from United States. The United States Stock Market Index is expected to trade at 5469.20 points by the end of this quarter, according to Trading Economics global macro models and analysts expectations. Looking forward, we estimate it to trade at 5260.31 in 12 months time.

 

DAX (Niemcy):

The main stock market index in Germany (DE40) increased 1542 points or 9.20% since the beginning of 2024, according to trading on a contract for difference (CFD) that tracks this benchmark index from Germany. The Germany Stock Market Index (DE40) is expected to trade at 18102.86 points by the end of this quarter, according to Trading Economics global macro models and analysts expectations. Looking forward, we estimate it to trade at 17443.04 in 12 months time.

 

Shanghai Composite Index (Chiny)


The main stock market index in China (SHANGHAI) decreased 43 points or 1.43% since the beginning of 2024, according to trading on a contract for difference (CFD) that tracks this benchmark index from China. The China Shanghai Composite Stock Market Index is expected to trade at 2889.28 points by the end of this quarter, according to Trading Economics global macro models and analysts expectations. Looking forward, we estimate it to trade at 2763.78 in 12 months time.


WIG:

The Warsaw Stock Exchange WIG Index is expected to trade at 82174.18 points by the end of this quarter, according to Trading Economics global macro models and analysts expectations. Looking forward, we estimate it to trade at 77771.69 in 12 months time.


Pierwsze pytanie jakie przychodzi do głowy, to jaka jest metodologia tych prognoz. Co znalazłem na ten temat? Praktycznie nic. Na stronie https://docs.tradingeconomics.com/forecasts/markets/ jest krótki opis:

Trading Economics forecasts are built using a proprietary global macro model that takes into account our analysts’ expectations, correlations between countries, and a set of logical relationships between different indicators.


Biorąc pod uwagę ogromną bazę danych tego serwisu, wątpię, żeby w prognozie każdego indeksu uwzględniono oczekiwania analityków. Dalej, wszystkie powyższe prognozy są w zasadzie identyczne. Mowa jest o korelacjach między krajami, ale Chiny dużo słabiej korelują z USA niż np. Polska (ostatnie 32 kwartały, tj. 8 lat, korelacja Pearsona między log-stopami tych krajów to odpowiednio 0,52 i 0,84). Powinniśmy się więc spodziewać innego kształtu ostatnich dwóch krzywych dla Chin. Wygląda raczej na to, że te prognozy są całkowicie automatyczne przynajmniej dla innych krajów niż USA, a więc nie są to żadne ekspertyzy.

Ciekawe też, że wg tych prognoz złoto ma się zachować dokładnie na odwrót:


I to samo srebro:


I miedź:


Ale nawet ropa:


Chociaż korelacja między kwartalnymi zmianami cen złota a S&P500 wynosi ok. 0,25 w ostatnich 8 latach, a więc lekko dodatnia. A te następne jeszcze więcej - srebro 0,55, miedź 0,77, ropa 0,64.

Na koniec węgiel:

Okazuje się on wyjątkiem, bo kwartalnie koreluje z giełdą ujemnie (-0,22). Czyli jedynie w jego przypadku taki kierunek miałby sens. 

Pamiętajmy, że to są prognozy na koniec września 2024 i lipca 2025.

W sumie nie można traktować poważnie prognoz, które powstają nie wiadomo skąd, nie wiadomo jak. Będę jednak je obserwował, żeby zobaczyć ich skuteczność.

czwartek, 25 lipca 2024

Poprawka do wyceny Orlenu: spadnie poniżej 60?

W obliczu mocnej wyprzedaży Orlenu w ostatnich tygodniach zdecydowałem, że należy dokładniej przeanalizować niektóre parametry do mojej wyceny tej spółki. Wycena mieściła się w zakresie od 70 do 75, ale przy obniżaniu stóp nawet do niemal 100 zł.

Kluczowym założeniem było przyjęcie minimalnej oczekiwanej stopy zwrotu na poziomie 9,2% jako sumy stopy wolnej od ryzyka i minimalnej premii za ryzyko. 

Aby ocenić poprawność tego założenia, pomyślmy w ten sposób. Mamy wartość oczekiwaną:

(1) W = p*0 + (1-p)*x

gdzie

W - wartość oczekiwana minimalnej stopy zwrotu

p - prawdopodobieństwo utraty zysku lub straty

x - procentowy zysk (stopa zwrotu)


Wychodzimy od długoterminowej obligacji skarbowej, tzn. p = 0 i x = 7%:

W = 0*0 + (1-0)*7% = 7%

Ile wynosi p dla obligacji korporacyjnej? Aby to ocenić, skorzystam z pracy [1], w której szacowano ryzyko bankructwa wśród przedsiębiorstw przemysłowych sporządzających sprawozdania finansowe w latach 2005-2009. Sporządzono dwie wersje: analiza dla sprawozdań na rok przed bankructwem oraz na dwa lata przed bankructwem. Baza zawierała 133 (7,2%) bankrutów i 1719 (92,8%) przedsiębiorstw zdrowych.

Na pierwszy rzut oka z punktu widzenia samej częstości, prawdopodobieństwo "obiektywne", niewarunkowe upadłości, wyniosło ok. 0,07. Jednakże taki wniosek byłby uprawniony tylko wtedy gdyby to badanie dotyczyło tego jednego roku lub dwóch przed upadłością. Obejmowało ono jednak kilka lat, zatem niektóre bankruty w początkowych latach nie były jeszcze nimi. Dlatego w zależności od wersji badania, całkowita liczba niebankrutów wzrośnie. Liczba bankrutów także wzrośnie ze względu na nakładające się lata przy badaniu wersji dwuletniego wyprzedzenia bankructwa (jeżeli w pierwszym roku wychodził bankrut, to zapewne w następnym roku też wychodził z tego samego bankrut, jeszcze przed faktycznym bankructwem). Inaczej mówiąc czas jest traktowany tu jak przestrzeń, więc każdy  nowy rok (kolejne dwa lata w wersji drugiej) jest traktowany jak dodatkowa baza danych. W sumie baza zawierała 7329 rekordów. w tym 

- 182 bankrutów (2,5%) i 

- 7147 nie-bakrutów (97,5%).

Kierując się tą uproszczoną statystyką, dostalibyśmy prawdopodobieństwo zaledwie 0,025, że spółka nie spłaci zobowiązań wobec obligatariuszy. Niestety w rzeczywistości będzie ono wyższe, dlatego że nie wszystkie dane o upadłych przedsiębiorstwach są dostępne. 

Jak możemy poprawnie oszacować to prawdopodobieństwo? Na początek dajemy szansę 50:50, czyli albo firma przetrwa, albo nie przetrwa z równym prawdopodobieństwem. Z punktu widzenia badania oznacza to, że spośród 7147 nie-bankrutów losujemy 182, uzyskując sumaryczną próbę 364. Dzięki temu dostajemy równy podział bankrutów do niebankrutów, co odzwierciedla pomysł początkowego prawdopodobieństwa a priori 0,5. Następnie stosujemy najlepsze metody oceny zagrożenia bankructwa, jak sieci neuronowe, drzewa klasyfikacyjne, analiza dyskryminacyjna czy logit. Wszystkie one zawierają pewien próg zagrożenia i jeśli go przekroczą, to znaczy, że istnieje zagrożenie. Jeżeli nie przekroczy - nie ma zagrożenia. Ale ten brak zagrożenia jest tylko teoretyczny, bo zdarzają się błędy. I te błędy właśnie nas interesują - to będzie nasze prawdopodobieństwo straty.

Aby zwiększyć wiarygodność badania, powszechną praktyką jest podzielenie próby na zbiór uczący i testowy. Jeżeli zbiór testowy zawiera mniej więcej tyle samo danych co zbiór uczący, to powinniśmy użyć wyników ze zbioru testowego. Liczbę błędów dzielimy przez całkowitą liczbę przedsiębiorstw wybranych do próby, po to aby uzyskać prawdopodobieństwo straty (braku zysku).

Z punktu widzenia inwestora obligacyjnego, który raczej będzie trzymał obligacje co najmniej rok, interesująca jest jedynie ocena błędu predykcji na dwa lata przed upadłością. Najłatwiej użyć gotowy model dyskryminacyjny i logit. Wybrałem ten pierwszy (co do tego drugiego mam pewne wątpliwości czy jego empiryczna postać jest poprawna). Model jest banalny:

Z = 0,0896 + 1,9909*X1  - 1,214*X2

gdzie

X1 = Zdolność spłaty zadłużenia = (Zysk netto + Amortyzacja) / Zobowiązania

X2 = 1 / (Wskaźnik obciążenia zobowiązań krótkoterminowych kosztami operacyjnymi) = Koszty operacyjne / Zobowiązania krótkoterminowe


Dodatnia wartość oznacza brak zagrożenia, ujemna, że firma jest zagrożona. Dla przypomnienia model dotyczy firm przemysłowych, co odpowiada Orlenowi. Interesują nas dane roczne. Na podstawie danych na biznesradar.pl dostajemy w mln zł:

Zysk netto = 14 359

Amortyzacja = 14 731

Koszty operacyjne = 325 027

Zobowiązania krótkoterminowe = 66 496

Po podstawieniu Z = 0,37 > 0, czyli spółkę uznajemy za zdrową.

Warunek konieczny dla inwestora jest spełniony. Można powiedzieć, że prawdopodobieństwo bankructwa jest mniejsze niż 0,5, a teraz chcemy oszacować dokładniejszą wartość. Wobec tego przechodzimy do analizy błędów. Autorzy pokazują następującą tabelę/macierz pomyłek:

Źródło: [1]

W zbiorze testowym 74 przedsiębiorstw znajduje się 7 bankrutów błędnie sklasyfikowanych jako niebankruty. Oznacza to, że prawdopodobieństwo straty wynosi p = 7 / 74 = 0,095

Zauważmy jednak, że w zbiorze uczącym jest dużo więcej danych (172) i w tym zbiorze pomyłek prawdopodobieństwo straty wynosi: 20 / 172 = 0,116. Wg mnie podział powinien być mniej więcej równy, aby obiektywnie ocenić model. Oczywiście rozumiem zamysł, że zbiór uczący powinien być jak największy, aby model mógł się "nauczyć" prawidłowych zależności. I nawet bym się z tym zgodził gdyby nie jeden szkopuł. Mianowicie, na moją logikę, model na zbiorze uczącym powinien wypadać lepiej niż na testującym. No skoro stworzył zależności na podstawie danych, to jak na teście miałby wypadać jeszcze lepiej? Jedynie przez przypadek. Zbiór uczący powinien być więc maksymalizowany, ale pod warunkiem, że testowy nie daje lepszych wyników.

Biorąc powyższe pod uwagę uznam, że p = 0,11. W tym miejscu trzeba zaznaczyć, że sieci neuronowe dają lepsze wyniki niż analiza dyskryminacyjna i zarówno na zbiorze uczącym jak i testowym p wyniosłoby wtedy zaledwie 9 / 172 = 0,052. Oznacza, że można zmniejszyć ryzyko dwukrotnie. Na chwilę to zostawmy.

Wróćmy do naszej analizy wartości oczekiwanej obligacji, tj. wzoru (1). Wstawiamy za p = 0,11. Dla PCC Rokity, która była moim benchmarkiem, przyjąłem x = 9%. Stąd:

W = 0,11*0 + (1-0,11)*9% = 8%

Zatem oczekiwana rentowność paroletniej obligacji korporacyjnej wynosi 8%. Zauważmy, że jest dość mało biorąc pod uwagę, że stopa wolna od ryzyka = 7%. Ale niech będzie.

Mając dwa punkty (7 i 8) chcemy znaleźć zależność między W a p. Mamy dwa punkty 

W1 = 7% dla p = 0

W2 = 8% dla p = 0,11

Powstaje pokusa, aby utworzyć funkcję liniową między r a p:

Jest to błędne założenie, bo przecież dla p = 1 dostalibyśmy pewną wartość (mniej niż 20%), a przecież nikt przy zdrowych zmysłach nie będzie inwestował w coś, co na 100% nie przyniesie zysku czy przyniesie stratę. Oczekiwany zysk powinien dążyć do nieskończoności dla p = 1. Widzimy więc, że prawdziwa zależność jest nieliniowa, mimo iż wartość oczekiwana jako funkcja jest liniowa. Wynika to z tego, że wartość oczekiwana jest funkcją nie tylko p, ale też potencjalnego zysku (x), którego na tym wykresie nie widać, choć wiemy, że dla p = 0,11 wynosi x = 9%. Nie wiemy jednak, ile wyniesie p, jeśli np.  x = 15%. 

Oczywiście dzięki teorii CAPM wiemy, że r jest liniową funkcją ryzyka systematycznego, a ten pośrednio zależy od p. Ale nie chcemy stosować tutaj klasycznej wersji tego modelu, bo nie szukamy prawdziwego kosztu kapitału własnego, tylko abstrakcyjnego (minimalnego), który zakłada, że spółka będzie wypłacać co najwyżej minimalne dywidendy. Stąd nasze podejście jest bardziej teoretyczne. Teoria jednak będzie ważna, jeśli będzie racjonalna.

CAPM jest modelem dość otwartym, w tym sensie, że może być rozszerzony albo zmodyfikowany. Jedną z takich modyfikacji jest zastąpienie miary ryzyka entropią. Powstało wiele prac w tym temacie, np. [2, 3, 4, 5], pierwsza już na początku lat 70 ub. w. Entropia jest tylko funkcją jednej zmiennej - prawdopodobieństwa, więc możemy spróbować przekształcić nasze p w entropię. Wtedy rzeczywiście można będzie uzyskać liniową zależność między oczekiwaną stopą dochodu a ryzykiem. 

Żeby nie było wątpliwości - model, który tu zastosuję nie będzie idealnie poprawny w sensie teoretycznym. W teorii powinno się znaleźć, w uproszczeniu, prawdopodobieństwo zysku (straty) pod warunkiem, że portfel rynkowy osiąga zysk (stratę) - jeżeli korelacja między nimi jest dodatnia. Gdyby była ujemna, to szukane będzie prawdopodobieństwo zysku (straty) pod warunkiem, że portfel rynkowy osiąga stratę (zysk). Zwróćmy uwagę, że ze względu na posługiwanie się dodatnią wartością oczekiwaną, w naszym przypadku mamy zarówno jedno jak i drugie, tj. p odpowiada za straty, a 1-p za zyski, lecz średnia rynkowa pozostaje dodatnia. W modelu analizujemy jedynie ten mniej prawdopodobny scenariusz zagrożenia niewypłacalności, a jest praktycznie niemożliwe, aby cały rynek (ważony kapitalizacjami o najlepszym składzie) stał się niewypłacalny. Kwestię korelacji całkowicie pomijam w tym modelu, natomiast zważmy, że akurat Orlen jest mocno skorelowany z WIGiem.

Entropia jest średnią ważoną swoją własną informacją: jeśli mamy informację p_i, którą zapisujemy w postaci ujemnego logarytmu o podstawie 2:


to entropia będzie wtedy wartością oczekiwaną po wszystkich p_i:

W naszym binarnym modelu H przyjmie postać


W ogólnej wersji podstawa 2 nie jest konieczna (zob. szybkie wyprowadzenie wzoru na entropię), ale w naszym modelu jest istotna. Dla tej podstawy H zachowuje się następująco: 
- dla p = 0, H = 0
- dla p = 0,5, H = 1 = max
- dla p = 1, H = 0

Wykres funkcji H(p):


Porównując z poprzednimi tezami, zauważmy, że nie dostajemy tego, czego pierwotnie oczekiwaliśmy, bo im bliżej 1, tym p spada do zera. Wartość oczekiwana miała dążyć wtedy do nieskończoności, a tu zamiast tego wraca do zysku osiąganego bez ryzyka. O co tu chodzi? Wynika to z ukrytego założenia, że można grać na spadki. W końcu każde p różne od 0,5 oznacza mniejszą niepewność, co się wydarzy. Przy oczywistej stracie, czyli dużym p, należy zająć pozycję krótką, osiągając niewielki, ale dodatni zysk. W sumie p > 0,5 oznacza zwykłą redundancję, więc wystarczy, że ograniczymy p do zakresu od 0 do 0,5.

Tworzymy więc model a'la CAPM oparty na entropii o postaci:

(2) r = Rf + b*H

gdzie
r - oczekiwana stopa zwrotu z aktywa (tu Orlen)
Rf - stopa wolna od ryzyka
H - entropia (zamiast bety)
b - pewna stała (w CAPM średnia rynkowa stopa zwrotu minus stopa wolna od ryzyka)


Zapiszmy jeszcze raz nasze dane podstawione do (1), uwzględniając H:

W1 = 7% dla p = 0 => H = 0

W2 = 8% dla p = 0,11 => H = 0.5

Podstawmy je do (2), bo W musi być równe r:

8 = 7 + b*0.5

b = 2

Dostajemy funkcję:

r = 7 + 2*H

Teraz możemy sprawdzić, ile powinno wynieść H i p dla r = 9,2. Po podstawieniu do formuły dostalibyśmy H = 1,1. Ale przecież maksymalne H wynosi 1! Powstaje błąd. Okazuje się, że wybrana stopa r jest za duża. 

Ten błąd to konsekwencja błędnej postaci równania. Od początku błędem było przyjęcie p = 0,11. Przypominam, że wziąłem je na podstawie błędów analizy dyskryminacyjnej, która po pierwsze była podzielona na zbiór uczący i testowy, a ja posłużyłem się tym uczącym; a po drugie nie była najlepszą metodą szacowania zagrożenia. Lepsze były sieci neuronowe generujące p = 0,052. Nie mogłem od tak po prostu przyjąć tej niższej wartości, bo musiałbym najpierw mieć gotowy model tych sieci i sprawdzić na nim, czy spółka rzeczywiście nie niesie poważnego zagrożenia niewypłacalności. W sumie jednak rzeczywiście prawdopodobieństwo niewypłacalności będzie mniejsze niż 0,1. Zrobię więc poprawkę przyjmując p w dwóch wersjach: na podstawie błędów zbioru testowego analizy dyskryminacyjnej (p = 0,095), a potem na po podstawie sieci neuronowych (p = 0,052).

Wariant 1: dla p = 0,095

Zaczynamy od początku:

W = 0,095*0 + (1-0,095)*9% = 8.15%

W1 = 7% dla p = 0 => H = 0

W2 = 8,15% dla p = 0,095 => H = 0.45

Stąd

8,15 = 7 + b*0,45

b = 2.56

Dostajemy równanie:

r = 7 + 2.56*H

Podstawiamy za r 9,2 i znajdujemy H oraz p:

9,2 = 7 + 2,56*H

Stąd:

H = 0.86 => p = 0,28


Otrzymany wynik wskazywałby, że r = 9,2% uzyskujemy dla p = 0,28. Czyli prawdopodobieństwo niewypłacalności minimalnej dywidendy jest niemal 3 razy większe niż ryzyko niewypłacalności odsetek z obligacji. Możemy więc narysować tę funkcję - oczekiwana stopa zwrotu będzie liniowo zależna od niepewności poniesienia straty:




Wariant 2: dla p = 0,052

W = 0,052*0 + (1-0,052)*9% = 8.53%

W1 = 7% dla p = 0 => H = 0

W2 = 8,53% dla p = 0,052 => H = 0.295

Stąd

8,53 = 7 + b*0,295

b = 5,19

Dostajemy funkcję:

r = 7 + 5,19*H

Podstawiamy za r 9,2 i znajdujemy H oraz p:

9,2 = 7 + 5,19*H

H = 0.42 => p = 0,085

I wykres 


Różnica jest diametralna. Jeśli chcemy wybrać jeden z tych dwu wariantów, musimy sobie odpowiedzieć na pytanie, które prawdopodobieństwo (subiektywne) jest bardziej poprawne: 0,28 czy 0,085. Właściwie, to odpowiedź jest dość jednoznaczna - to pierwsze. W tym drugim przypadku odległość między ryzykiem obligacji komercyjnych a akcjami Orlenu jest bardzo niewielka - ledwo 0,03 (0,28 - 0,095 = 0,185 vs. 0,084 - 0,052 = 0,032), co jest dla mnie nie do zaakceptowania. Jeżeli więc przyjmujemy, że r = 9,2%, to prawdopodobieństwo, że Orlen nie wypłaci minimalnych dywidend wynosi niecałe 0,3.

Problem polega na tym, że naszym celem nie było oszacowanie p, tylko znalezienie odpowiedzi czy r = 9,2% jest prawidłowe. Gdyby pierwszy wariant zachować, to odpowiedź byłaby twierdząca - 28% uznalibyśmy raczej za rozsądny poziom zagrożenia, może nawet w jego górnych granicach. Jeżeli jednak chcemy posłużyć się drugim wariantem, to okaże się, że 9,2% stanowi za niską stopę dyskontową w naszym modelu dyskontowym.   

Co by się stało, gdybyśmy zrównali poziom p z drugiego wariantu do pierwszego? Podstawmy więc w drugim wariancie p = 0,28:

r = 7 + 5,19*H(p = 0,28)
r = 11,44

Zobaczmy, jak zachowa się wycena przy tej stopie dyskontowej:

Scenariusze A (brak zmiany stopy procentowej)





53-56 zł to lekka przesada. Jednak mamy też scenariusze ze spadającymi stopami i wtedy już pojawią się realne poziomy.

Scenariusze B (spadek stopy o 0,5 pkt proc.)






Scenariusze C (stopniowy spadek stopy o 1,5 pkt proc.)






Przyznanie startowej stopie dyskontowej 11,4% może mieć sens tylko jeśli uwzględnimy jej spadek w przyszłości, a więc tylko uznając Scenariusz B i C. Z drugiej strony ciągle pamiętać musimy, że prawdziwy koszt kapitału własnego może być wyższy, bo zawiera cały potencjalny wzrost dywidendy, którego nie znamy. Wzrost dywidendy wynika ze wzrostu zysku, który globalnie byłby tożsamy ze wzrostem nominalnego PKB. Minimalne dywidendy rosną tylko o 3% rocznie, tj. na poziomie inflacji. Faktyczne dywidendy mogą rosnąć o kolejne 2-3%, chociaż warto mieć gdzieś z tyłu głowy słowa polityków obecnie rządzących kwestionujących jakiekolwiek zyski Orlenu. Gdyby dodać jeszcze 2-3 pkty proc., podniosłoby to r do 13,4-14,4%. Jest to sporo dla Orlenu nawet przy założeniu spadającej stopy (procentowej, a więc i dyskontowej) o 1,5 pkt proc. (Scenariusz C), bo dostaniemy ok. 12-13% w modelu rezydualnym.

W tym miejscu tylko napomknę, że obniżenie stopy od 0,5 do 1,5 pkt proc. jest wiarygodne. Średnia referencyjna stopa NBP od roku 2000 do 2023 r. wynosi 5,2%. Z kolei od 2003 do 2023 wynosi ok. 4,3%. Stopa ta nie jest zmienną stacjonarną, więc nie można opierać się na jej średniej, ale może być to punkt wyjścia. 

Nasz problem nie dotyczy zatem stopy procentowej, ale przyjętego prawdopodobieństwa straty: musimy sobie odpowiedzieć na pytanie, jakie jest rzeczywiście wg nas prawdopodobieństwo, że Orlen może nie być w stanie wypłacać - co tu mówić - naprawdę niskich dywidend? Ostatnie wiadomości są dla spółki negatywne, ciąży nad nią ryzyko polityczne, tzn. kolejne obciążenia. Warto też dopowiedzieć, że sprawa jest rozwojowa, bo nagła zmiana zarządu spółki powoduje z jednej strony pewne oczyszczenie, z drugiej  większą niepewność co do kierunku. Rynek powinien otrzymać jasny komunikat od spółki, że jej polityka dywidendowa nie ulegnie zmianie. Wtedy zagrożenie by spadło. Brak takich komunikatów powoduje, że większy kapitał, z funduszami włącznie, będzie się obawiał inwestowania. 

Łącząc powyższe w całość, jestem skłonny przyjąć wysoki poziom p = 0,28, pod warunkiem, że przyjmiemy, że faktyczne dywidendy będą równe minimalnym dywidendom albo że będą rosły niewiele powyżej, np. 0,5 pkt proc. Wtedy nasza stopa dyskontowa na poziomie 11,4% stanie się całkiem rozsądna.

Dodatkowym argumentem niech będą analizy Damodarana z premiami za ryzyko dla każdego kraju (zob. link). Na chwilę obecną premię tę dla Polski wyznaczono na poziomie 5,84%. Aby ją obliczyć dodaje się premię za ryzyko krajowe do premii dla USA. Dla USA premia wynosi 4,6% (ryzyko krajowe USA = 0, bo traktuje się jak benchmark). Premia za ryzyko krajowe Polski wynosi 1,24%, stąd 4,6 + 1,24 = 5,84%. Dodajmy więc obecny WIBOR3M = 5,86% i otrzymamy 11,7%. Czyli blisko tego co nam tu wychodzi.

Ostatecznie, wykres entropicznego SML wyglądałby następująco:


A zależność między oczekiwaną stopą zwrotu a samym prawdopodobieństwem strat / utraty zysku prezentowałaby się tak:


    
Muszę powtórzyć, że ten r = 11,4% i odpowiadające jej p = 0,28 to poziomy na chwilę obecną. To znaczy, wycena która wychodzi w granicach od 56,6 do 67,3 jest na tę chwilę bardziej prawdopodobna niż te wcześniejsze (powyżej 70).



Literatura:
[1] Pociecha J., Pawełek B. , Baryła M., Augustyn S. Statystyczne metody prognozowania bankructwa w zmieniającej się koniunkturze gospodarczej. Wydawnictwo UE w Krakowie, Kraków 2014;
[2] Philippatos, G. Entropy, Market Risk, and the Selection of Efficient Portfolios. Appl. Econ. 1972, 4, 209–220;
[3] Gulko, L. Dart boards and asset prices introducing the entropy pricing theory. Adv. Econom. 1997, 12, 237–276;
[4] Ou, J.S. Theory of portfolio and risk based on incremental entropy. J. Risk Finance 2005, 6, 31–39;
[5] Novais, R.G., Wanke, P., Antunes, J., Tan, Y. Portfolio optimization with a mean-entropy-mutual information model. Entropy 2022, 24, 369.