開始使用免費開始

拆解金融危機

在影片中,你看過涵蓋整段 2005 - 2010 期間的投資銀行投組效率前緣,這段期間包含了金融海嘯發生的前、中、後期。

在這裡,你會把整段期間拆成三個子期間(epochs):2005-2006(前期)、2007-2008(期間)以及 2009-2010(後期)。對每個期間,你會計算其有效(efficient)的協方差矩陣,並彼此比較。

2005 - 2010 的投組 prices 已經在你的工作區中,CovarianceShrinkage(來自 PyPortfolioOpt)物件也已提供。

本練習屬於課程

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)
編輯並執行程式碼