开始使用免费开始使用

VaR 与风险敞口

先前,您在亏损服从正态分布的情形下计算过 VaR 和 CVaR。本练习将使用另一种常见的亏损分布 —— scipy.stats 中的 Student's t-distribution(亦称 T 分布)来计算 VaR。

您将基于投资银行投资组合的 losses,在 30 天滚动窗口下,使用 T 分布(自由度为 30 - 1 = 29)计算一组 99% VaR 的数组。

首先,计算每个窗口的均值与标准差,生成 rolling_parameters 列表。然后使用这些参数计算 99% VaR 的数组。

接着,使用该数组绘制初始价值为 $100,000 的投资组合的风险敞口。回顾一下:风险敞口等于亏损概率(这里为 1%)乘以亏损金额(这里由 99% VaR 给出)。

本练习是课程的一部分

Python 中的定量风险管理

查看课程

练习说明

  • scipy.stats 导入 Student 的 t 分布。
  • losses 计算 30 天窗口的均值向量 mu 与标准差向量 sigma,并放入 rolling_parameters
  • 使用 t.ppf(),基于由 rolling_parameters 各元素构成的 T 分布列表,计算 99% VaR 的 Numpy array VaR_99
  • 计算并可视化与 VaR_99 数组相对应的风险敞口。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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()
编辑并运行代码