拆解金融危机
在视频中,您已看到包含投资银行投资组合在整个 2005 - 2010 时段上的有效前沿,这一时段覆盖了全球金融危机发生的前、中、后三个阶段。
在这里,您将把这一时段拆分为三个子时期(即 epochs):2005-2006(前,before)、2007-2008(中,during)和 2009-2010(后,after)。对于每个时期,您将计算其有效协方差矩阵,并相互比较。
2005 - 2010 的投资组合 prices 已在您的工作区中,同时还提供了来自 PyPortfolioOpt 的 CovarianceShrinkage 对象。
本练习是课程的一部分
Python 中的定量风险管理
练习说明
- 创建字典
epochs:其键为各子时期,值为包含 'start' 与 'end' 日期的字典。 - 对于
epochs中的每个子时期键,将sub_price设为该子时期对应区间的prices。 - 使用
sub_price和CovarianceShrinkage对象,求出每个子时期的有效协方差矩阵。 - 打印并比较三个子时期得到的有效协方差矩阵。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Create a dictionary of time periods (or 'epochs')
epochs = { 'before' : {'start': '1-1-2005', 'end': '31-12-2006'},
'during' : {____: '1-1-2007', 'end': '31-12-2008'},
'after' : {'start': '1-1-2009', ____: '31-12-2010'}
}
# Compute the efficient covariance for each epoch
e_cov = {}
for x in epochs.keys():
sub_price = prices.loc[epochs[x][____]:____[x]['end']]
e_cov[x] = CovarianceShrinkage(____).ledoit_wolf()
# Display the efficient covariance matrices for all epochs
print("Efficient Covariance Matrices\n", e_cov)