我有彼此不同时期的每日收盘价数据。每个数据的持续时间总计为5年,但是NAN值是在一个不同长度(期间)的数据中生成的,如下例所示。 例如:
我使用以下数据通过以下代码在Python中进行投资组合优化:
#return calculations
rets = np.log(data/data.shift(1))
#constraints and bounds
cons = ({'type':'eq','fun':lambda x: np.sum(x)-1})
bnds = tuple((0,1) for x in range(num))
def statistics(weights):
weights = np.array(weights)
pret = np.sum(rets.mean()*weights)*252
pvol = np.sqrt(np.dot(weights.T,np.dot(rets.cov()*252,weights)))
return np.array([pret,pvol,pret/pvol])
def min_func_sharpe(weights):
return -statistics(weights)[2]
opts = sco.minimize(min_func_sharpe,num*[1./num,],method='SLSQP',bounds=bnds,constraints=cons)
opts['x']
#result
array([0.21735331, 0.33533359, 0.06560927, 0.38170383, 0. ])
#expected_return,expected_volarity,shape_ratio
statistics(opts['x'])
在这种情况下,我有几个问题。
Q1
组成投资组合的数据中的NAN值是否会影响收益计算或优化结果?
第二季度
在上述情况下,最后一次库存数据已更改,以便检查可能的投资组合案例的数量。 随着我的进步,我得到了与初始优化结果相同的优化结果,并且我想知道为什么得到这些结果。
第三季度
如何用不同时期的数据在R中进行投资组合优化?