Kom igångKom igång gratis

VaR och riskexponering

Tidigare beräknade du VaR och CVaR under antagandet att förlusterna var normalfördelade. Här beräknar du VaR med en annan vanlig fördelning: Students t-fördelning (eller T) från scipy.stats.

Du beräknar en array med 99% VaR-mått från T-fördelningen (med 30 - 1 = 29 frihetsgrader), med hjälp av 30-dagars rullande fönster från investeringsbankens portföljförluster losses.

Först beräknar du medelvärdet och standardavvikelsen för varje fönster och skapar en lista med rolling_parameters. Dessa används sedan för att beräkna arrayen med 99% VaR-mått.

Slutligen använder du denna array för att visualisera riskexponeringen för en portfölj med ett initialt värde på 100 000 dollar. Kom ihåg att riskexponering är förlustsannolikheten (1 %) multiplicerad med förluststorleken (den förlust som ges av 99% VaR).

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

Kvantitativ riskhantering i Python

Visa kurs

Övningsinstruktioner

  • Importera Students t-fördelning från scipy.stats.
  • Beräkna 30-dagarsfönstrets medelvärdesvektor mu och standardavvikelsevektor sigma från losses, och lägg in dem i rolling_parameters.
  • Beräkna en Numpy-array med 99% VaR-mått VaR_99 med hjälp av t.ppf(), utifrån en lista med T-fördelningar som använder elementen i rolling_parameters.
  • Beräkna och visualisera riskexponeringen kopplad till VaR_99-arrayen.

Interaktiv övning med praktiskt arbete

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

# Import the Student's t-distribution
from scipy.____ import t

# Create rolling window parameter list
mu = losses.rolling(30).____
sigma = losses.rolling(30).____
rolling_parameters = [(29, mu[i], s) for i,s in enumerate(sigma)]

# Compute the 99% VaR array using the rolling window parameters
VaR_99 = np.array( [ t.ppf(____, *params) 
                    for params in ____ ] )

# Plot the minimum risk exposure over the 2005-2010 time period
plt.plot(losses.index, 0.01 * ____ * 100000)
plt.show()
Redigera och kör kod