Kom igångKom igång gratis

Volatilitet och strukturbrott

Att visualisera förändringar i volatilitet hjälper till att identifiera möjliga strukturbrottspunkter i tidsserier. Genom att se när volatiliteten verkar förändras kan man göra ett välgrundat val av brytpunkt, som sedan kan användas för vidare statistisk analys (till exempel Chow-testet).

Du ska undersöka två visualiseringar av volatilitet för investmentbankportföljen från 2008–2009, med två tillgängliga portföljvikter: weights_with_citi och weights_without_citi. Dessa motsvarar likaviktade portföljer med respektive utan Citibank, som (som du såg i kapitel 1) uppvisade den högsta volatiliteten av de fyra tillgångarna under perioden.

Portföljpriserna för 2008–2009 med Citibank finns tillgängliga som prices_with_citi, och utan Citibank som prices_without_citi.

Den här övningen är en del av kursen

Kvantitativ riskhantering i Python

Visa kurs

Övningsinstruktioner

  • Beräkna avkastningsserien för de två portföljerna med hjälp av weights_with_citi och weights_without_citi.
  • Beräkna rullande 30-dagars standardavvikelser för båda portföljerna.
  • Kombinera båda Pandas Series-objekten till ett enda DataFrame-objekt med namnet "vol".
  • Rita innehållet i vol-objektet för att jämföra de två portföljernas volatilitet över tid.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod