Ograniczenia wagi w optymalizacji portfela przy użyciu pakietu quadprog w R

Jestem nowy w korzystaniu z R i optymalizacji portfela. Próbuję zoptymalizować portfel z 7 aktywami, tak aby aktywa nr 3 i 4 miały minimalną wagę 0,35 każda i sumę wszystkich 7 aktywów równą 1. Poniżej znajduje się kod, który próbowałem:

library(quadprog)
dmat <- cov(dr) #dr stores the daily return of the 7 assets and is a timeSeries object
dvec <- colMeans(dr)
c1 <- c(0,0,1,0,0,0,0)
c2 <-  c(0,0,0,1,0,0,0)
amat <- t(rbind(matrix(1, ncol = ncol(dmat)), c1, c2)) #used transpose because earlier when I didn't use the transpose I got an error saying amat and dvec are not compatible
bvec <- matrix(c(1,0.35, 0.35), nrow =3)
meq <- 1
sol <- solve.QP(dmat, dvec, amat, bvec, meq)

Oto odpowiedź, którą otrzymuję z powyższego kodu:

$solution
[1] -0.01619018 -2.10640140  0.35000000  0.35000000 -0.82522310  1.27499728  1.97281741

$value
[1] -0.0007364101

$unconstrained.solution
[1]  0.026872891 12.595238193 -0.256430652  0.008918392  0.743618974  2.212816019  3.749097189

$iterations
[1] 4 0

$Lagrangian
[1] 0.0002874682 0.0002846590 0.0003015167

$iact
[1] 1 3 2

Ponieważ rozwiązanie ma wagę dla 2 aktywów przekraczających 1, musiałem popełnić błąd w Amacie lub bvec lub meq. Nie jestem jednak w stanie zrozumieć, co to za błąd.

Czy ktoś mógłby mi wskazać, jak skonstruować te macierze, aby rozwiązać ten problem? Z góry dziękuję za wszelką pomoc.

questionAnswers(1)

yourAnswerToTheQuestion