0

我正在阅读 ROI 包的教程,特别是第 4 节:最大化二次效用。目标是找到一个由 4 种资产组成的最优投资组合,该投资组合使预期收益最大化,同时还惩罚增加投资组合风险的目标函数。求解器返回一个完全分配在资产中的投资组合,方差最小,这不是我预期的结果。可能是我以某种方式错误地指定了问题吗?

library(PortfolioAnalytics)
library(foreach)
library(iterators)
library(ROI)
library(ROI.plugin.quadprog)
library(ROI.plugin.glpk)

# Create Initial Portfolio Object
init_portf <- portfolio.spec(assets=funds)

# Create Full investment constraint
fi_constr <- weight_sum_constraint(type="full_investment")

# Create Long only constraint
lo_constr <- box_constraint(type="long_only", assets=init_portf$assets)

# Combine constraints into a list
qu_constr <- list(fi_constr, lo_constr)

# Create a return objective
ret_obj <- return_objective(name="mean")

# Create variance objective specifying a risk_aversion parameter which controls
# how much the variance is penalized
var_obj <- portfolio_risk_objective(name="var", risk_aversion=0.25)

# Combine the objectives into a list
qu_obj <- list(ret_obj, var_obj)

# Run optimization
opt_qu <- optimize.portfolio(R=returns, portfolio=init_portf, 
                             constraints=qu_constr, 
                             objectives=qu_obj,
                             optimize_method="ROI",
                             trace=TRUE)

print(opt_qu)
4

0 回答 0