Risiko eines Portfolios messen

Einführung in die Portfolioanalyse mit Python

Charlotte Werger

Data Scientist

Portfoliorisiko

  • Investieren ist riskant: einzelne Assets steigen oder fallen
  • Erwartete Rendite ist eine Zufallsvariable
  • Die Streuung um den Mittelwert misst die Varianz $\sigma^2$; sie ist ein gängiges Maß für Volatilität
  • $\sigma^2 = \frac{\sum\limits_{i=1}^N (X -\mu)^2}{N}$

Risiko als Balanceakt

Einführung in die Portfolioanalyse mit Python

Varianz

$$

  • Die Varianz eines einzelnen Assets variiert: manche streuen mehr oder weniger um den Mittelwert
  • Die Portfoliovarianz ist nicht einfach die gewichtete Summe der Einzelvarianzen
  • Da Renditen korreliert sind, wird es komplex

Verteilungen mit hoher und niedriger Varianz

Einführung in die Portfolioanalyse mit Python

Wie hängen Varianz und Korrelation mit Portfoliorisiko zusammen?

$$

  • Die Korrelation zwischen Asset 1 und 2 ist $\rho_{1,2}$ und zeigt, wie stark sie sich gemeinsam bewegen
  • Die Portfoliovarianz berücksichtigt die Varianzen der Einzelassets ($\sigma_1^2, \sigma_2^2, …$), die Gewichte im Portfolio ($w_1, w_2$) und ihre Korrelation
  • Die Standardabweichung ($\sigma$) ist die Wurzel der Varianz ($\sigma^2$); beide messen Volatilität
Einführung in die Portfolioanalyse mit Python

Portfoliovarianz berechnen

$$ Formel für die Portfoliovarianz

  • $\rho_{1,2} \sigma_1 \sigma_2$ heißt Kovarianz zwischen Asset 1 und 2
  • Die Kovarianz kann auch als $ \sigma_{1,2} $ geschrieben werden
  • So können wir schreiben:

Umgeschriebene Formel für die Portfoliovarianz

Einführung in die Portfolioanalyse mit Python

Portfoliovarianz kürzer schreiben

Formel für die Portfoliovarianz

  • Das lässt sich in Matrixschreibweise umformen – praktischer für Code:

Portfoliovarianz in Matrixschreibweise

  • In Worten, was wir in Python berechnen:

    Portfoliovarianz = transponierte Gewichte × (Kovarianzmatrix × Gewichte)

Einführung in die Portfolioanalyse mit Python

Portfoliovarianz in 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()
Einführung in die Portfolioanalyse mit Python

Portfoliovarianz in 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])
Einführung in die Portfolioanalyse mit Python

Portfoliovarianz in 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%
Einführung in die Portfolioanalyse mit Python

Lass uns üben!

Einführung in die Portfolioanalyse mit Python

Preparing Video For Download...