0

我正在运行一个模型,该模型可以识别这三笔交易中的三笔交易,两笔多头和一笔空头,我正在尝试优化实现以下目标的权重组合。我需要做空,但需要组合购买以实现以下目标。

市场中性 - 第一行(在下表中)

多头和空头必须等于 1/-1% - 第二行和第三行

预期回报等于 0.2% - 第四行

美元中性(对于这个例子,我假设每笔交易的总价值是 100,000 美元),即空头的价值等于多头的价值 - 第 5 行

它在我将 MEQ 设置为 4 时有效,但是当我将其更改为 5 以包括美元中性线时它失败了。

非常感谢任何建议。

谢谢

omega <- cov(data.frame(z=rnorm(200), p=rnorm(200), q=rnorm(200)))

N <- 3
maxw <- 1
minw <- -1
dvec <- c(0.1335845, -0.5044753, -.40098906)
dvec <- sort(dvec, decreasing=TRUE)
dmat <- omega
amat <- rbind(1, c(1,1,0), c(0,0,1), 
              c(0.1335845, -0.5044753, -.40098906),c(100000, 100000, 100000), diag(N), -diag(N))
bvec <- c(0,1,-1,.2,0, rep(-1,N), -rep(1, N))
meq <- 5

w_opt <- solve.QP(Dmat=dmat, dvec=dvec, Amat=t(amat), bvec=bvec, meq=meq)$solution```

                                         bvec
 [1,]  1.000000e+00  1.000000e+00  1.000000e+00    0
 [2,]  1.000000e+00  1.000000e+00  0.000000e+00    1
 [3,]  0.000000e+00  0.000000e+00  1.000000e+00   -1
 [4,]  1.335845e-01 -5.044753e-01 -4.009891e-01    0
 [5,]  1.000000e+05  1.000000e+05  1.000000e+05    0
 [6,]  1.000000e+00  0.000000e+00  0.000000e+00   -1
 [7,]  0.000000e+00  1.000000e+00  0.000000e+00   -1
 [8,]  0.000000e+00  0.000000e+00  1.000000e+00   -1
 [9,] -1.000000e+00  0.000000e+00  0.000000e+00   -1
[10,]  0.000000e+00 -1.000000e+00  0.000000e+00   -1
[11,]  0.000000e+00  0.000000e+00 -1.000000e+00   -1

4

0 回答 0