我无法找出在使用numeric.js中的Quadprog进行此投资组合优化(找到最佳权重)时出了什么问题
我的投资组合约束很简单:权重总和应为1,所有权重(对于3种资产中的每一种)都应介于0和1之间(无卖空,无杠杆)。无法识别约束,权重变得非常高(也为负)。
var constraintsmatrix = [[0,0,0,0], [1,0,1,0], [1,0,0,0]];
var covmatrix = [[0.00020817,0.00016281,0.00009747],[0.00016281,0.00026680,0.00009912],[0.00009747,0.00009912,0.00019958]];
var returnsmatrix = [0.1,0.05,0.1];
var bvec = 1; // [1,0,0,0,0,0,0,1,1,1];
var result = numeric.solveQP(covmatrix, returnsmatrix, constraintsmatrix, bvec);
任何提示表示赞赏。谢谢
最佳答案
我相信您的约束条件未正确指定,并且rhs没有传递。我们需要以下约束(平等至上):
x1+x2+x3 = 1
x1 >= 0
x2 >= 0
x3 >= 0
这对应于
A=[[1,1,0,0],[1,0,1,0],[1,0,0,1]]
b=[1,0,0,0]
这是我得到的:
请注意,此模型的目标是
0.5*x'Dx-d'x
。另请注意,我将5个参数传递给solveQP
。关于javascript - 投资组合优化在JavaScript中使用Quadprog会限制错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35641188/