R - 群比率约束中的投资组合优化

时间:2016-11-08 16:58:45

标签: r optimization constraints portfolio nonlinear-optimization

假设我们有一个简单的长期问题,有四个资产和几个约束。以下是我通常如何通过一些基本约束来优化投资组合权重,例如权重总和为1,没有卖空且没有杠杆。

# set the covariance matrix:

cov <- cbind(c(0.1486, 0.0778, -0.0240, -0.0154), 
             c(0.0778, 0.1170, 0.0066, 0.0029), 
             c(-0.0240, 0.0066, 0.0444, 0.0193), 
             c(-0.0154, 0.0029, 0.0193, 0.0148)
)

# expected returns:

dvec <- c(0.0308, 0.0269, 0.0145, 0.0130)

# constraints:
# 1) weights to sum to 1
# 2) minimum weight for each asset = 0
# 3) maximum weight for each asset = 1

Amat <- cbind(c(1, 1, 1, 1), diag(1,4,4), diag(-1,4,4))
bvec <- c(1, 0, 0, 0, 0, -1, -1, -1, -1)
meq = 1

# The solution for portfolio weights is as follows:
round(solve.QP(cov, dvec=dvec, Amat=Amat, bvec=bvec, meq=meq)$solution,4)

现在,我想添加一个约束,即第一个资产小于或等于前三个资产的60%。我怎么能将这个约束添加到上面的投资组合?很容易将资产的上限设置为整个投资组合的百分比,但我不知道如何将资产的上限设置为某个资产的百分比

任何想法都会非常感激。

0 个答案:

没有答案