开始使用免费开始使用

拆解金融危机

在视频中,您已看到包含投资银行投资组合在整个 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_priceCovarianceShrinkage 对象,求出每个子时期的有效协方差矩阵。
  • 打印并比较三个子时期得到的有效协方差矩阵。

交互式实操练习

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

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