พล็อต Efficient Frontier
ในที่สุดเราก็สามารถพล็อตผลลัพธ์ของพอร์ตโฟลิโอ MPT ได้แล้ว ซึ่งแสดงให้เห็น "efficient frontier" กราฟนี้คือการพล็อตความผันผวน (volatility) เทียบกับผลตอบแทน (returns) และช่วยให้เห็นภาพความสัมพันธ์ระหว่างความเสี่ยงและผลตอบแทนของพอร์ตโฟลิโอต่างๆ จุดที่อยู่แนวขอบบนซ้ายของกลุ่มจุดข้อมูลคือตัวเลือกที่ดีที่สุด (ผลตอบแทนสูงสุดสำหรับความเสี่ยงที่กำหนด) ซึ่งนั่นคือ efficient frontier
ในการสร้างกราฟนี้ จะใช้วันที่ล่าสุดใน dictionary covariances ที่สร้างขึ้นจากแบบฝึกหัดก่อนหน้า dictionary นี้มีวันที่เป็น keys ดังนั้นจึงใช้ sorted() และ .keys() เพื่อเรียง keys แล้วดึงรายการสุดท้ายด้วย Python indexing ([-1]) จากนั้นใช้ matplotlib เพื่อสร้าง scatter plot ระหว่าง variance กับ returns และดู efficient frontier ของวันที่ล่าสุดในข้อมูล
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการเงินด้วย Python
คำแนะนำการฝึกหัด
- ดึงวันที่ล่าสุดจาก dictionary
covariancesโดยจำไว้ว่าวันที่คือ keys - พล็อต volatility เทียบกับ returns (
portfolio_returns) ของวันที่ล่าสุดในรูปแบบ scatter plot และกำหนดค่าalphaสำหรับความโปร่งใสเป็น0.1
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Get latest date of available data
date = sorted(covariances.____)[____]
# Plot efficient frontier
# warning: this can take at least 10s for the plot to execute...
plt.scatter(x=portfolio_volatility[date], y=____, alpha=____)
plt.xlabel('Volatility')
plt.ylabel('Returns')
plt.show()