gpt4 book ai didi

python - 使用 scipy.minimize 最大化夏普比率

转载 作者:行者123 更新时间:2023-12-03 20:22:29 24 4
gpt4 key购买 nike

我正在尝试使用 scipy.minimize 最大化夏普比率

1

我这样做是为了找到 CAPM 的证券市场线

2

所以我有一个等式:

3

4

可选(如果不允许空头头寸):

5

所以我正在尝试解决这个问题:

def target_func(x, cov_matix, mean_vector, virtual_mean):
f = float(-(x.dot(mean_vector) - virtual_mean) / np.sqrt(x.dot(cov_matix).dot(x.T)))
return f


def optimal_portfolio_with_virtual_mean(profits, virtual_mean, allow_short=False):
x = np.zeros(len(profits))
mean_vector = np.mean(profits, axis=1)
cov_matrix = np.cov(profits)
cons = ({'type': 'eq',
'fun': lambda x: np.sum(x) - 1})
if not allow_short:
bounds = [(0, None,) for i in range(len(x))]
else:
bounds = None
minimize = optimize.minimize(target_func, x, args=(cov_matrix, mean_vector, virtual_mean,), bounds=bounds,
constraints=cons)
return minimize

但我总是得到 Success: False (超出迭代限制)。我试图设置 maxiter = 10000 选项,但没有帮助。

我会很乐意提供任何帮助

附言我使用 python 2.7

最佳答案

我不知道为什么,但是当我更换时它工作得很好

x = np.zeros(len(profits))


x = np.ones(len(profits))

关于python - 使用 scipy.minimize 最大化夏普比率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40091188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com