python 在通过CVXPY进行投资组合优化时,我如何约束投资组合的最大部门权重

mwkjh3gx  于 2023-03-28  发布在  Python
关注(0)|答案(1)|浏览(317)

我有一个投资组合,我需要以这样的方式优化-最大部门权重被限制在30%。也就是说-没有部门可以在投资组合中拥有超过30%的权重。

import numpy as np
import cvxpy as cp

np.random.seed(1)
mu = np.abs(np.random.randn(10, 1))
Sigma = np.random.randn(10, 10)
Sigma = Sigma.T.dot(Sigma)

w = cp.Variable(10)
sector = ['A','A','B','C','B','A','C','A','B','A']

gamma = cp.Parameter(nonneg=True)
ret = mu.T @ w
risk = cp.quad_form(w, Sigma)
prob = cp.Problem(cp.Maximize(ret - gamma * risk), [cp.sum(w) == 1, w >= 0])
fkaflof6

fkaflof61#

我不知道cvxpy的确切语法,但是你可以使用这样的约束
w_s \le 0.3$其中变量$w$是在扇区$s$上索引的扇区权重。您可以将$w$向量的上限定义为1(或100),也可以设置求和约束
$ \sum_s w_s = 1$

相关问题