Bắt đầu ngayBắt đầu miễn phí

Tối thiểu hóa CVaR

Bài tập này giúp bạn thực hành công cụ tối thiểu hóa CVaR của PyPortfolioOpt như một mục tiêu quản lý rủi ro.

Bạn sẽ nạp mô-đun pypfopt.efficient_frontier và lấy lớp EfficientCVaR, rồi tạo một thực thể của lớp này với các tài sản của khối ngân hàng đầu tư trong giai đoạn 2005 - 2010.

Tiếp theo, bạn sẽ dùng phương thức min_cvar() của thực thể để tìm các trọng số danh mục tối ưu giúp tối thiểu hóa CVaR.

Lợi nhuận tài sản danh mục nằm trong vector returns—bài tập này cũng dùng từ điển names để ánh xạ trọng số danh mục sang tên ngân hàng.

Bài tập này là một phần của khóa học

Quản trị Rủi ro Định lượng với Python

Xem khóa học

Hướng dẫn bài tập

  • Import lớp EfficientCVaR từ pypfopt.efficient_frontier.
  • Tạo thực thể lớp EfficientCVaRec dùng returns; lưu ý bạn không cần expected_returns, vì hàm mục tiêu khác với tối ưu hóa trung bình-phương sai.
  • Tìm và hiển thị danh mục tối ưu bằng phương thức .min_cvar() của ec.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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)
Chỉnh sửa và Chạy Mã