最小化 CVaR
本练习将带您实践以 CVaR 最小化为风险管理目标的 PyPortfolioOpt 工具。
您将加载 pypfopt.efficient_frontier 模块并获取 EfficientCVaR 类,使用 2005—2010 年期间的投行资产创建该类的一个实例。
随后,使用该实例的 min_cvar() 方法,求解使 CVaR 最小的最优投资组合权重。
投资组合资产收益位于向量 returns 中——本练习还使用字典 names 将投资组合权重映射到银行名称。
本练习是课程的一部分
Python 中的定量风险管理
练习说明
- 从
pypfopt.efficient_frontier导入EfficientCVaR类。 - 使用
returns创建EfficientCVaR类实例ec;注意您不需要expected_returns,因为目标函数不同于均值—方差优化。 - 使用
ec的.min_cvar()方法查找并显示最优投资组合。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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)