python利用tushare的pro.opt_daily接口获取期权所有合约历史数据信息代码分享(数据集csv下载)
tushare官网注册账号,获取token码
tushare官网:https://tushare.pro/
还可通过这个地址进行注册:https://tushare.pro/register?reg=360880
(如果通过这个地址进行注册的话,我会有一点积分,类似邀请码。所以如果假设不麻烦的话0.0,麻烦通过这个网址注册,谢谢)
运用python进行量化分析的时候需要载入证券数据,tushare为我们提供了证券市场数据接口。
tushare是以新浪财经、腾讯财经、上交所数据、深交所数据为基础提供的Python接口。
完整代码如下:
#导入需要用的包 import tushare as ts import numpy as np import pandas as pd import time import os
token='**********************' #填写你的token,上面链接注册后就有token pro = ts.pro_api(token) df = pro.opt_basic(exchange='SSE')#获取sse(上交所)所有期权合约从2015年到现在 # 展示数据 df.head() # 显示DataFrame的前若干行,默认为5,数据举例如下:
ts_code exchange per_unit opt_code opt_type call_put exercise_type exercise_price s_month maturity_date list_price list_date delist_date last_edate last_ddate quote_unit min_price_chg 0 10000579.SH SSE 10000 OP510050.SH ETF期权 C 欧式 2.15 201604 20160427 0.0412 20160225 20160427 20160427 20160428 人民币元 0.0001 1 10000108.SH SSE 10000 OP510050.SH ETF期权 C 欧式 2.65 201505 20150527 0.1006 20150326 20150527 20150527 20150528 人民币元 0.0001 2 10000111.SH SSE 10000 OP510050.SH ETF期权 P 欧式 2.55 201505 20150527 0.0906 20150326 20150527 20150527 20150528 人民币元 0.0001 3 10001067.SH SSE 10185 OP510050.SH ETF期权 C 欧式 3.24 201712 20171227 0.0059 20171123 20171227 20171227 20171228 人民币元 0.0001 4 10001068.SH SSE 10185 OP510050.SH ETF期权 P 欧式 3.24 201712 20171227 0.233 20171123 20171227 20171227 20171228 人民币元 0.0001 |
df.to_csv('opt.csv',mode='w',encoding='utf-8') #把获取的所有合约信息保存为csv文件
然后本地目录就会多一个opt.csv文件,文件中大概就是几千条的合约代码信息
接下来我们开始根据合约代码信息,根据一条条代码开始下载对应代码的历史信息
# 读入数据文件 data = pd.read_csv('./opt.csv', encoding='utf-8') data.head() #显示一下读取到的信息,根据信息捕捉自己想要的部分 opt_num = data.iloc[1:,1:2] opt_num.head() opt_num_arr = opt_num.values #现在这就是我们想要的信息了,类似这种格式:['10000108.SH'] count = 0 #这个是计数用的,因为tushare的pro.opt_daily接口每分钟只能获取10个合约的数据,需要计数每获取10条休息一分钟 for i in opt_num_arr: if os.path.exists('./opt_dir/{}.csv'.format(str(i)[2:13])): #判断这个合约是否已经下载过了 print('{}.csv已存在'.format(str(i)[2:13])) else: df = pro.opt_daily(ts_code = str(i)[2:13]) df.to_csv('./opt_dir/{}.csv'.format(str(i)[2:13]),mode='w',encoding='utf-8') #下载合约信息保存为csv文件 print('{}.csv下载中'.format(str(i)[2:13])) count += 1 if(count%10==0): time.sleep(70)
运行上面的代码,等代码运行完,大概会有2000多csv文件就保存在本地了,每个文件内保存一个合约的信息
下面分享一下我获取到的合约文件:
链接:https://share.weiyun.com/5PrGsmA 密码:yya8yb
版权声明:本文为期权记的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://www.qiquanji.com/post/156.html
微信扫码关注
更新实时通知