เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การลด CVaR ให้น้อยที่สุด

แบบฝึกหัดนี้จะช่วยให้คุณคุ้นเคยกับเครื่องมือของ PyPortfolioOpt สำหรับการลด CVaR ให้น้อยที่สุด ในฐานะวัตถุประสงค์ด้านการบริหารความเสี่ยง

จะได้โหลดโมดูล pypfopt.efficient_frontier และเรียกใช้คลาส EfficientCVaR จากนั้นสร้าง instance ของคลาสโดยใช้ข้อมูลสินทรัพย์จากธนาคารเพื่อการลงทุนในช่วงปี 2005 - 2010

จากนั้นจะใช้เมธอด min_cvar() ของ instance เพื่อหาน้ำหนักพอร์ตโฟลิโอที่เหมาะสมที่สุดซึ่งช่วยลด CVaR ให้น้อยที่สุด

ผลตอบแทนของสินทรัพย์ในพอร์ตโฟลิโออยู่ในเวกเตอร์ returns และแบบฝึกหัดนี้ยังใช้ dictionary ชื่อ names เพื่อแมปน้ำหนักพอร์ตโฟลิโอกับชื่อธนาคาร

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การบริหารความเสี่ยงเชิงปริมาณด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • นำเข้าคลาส EfficientCVaR จาก pypfopt.efficient_frontier
  • สร้าง instance ของคลาส EfficientCVaR ชื่อ ec โดยใช้ returns โดยสังเกตว่า ไม่จำเป็น ต้องใช้ expected_returns เนื่องจากฟังก์ชันวัตถุประสงค์นี้แตกต่างจากการ optimization แบบ mean-variance
  • ค้นหาและแสดงพอร์ตโฟลิโอที่เหมาะสมที่สุดโดยใช้เมธอด .min_cvar() ของ ec

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Import the EfficientCVaR class
from pypfopt.____ import EfficientCVaR

# Create the efficient frontier for CVaR minimization
ec = ____(None, ____)

# Find the cVaR-minimizing portfolio weights at the default 95% confidence level
optimal_weights = ec.____()

# Map the values in optimal_weights to the bank names
optimal_weights = { names[i] : optimal_weights[i] for i in optimal_weights}

# Display the optimal weights
print(optimal_weights)
แก้ไขและรันโค้ด