开始使用免费开始使用

单期优化

用于运行优化的函数有两个:optimize.portfolio()optimize.portfolio.rebalancing()。本练习聚焦于单期优化,下一题将使用 optimize.portfolio.rebalancing() 进行按周期再平衡的优化。optimize.portfolio() 支持单期优化。关键参数包括:R(资产收益率)、portfolio(投资组合规范对象),以及 optimize_method(指定求解该问题所用的优化方法)。在很多情况下,指定 trace = TRUE 会很有用,它可以为优化的每次迭代/尝试保存更多信息。

支持的优化方法包括:

  • DEoptim:差分进化
  • random:随机投资组合
  • GenSA:广义模拟退火
  • pso:粒子群优化
  • ROI:R Optimization Infrastructure,用于线性与二次规划求解器

应根据您要解决的问题类型选择优化方法。例如,可表述为二次规划的问题应使用二次规划求解器;而非凸问题应使用全局求解器,如 DEoptim。

在本练习中,我们将定义一个投资组合优化问题:在满足全部资金投资且仅做多约束下,最大化平均收益并最小化投资组合标准差,同时加入标准差风险预算目标,其中最小风险占比为 5%,最大风险占比为 10%。风险预算目标需要全局求解器,因此我们将使用随机投资组合来求解。随机投资组合集合 rp 已按 500 次排列生成,用于本练习。

本练习是课程的一部分

R 中级投资组合分析

查看课程

练习说明

投资组合规范已创建,名称为 port_spec。工作区中还提供了收益率数据 asset_returns

  • 使用 "random" 作为优化方法,运行一次将 trace 设为 TRUE 的单期优化。将优化结果赋给名为 opt 的变量。
  • 打印优化结果。

交互式实操练习

通过完成这段示例代码来试试这个练习。


# Run a single period optimization using random portfolios as the optimization method
opt <- optimize.portfolio(R = ___, portfolio = ___, optimize_method = ___, rp = rp, trace = TRUE)

# Print the output of the single-period optimization
编辑并运行代码