我正在努力学习投资组合优化。然而,我无法克服这个错误。有人能告诉我解决这个问题的方法吗?
这是我的代码:
#计算我们投资组合中所有股票的回报
portfolioROC<- na.omit(ROC(portfolioPrices))
head(portfolioROC)
#现在,我们股票投资组合的加权回报
portfolioReturns<- Return.portfolio(portfolioROC)
head(portfolioReturns)
tail(portfolioReturns)
#现在,开始优化投资组合。为了做到这一点,我们现在将开始添加约束和#
library(PortfolioAnalytics)
#初始化我们的投资组合对象
portf<- portfolio.spec(colnames(portfolioReturns))
#现在,通过一些限制
#限制1
portf<- add.constraint(portf, type="weight_sum", min_sum=1,
max_sum=1)
#约束2
#类型";框";正在询问为每只股票分配多少资本
portf<- add.constraint(portf,type="box",min=0.10, max=0.4)
#现在,为投资组合添加目标
portf<-add.objective(portf, type="return", name="mean")
portf<-add.objective(portf,type="risk", name="StdDev")
#现在,我们必须使用求解器来基本上求解这些权重#请注意,可以使用不同的解算器。在这种情况下,我们将使用";ROI";,
library(ROI.plugin.quadprog)
library(ROI.plugin.glpk)
library(ROI)
optPort<- optimize.portfolio(portfolioReturns,
portf,
optimize_method = "ROI")
我在代码的最后一部分遇到了问题。显示此错误:
Error in ROI::L_constraint(L = Amat, dir = dir.vec, rhs = rhs.vec) :
all(c(dim_L[1], n_dir) == n_L_constraints) is not TRUE
检查您是否实际安装了指定的软件包。
install.packages(c("ROI","ROI.plugin.glpk","ROI.plugin.quadprog"))
如果glpk插件的安装不起作用,请按照此处指定的教程进行操作。
还要确保portfolioReturns
对象的尺寸是正确的。