开始使用免费开始使用

最小化 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)
编辑并运行代码