18
2020
04

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

opt.png

版权声明:本文为期权记的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://www.qiquanji.com/post/156.html

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

评论列表:

1.访客  2020-05-07 00:48:53 回复该评论
非常感谢!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。