LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Ermittle die Renditeserien für die beiden Portfolios mit weights_with_citi und weights_without_citi.
  • Berechne die Standardabweichungen in einem 30-Tage-Rollfenster für beide Portfolios.
  • Fasse beide Pandas-Series in 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()
Code bearbeiten und ausführen