我正在尝试优化 python 中的投资组合。使用pandas
我已从 Yahoo! 拉取收盘价!财务并计算我每项资产的标准差。我还创建了一本字典,其中包含我持有的每种资产的数量。
# create a dataframe housing the above
X = DataFrame({'GOOGLE':GOOG, 'APPLE':AAPL, 'CAT':CAT, 'SPDR GOLD':GOLD,
'OIL':OIL, 'Natural Gas':GAS, 'Dollar Index':USD, 'GoldmanSachs': GS, 'Dominion': DOM})
# define weights of each asset held
weights = {'GOOGLE':.2,
'APPLE':.1,
'CAT':.1,
'SPDR GOLD':.05,
'OIL':.1,
'Natural Gas':.1,
'Dollar Index':.05,
'Dominion':.1,
'GoldmanSachs':.2}
将每种资产的权重乘以它们的收盘价和标准差,并将结果列表相加,我创建了我的目标和约束。
for keys in weights:
buyin.append(X[keys][0]* weights[keys])
STD.append([std[keys] * weights[keys]]) #std is a pandas dataframe of std dev
current.append(X[keys][m-1]* weights[keys])
STD = sum(STD)
profit = sum(current) - sum(buyin)
我想要做的是优化每项资产的权重,以便在最大允许标准偏差的情况下使利润最大化。
有什么建议么?