Я пытаюсь минимизировать дисперсию в портфеле из 100 ценных бумаг.
def portvol(w, x):
return np.dot(w.T, np.dot(x, w))*252
covmat = annreturn.cov()
w0 = np.ones(len(covmat)) * (1 / len(covmat)) #equal weighting initially
bounds = ((0,1),) * len(covmat)
constraints = {'fun': lambda i: np.sum(i)-1.0, 'type': 'eq'}
optweights = minimize(portvol, w0, args = (covmat), method = 'SLSQP', bounds = bounds, constraints =
constraints)
annreturn.cov () - это фрейм данных размером 100x100. Выходные данные - те же .01, даже веса, с которых я начал, и это сообщение об ошибке:
message: 'Inequality constraints incompatible'
nfev: 102
nit: 1
njev: 1
статус: 4 успеха: False