วิเคราะห์วิกฤตการณ์ทางการเงินแบบแยกช่วงเวลา
ในวิดีโอ คุณได้เห็น efficient frontier ของพอร์ตโฟลิโอธนาคารเพื่อการลงทุนตลอดช่วง 2005 - 2010 ซึ่งครอบคลุมเวลาก่อน ระหว่าง และหลังวิกฤตการณ์ทางการเงินโลก
ในแบบฝึกหัดนี้ จะแบ่งช่วงเวลาดังกล่าวออกเป็นสามช่วงย่อย หรือ epochs ได้แก่ 2005-2006 (before), 2007-2008 (during) และ 2009-2010 (after) จากนั้นคำนวณ efficient covariance matrix สำหรับแต่ละช่วง แล้วนำมาเปรียบเทียบกัน
ข้อมูล prices ของพอร์ตโฟลิโอในช่วงปี 2005 - 2010 รวมถึงออบเจกต์ CovarianceShrinkage จาก PyPortfolioOpt พร้อมใช้งานใน workspace ของคุณแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การบริหารความเสี่ยงเชิงปริมาณด้วย Python
คำแนะนำการฝึกหัด
- สร้างพจนานุกรม
epochsโดยให้ keys เป็นชื่อช่วงย่อย และ values เป็นพจนานุกรมของวันที่ 'start' และ 'end' - สำหรับแต่ละ key ในพจนานุกรม
epochsกำหนดให้sub_priceเป็นช่วงของpricesที่ตรงกับช่วงย่อยนั้น - ใช้
sub_priceและออบเจกต์CovarianceShrinkageเพื่อหา efficient covariance matrix สำหรับแต่ละช่วงย่อย - แสดงผลและเปรียบเทียบ efficient covariance matrix ที่ได้จากทั้งสามช่วงย่อย
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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)