添加目标
使用 add.objective() 函数向投资组合对象添加目标。每个添加的目标都是一个独立对象,并存储在投资组合规范对象的 objectives 槽位中。这样做使目标模块化,您可以轻松添加、删除或修改目标对象。name 参数必须是有效的 R 函数。PerformanceAnalytics 包中提供了若干可用函数,用户自定义函数也可以作为目标函数。add.objective() 的必需参数包括:要添加目标的 portfolio、目标的 type、目标的 name,以及通过 ... 传递给该目标类型构造函数的具名参数。目标函数的参数需作为具名列表传给 arguments。
基础目标类型:
return:此类目标旨在最大化目标值。risk:此类目标旨在最小化目标值。risk_budget:此类目标旨在最小化风险集中度,或对超过允许的最小或最大风险百分比贡献的部分进行惩罚。
除上述目标类型外,PortfolioAnalytics 还支持二次效用和权重集中度等目标类型。若您对其他约束类型感兴趣,请查阅相应约束构造函数的帮助文档。帮助文档包含对约束类型的说明及示例代码。
本练习是课程的一部分
R 中级投资组合分析
练习说明
- 向之前练习中创建的投资组合规范对象
port_spec添加一个收益目标。 - 向
port_spec添加一个将投资组合标准差最小化的风险目标。 - 向
port_spec添加一个以成分标准差定义风险的风险预算目标。将最小百分比风险设为 5%,最大百分比风险设为 10%。 - 打印
port_spec对象。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Add a return objective to maximize mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk budget objective
port_spec <- add.objective(portfolio = ___, type = ___, name = ___, min_prisk = ___, max_prisk = ___)
# Print the portfolio specification object