分享一下我做的50etf期权数据获取的程序~~
pip install tushare
pip install openpyxl
import tushare as ts
ts.set_token('XXXXXXX')#此处复制粘贴自己的token
pro = ts.pro_api()
-----------------------------------------------------------------------------------------
import pandas as pd
from datetime import datetime
def datelist(beginDate, endDate):
# beginDate, endDate是形如‘20160601’的字符串或datetime格式
date_l=[datetime.strftime(x,'%Y%m%d') for x in list(pd.date_range(start=beginDate, end=endDate))]
return date_l
date=datelist('20150209','20180921')
-----------------------------------------------------------------------------------------
df_50etf=pd.DataFrame()#先定义
k=0
for i in date:
df_basic = pro.opt_basic(exchange='SSE', fields='ts_code,name,call_put,exercise_price,list_date,delist_date')
df_basic = df_basic.loc[df_basic['name'].str.contains('50ETF')]
df_basic = df_basic[(df_basic.list_date<=i)&(df_basic.delist_date>i)] # 提取当天市场上交易的期权合约
df_basic = df_basic.drop(['name','list_date'],axis=1)
df_basic['date'] = i
k+=1
if k%100==0:
time.sleep(60)#此处由于平台获取限制,每获取60个需要暂停1min
if df_basic.empty:
continue
else:
df_50etf=df_50etf.append(df_basic)
-----------------------------------------------------------------------------------------
df_basic = pro.opt_basic(exchange='SSE', fields='ts_code,name,call_put,exercise_price,list_date,delist_date')
df_basic = df_basic.loc[df_basic['name'].str.contains('50ETF')]
outputpath='C:/Documents/data_basic.xlsx'#导出到excel文件,自定义路径
df_basic.to_excel(outputpath,index=False,header=True)