Volatilität und Strukturbrüche
Das Visualisieren von Volatilitätsänderungen hilft, mögliche Strukturbruchpunkte in Zeitreihen zu erkennen. Wenn du feststellst, wann sich die Volatilität zu ändern scheint, kannst du einen fundierten Bruchpunkt wählen, der wiederum für weitere statistische Analysen (z. B. den Chow-Test) genutzt werden kann.
Du untersuchst zwei Visualisierungen der Volatilität für das Investmentbank-Portfolio aus den Jahren 2008–2009, für zwei verfügbare Portfolio-Gewichtungen: weights_with_citi und weights_without_citi. Diese entsprechen jeweils gleichgewichteten Portfolios mit und ohne Citibank, die (wie du in Kapitel 1 gesehen hast) im betrachteten Zeitraum die höchste Volatilität der vier Anlagen aufwies.
Die Portfoliopreise für 2008–2009 mit Citibank stehen als prices_with_citi zur Verfügung und ohne Citibank als prices_without_citi.
Diese Übung ist Teil des Kurses
Quantitative Risk Management in Python
Anleitung zur Übung
- Ermittle die Renditeserien für die beiden Portfolios mit
weights_with_citiundweights_without_citi. - Berechne die Standardabweichungen in einem 30-Tage-Rollfenster für beide Portfolios.
- Fasse beide Pandas-
Seriesin einem einzelnen DataFrame-Objekt "vol" zusammen. - Zeichne den Inhalt des Objekts
vol, um die beiden Portfolio-Volatilitäten im Zeitverlauf zu vergleichen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Find the time series of returns with and without Citibank
ret_with_citi = prices_with_citi.____.dot(weights_with_citi)
ret_without_citi = prices_without_citi.pct_change().____(____)
# Find the average 30-day rolling window volatility as the standard deviation
vol_with_citi = ret_with_citi.____.std().dropna().rename("With Citi")
vol_without_citi = ret_without_citi.rolling(30).____.dropna().rename("Without Citi")
# Combine two volatilities into one Pandas DataFrame
vol = pd.concat([____, ____], axis=1)
# Plot volatilities over time
vol.____().set_ylabel("Losses")
plt.show()