首页 > 大数据 > 数据挖掘 > Python时间序列选择波动率预测指数收益算法分析案例
import pandas as pdimport numpy as np#read H5S data#pd.read_excel('SPXOption.xlsx').to_hdf('SPXOption.h5s','data')ImpliedV=ImpliedV1.append(ImpliedV2)del ImpliedV1,ImpliedV2ImpliedV['Expiration']=todatetime(ImpliedV['Expiration'])#ImpliedV=pd.read_excel("D:\USData\SPXOption.xlsx")All_Date=pd.Series(ImpliedV.groupby('Date').groups)SP500=pd.read_excel('D:\USData\SP500.xlsx').iloc[:,0]Call_Data=pd.Series(0.0,index=todatetime(All_Date),name='Call_Data')#Select given dateAll_Options=ImpliedV[ImpliedV['Date']==All_Date[ii]]All_Options.loc[:,'Maturity']=(All_Options['Expiration']-Today).dt.days #Select maturity #Select type & strike price Options_Selected_C=Date_Selected_Options[Date_Selected_Options['Type']=="C"] Options_Selected_C.sort_values(['StrikePrice'],inplace=True) Options_Selected_P=Date_Selected_Options[Date_Selected_Options['Type']=="P"] Options_Selected_P.loc[:,'StrikePrice']=abs(Options_Selected_P['StrikePrice']/SP500.iloc[ii]-0.92) Put_Data[ii]=Options_Selected_P.iloc[0,4]SP500.index=Put_Data.indexSP500=SP500.resample('W-TUE').first()SP500=(SP500-SP500.shift(1))/SP500.shift(1)Final_Data['Skew']=Final_Data['Put_Data']-Final_Data['Call_Data']Final_Data.to_csv('Final_US.csv')
|
|
# -*- coding: utf-8 -*-Final_Data=pd.read_csv(r'D:\USData\Final_US.csv',index_col=0)TestData=deepcopy(Final_Data)Direction=pd.Series(0.0,index=range(0,len(TestData.index)))TestData.dropna(axis=0,inplace=True)for ii in range(0,270): Direction[ii]=-.0048342*TestData.iloc[ii,0]+.1152003*TestData.iloc[ii,2]+.0016688 Total[ii+1]=Total[ii]*(1-TestData.iloc[ii,1])
|
|
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69982319/viewspace-2736264/,如需转载,请注明出处,否则将追究法律责任。