我正在寻找一种方法来选择最小化投资组合差异的权重。选择权重最小化投资组合差异
例如:
我有3个资产;他们的回报给出了如下的数组:
import numpy as np
x = np.array([[0.2,-0.1,0.5,-0.2],[0, -0.9, 0.8, 0.2],[0.4,0.5,-0.3,-.01]])
我体重他们我只要想他们的权重总和增加了1.我在寻找这样的重量,最大限度地减少投资组合的方差。
以下是随机选择的权重的两个例子:
weight_1 = [0.3,0.3,0.4]
weighted_x_1 = [ele_x*ele_w for ele_x,ele_w in zip (x,weight_1)]
var_1 = np.var(sum(weighted_x_1))
weight_2 = [-0.2,0.4,0.8]
weighted_x_2 = [ele_x*ele_w for ele_x,ele_w in zip (x,weight_2)]
var_2 = np.var(sum(weighted_x_2))
输出:
>>> var_1
0.02351675000000001
>>> var_2
0.012071999999999999
第二种方法是更好的。
有没有可以为我做这个的Python(或Python库)方法?如果没有任何建议,我应该用什么方法来完成上述操作。
预先感谢您
请参阅此问题的接受答案:http://stackoverflow.com/questions/4119054/finance-lib-with-portfolio-optimization-method-in-python – 2012-04-12 16:59:35
这是一个线性代数问题。您可以使用线性编程或拉格朗日优化来解决此问题。你的约束(lambda期限)将是1 - 总和(权重)。 – 2012-04-12 17:05:46
如何衡量“投资组合差异”? – 2012-04-12 17:06:57