在金融,统计,量子等方面,做均值方差模型是十分必要的
工具/原料
Python
spyders
方法/步骤
1、导入相关包和模块
2、读取数据zf=pd.read_csv('zf.csv',index_col='date')并查看前5项zf,head()
3、对缺失值的删除操作zf=zf.dropna()对数据的时间序列操作zf.index=pd.to_datetime(zf.index)
4、连续收益率zfr=np.l艺皱麾酪og(zf/zf.shift(1))累积收益率分布图(1+zfr).cumprod().plot(),plt.title('ljrate')
5、做大量的随机资金权重相应的收益率与方差值zfset=[争犸禀淫'rk','sy','hb','sd']noa=len(芰垄孕动zfset)weights=np.random.random(noa)weights/=np.sum(weights)port_zfr=[]port_variance=[]forpinrange(10000):weights=np.random.random(noa)weights/=np.sum(weights)port_zfr.append(np.sum(zfr.mean()*252*weights))port_variance.append(np.sqrt(np.dot(weights.T,np.dot(zfr.cov()*252,weights))))port_zfr=np.array(port_zfr)port_variance=np.array(port_variance)risk_free=0.04plt.figure(figsize=(8,4))plt.scatter(port_variance,port_zfr,c=(port_zfr-risk_free)/port_variance,marker='o')plt.grid(True)plt.xlabel('exceptedvolatility')plt.ylabel('expectedreturn')plt.colorbar(label='Sharperatio')