CVXOPT投资组合优化

时间:2018-07-19 22:20:22

标签: python python-2.7 optimization portfolio cvxopt

当使用CVXOPT二次编程求解器优化投资组合并最大程度地波动(是最大化而不是最小化)时,我收到以下错误。我玩过优化器,并确定由于“ P = -1 * covars”而导致求解器产生了错误。我试图使优化器通过最小化其负值来最大化波动性。如果我将上面的行替换为“ P = covars”,则错误消失。关于如何最大程度地增加波动率的任何想法?

上下文: bnds是1652 x 1矩阵,具有826只股票的上限和下限 covars是826 x 826协方差矩阵 numAssets是826

目标: 我正在尝试设定目标和约束条件,以使826只股票中的每一个都在下限和上限之间(权重在bnd中连续发现),并且权重总和为1。

from cvxopt import matrix, solvers, printing, blas
q = matrix(0, (numAssets, 1), 'd')
G = matrix(0, (2*numAssets, numAssets), 'd')
for i in range(numAssets):
     G[2*i,i] = -1
     G[2*i+1,i] = 1
h = bnds
A = matrix(1.0, (1, numAssets), 'd')
b = matrix(1.0)
P = -covars
portfolio = solvers.qp(P = P,q = q, G = G ,h = h ,A = A,b = b)['x']

ValueError:等级(A)

0 个答案:

没有答案