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
Hướng dẫn bài tập
- Import lớp
EfficientCVaRtừpypfopt.efficient_frontier. - Tạo thực thể lớp
EfficientCVaRlàecdùngreturns; lưu ý bạn không cầnexpected_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ủaec.
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)