拆解金融危機
在影片中,你看過涵蓋整段 2005 - 2010 期間的投資銀行投組效率前緣,這段期間包含了金融海嘯發生的前、中、後期。
在這裡,你會把整段期間拆成三個子期間(epochs):2005-2006(前期)、2007-2008(期間)以及 2009-2010(後期)。對每個期間,你會計算其有效(efficient)的協方差矩陣,並彼此比較。
2005 - 2010 的投組 prices 已經在你的工作區中,CovarianceShrinkage(來自 PyPortfolioOpt)物件也已提供。
本練習屬於課程
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)