在R中,使用quadprog,在函数solve.QP中进行投资组合优化,如何将权重总和的约束设置为等于1,并且每个权重都是非负的(没有卖空)?
答案 0 :(得分:4)
让V
为资产回报的方差矩阵,
mu
他们的预期回报,
和n
资产数量。
以下查找最小化的w
t(w) %*% V %*% w - mu
受限制
sum(w)=1
和w>=0
。
library(quadprog)
A <- cbind( # One constraint per column
matrix( rep(1,n), nr=n ), # The weights sum up to 1
diag(n) # No short-selling
)
b <- c(1, rep(0,n))
r <- solve.QP(V, mu, A, b, meq=1)