如何从动态列表设置scipy参数

时间:2019-04-26 17:56:11

标签: python optimization parameters scipy

我想建立一个科学的优化方法,通过改变股票的权重来最小化股票投资组合的方差,但要遵守权重之和等于1的约束。我在思考如何设置优化参数时遇到了麻烦,因为参数(权重)的数量取决于用户输入的库存数量。

我天真的想法是,我可能需要从用户创建的列表中动态创建权重变量,但似乎很多人都存在问题。

这会从未优化的等重投资组合中产生我想要的值。

weightlist = []
for stock in stocksymbols:
    weight = (1/len(stocksymbols))
    weightlist.append(weight)

weightdict = {'Ticker': stocksymbols}
dfweight = pd.DataFrame(weightdict)
dfweight['Weight'] = weightlist

portfolioreturns = (dfbig2["Returns"] * dfweight["Weight"])
print("Portfolio Return: ", sum(portfolioreturns))

correlationmatrix = correlationmatrix.drop(columns='Ticker')

weightlistlist = []
for x in weightlist:
    weightlistlist.append([x])
weightarray = (np.array(weightlistlist).T)
standdevarray = (np.array([standdevlist]).T)

weightedstd = np.dot(weightarray, standdevarray)

portfoliovariance = np.dot((weightarray),(np.dot(correlationmatrix, weightarray.T)))
print("Portfolio variance: ", portfoliovariance)

印刷的投资组合收益和最小方差投资组合的方差

0 个答案:

没有答案