开始使用免费开始使用

添加目标

使用 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

编辑并运行代码