CommencerCommencer gratuitement

VaR et exposition au risque

Vous avez précédemment calculé la VaR et la CVaR lorsque les pertes suivaient une loi Normale. Ici, vous allez déterminer la VaR à l’aide d’une autre loi de pertes courante, la loi de Student (ou T) disponible dans scipy.stats.

Vous allez calculer un tableau de mesures de VaR à 99 % à partir de la distribution T (avec 30 - 1 = 29 degrés de liberté), en utilisant des fenêtres glissantes de 30 jours sur les losses du portefeuille d’une banque d’investissement.

Vous commencerez par trouver la moyenne et l’écart type de chaque fenêtre, afin de créer une liste de rolling_parameters. Vous les utiliserez pour calculer le tableau de mesures de VaR à 99 %.

Vous utiliserez ensuite ce tableau pour tracer l’exposition au risque d’un portefeuille valant initialement 100 000 $. Rappelez-vous que l’exposition au risque correspond à la probabilité de perte (ici 1 %) multipliée par le montant de la perte (donné par la VaR à 99 %).

Cet exercice fait partie du cours

Gestion quantitative des risques en Python

Afficher le cours

Instructions

  • Importez la loi de Student t depuis scipy.stats.
  • Calculez les vecteurs moyenne mu et écart type sigma sur des fenêtres de 30 jours à partir de losses, et placez-les dans rolling_parameters.
  • Calculez un tableau Numpy de mesures de VaR à 99 % VaR_99 en utilisant t.ppf(), à partir d’une liste de lois T en utilisant les éléments de rolling_parameters.
  • Calculez et visualisez l’exposition au risque associée au tableau VaR_99.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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()
Modifier et exécuter le code