我在寻找类似问题的解决方案时发现了以下代码,在这里:r - Portfolio Optimization -solve.QP - Constraints are Inconsistent
Dmat <- matrix(c(356.25808, 12.31581, 261.88302, 12.31581, 27.24840, 18.50515, 261.88302, 18.50515,535.45960), nrow=3, ncol=3) # Covariance Matrix
dvec <- matrix(c(9.33, 3.33, 9.07), nrow=3, ncol=1) #expected returns
A.Equality <- matrix(c(1,1,1), ncol=1)
Amat <- cbind(A.Equality, dvec, diag(3), -diag(3))
bvec <- c(1, 6.6, rep(0, 3), rep(-0.5, 3))
qp <- solve.QP(Dmat, dvec, Amat, bvec, meq=1)
qp$solution
# [1] 0.4365775 0.4500889 0.1133337
请注意,在上面的代码中,我已将目标回报率从 5.2% 更改为 6.6%,因为考虑到限制,5.2% 是不可行的。
您如何更改上述代码以最大化投资组合方差 <= 140 的预期回报。投资组合方差:wgts%*%Cov%*%t(wgts)
所有权重 >=0 和 <=50% 的约束仍然存在。