Măsurarea riscului unui portofoliu

Introducere în analiza portofoliului în Python

Charlotte Werger

Data Scientist

Riscul unui portofoliu

  • Investițiile sunt riscante: activele individuale pot crește sau scădea
  • Randamentul așteptat este o variabilă aleatoare
  • Dispersia randamentelor față de medie este măsurată prin varianță $\sigma^2$, un indicator comun al volatilității
  • $\sigma^2 = \frac{\sum\limits_{i=1}^N (X -\mu)^2}{N}$

Riscul ca act de echilibrare

Introducere în analiza portofoliului în Python

Varianța

$$

  • Varianța unui activ individual diferă: unele au o dispersie mai mare sau mai mică față de medie
  • Varianța portofoliului nu este pur și simplu suma varianțelor ponderate ale activelor componente
  • Deoarece randamentele activelor sunt corelate, calculul devine mai complex

Distribuții cu varianță mare și mică

Introducere în analiza portofoliului în Python

Relația dintre varianță, corelație și riscul portofoliului

$$

  • Corelația dintre activul 1 și activul 2 este notată cu $\rho_{1,2}$ și indică în ce măsură activele evoluează împreună
  • Varianța portofoliului ține cont de varianțele individuale ale activelor ($\sigma_1^2, \sigma_2^2, etc$), de ponderile acestora în portofoliu ($w_1, w_2$), precum și de corelația dintre ele
  • Abaterea standard ($\sigma$) este rădăcina pătrată a varianței ($\sigma^2$); ambele măsoară volatilitatea
Introducere în analiza portofoliului în Python

Calculul varianței portofoliului

$$ Formula pentru varianța portofoliului

  • $\rho_{1,2} \sigma_1 \sigma_2$ se numește covarianța dintre activul 1 și activul 2
  • Covarianța poate fi notată și ca $ \sigma_{1,2} $
  • Aceasta ne permite să scriem:

Formula pentru varianța portofoliului rescrisă

Introducere în analiza portofoliului în Python

Rescrierea varianței portofoliului într-o formă mai scurtă

Formula pentru variația portofoliului

  • Aceasta poate fi rescrisă în notație matriceală, mai ușor de utilizat în cod:

Variația portofoliului în notație matriceală

  • Pe scurt, ceea ce trebuie calculat în Python este:

    Variația portofoliului = Ponderi transpuse x (Matricea de covarianță x Ponderi)

Introducere în analiza portofoliului în Python

Variația portofoliului în Python

price_data.head(2)

ticker        AAPL       FB        GE       GM       WMT
date                    
2018-03-21    171.270    169.39    13.88    37.58    88.18
2018-03-22    168.845    164.89    13.35    36.35    87.14
# Calculate daily returns from prices
daily_returns = df.pct_change()
# Construct a covariance matrix for the daily returns data
cov_matrix_d = daily_returns.cov()
Introducere în analiza portofoliului în Python

Variația portofoliului în Python

# Construct a covariance matrix from the daily_returns
cov_matrix_d = (daily_returns.cov())*250
print (cov_matrix_d)

        AAPL          FB          GE          GM          WMT                    
AAPL    0.053569    0.026822    0.013466    0.018119    0.010798
FB      0.026822    0.062351    0.015298    0.017250    0.008765
GE      0.013466    0.015298    0.045987    0.021315    0.009513
GM      0.018119    0.017250    0.021315    0.058651    0.011894
WMT     0.010798    0.008765    0.009513    0.011894    0.041520
weights = np.array([0.2, 0.2, 0.2, 0.2, 0.2])
Introducere în analiza portofoliului în Python

Variația portofoliului în Python

# Calculate the variance with the formula
port_variance = np.dot(weights.T, np.dot(cov_matrix_a, weights))
print (port_variance)

0.022742232726360567
# Just converting the variance float into a percentage
print(str(np.round(port_variance, 3) * 100) + '%')

2.3%
port_stddev = np.sqrt(np.dot(weights.T, np.dot(cov_matrix_a, weights)))
print(str(np.round(port_stddev, 3) * 100) + '%')
15.1%
Introducere în analiza portofoliului în Python

Să exersăm!

Introducere în analiza portofoliului în Python

Preparing Video For Download...