金融量化数据接口Tushare & 股票基本接口

金融量化数据接口Tushare & 股票基本接口

一. Tushare简介

Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集清洗加工数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。

Tushare Pro版正是在基础版上做了大的改进,数据内容扩大到包含股票、基金、期货、债券、外汇、行业大数据,同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台,为各类金融投资和研究人员提供适用的数据和工具。今天主要介绍一下沪深股票数据接口的使用

使用前提

  • 安装Python
  • 安装pandas
  • lxml也是必须的,正常情况下安装了Anaconda后无须单独安装,如果没有可执行:pip install lxml

建议安装Anaconda,一次安装包括了Python环境和全部依赖包,减少问题出现的几率。 各平台的安装方法请参考:Anaconda安装教程

下载安装

  • 方式1:

    pip install tushare

    如果安装网络超时可尝试国内pip源,如pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple

  • 方式2:访问https://pypi.python.org/pypi/tushare/下载安装 ,执行 python setup.py install

  • 方式3:访问https://github.com/waditu/tushare,将项目下载或者clone到本地,进入到项目的目录下,
    执行: python setup.py install

注册TUSHARE社区用户

1、 访问Tushare社区门户(https://tushare.pro/register),点击“注册”

2、 填入相应的注册信息,输入正确的手机号号码和图片验证码之后,点击“发送验证码”,可以收到验证码,填入后点“注册”按钮。

获取TOKEN凭证

1、登录成功后,点击右上角->个人主页

img

2、 在“用户中心”中点击“接口TOKEN”

img

3、 可以点击右侧复制按钮复制token

img

4、或者点击右侧睁开眼睛来获取token明文,复制并保存

img

注意:token是调取数据的唯一凭证,请妥善保管,如发现别人盗用,可在本页面点击“刷新”操作,之前的token将失效。

调取PRO版数据

下面介绍两种常用的数据调取方式:

  • 通过tushare python包
  • 使用http协议直接获取

前提条件

1、已经注册了tushare社区用户 【注册用户
2、已经获取到tushare token凭证 【获取token

Python SDK

下载SDK

下载并安装最新版tushare SDK 【安装和升级方法

导入tushare

import tushare as ts

这里注意, tushare版本需大于1.2.10

设置token

ts.set_token('your token here')

以上方法只需要在第一次或者token失效后调用,完成调取tushare数据凭证的设置,正常情况下不需要重复设置。也可以忽略此步骤,直接用pro_api(‘your token’)完成初始化

初始化pro接口

pro = ts.pro_api()

如果上一步骤ts.set_token(‘your token’)无效或不想保存token到本地,也可以在初始化接口里直接设置token:

pro = ts.pro_api('your token')

数据调取

以获取交易日历信息为例:

df = pro.trade_cal(exchange='', start_date='20180901', end_date='20181001', fields='exchange,cal_date,is_open,pretrade_date', is_open='0')

或者

df = pro.query('trade_cal', exchange='', start_date='20180901', end_date='20181001', fields='exchange,cal_date,is_open,pretrade_date', is_open='0')

调取结果:

    exchange  cal_date    is_open pretrade_date
0          SSE       20180901        0      20180831
1          SSE       20180902        0      20180831
2          SSE       20180908        0      20180907
3          SSE       20180909        0      20180907
4          SSE       20180915        0      20180914
5          SSE       20180916        0      20180914
6          SSE       20180922        0      20180921
7          SSE       20180923        0      20180921
8          SSE       20180924        0      20180921
9          SSE       20180929        0      20180928
10         SSE       20180930        0      20180928
11         SSE       20181001        0      20180928

二. 股票数据接口使用

1. 基础数据

股票基础列表

接口:stock_basic
描述:获取基础信息数据,包括股票代码、名称、上市日期、退市日期等

pro = ts.pro_api()

#查询当前所有正常上市交易的股票列表

data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')

或者

#查询当前所有正常上市交易的股票列表

data = pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')

数据样例

    ts_code     symbol     name     area industry    list_date
0     000001.SZ  000001  平安银行   深圳       银行  19910403
1     000002.SZ  000002   万科A   深圳     全国地产  19910129
2     000004.SZ  000004  国农科技   深圳     生物制药  19910114
3     000005.SZ  000005  世纪星源   深圳     房产服务  19901210
4     000006.SZ  000006  深振业A   深圳     区域地产  19920427
5     000007.SZ  000007   全新好   深圳     酒店餐饮  19920413
6     000008.SZ  000008  神州高铁   北京     运输设备  19920507
7     000009.SZ  000009  中国宝安   深圳      综合类  19910625
8     000010.SZ  000010  美丽生态   深圳     建筑施工  19951027
9     000011.SZ  000011  深物业A   深圳     区域地产  19920330
10    000012.SZ  000012   南玻A   深圳       玻璃  19920228
11    000014.SZ  000014  沙河股份   深圳     全国地产  19920602
12    000016.SZ  000016  深康佳A   深圳     家用电器  19920327
13    000017.SZ  000017  深中华A   深圳     文教休闲  19920331
14    000018.SZ  000018  神州长城   深圳     装修装饰  19920616
15    000019.SZ  000019  深深宝A   深圳      软饮料  19921012
16    000020.SZ  000020  深华发A   深圳      元器件  19920428
17    000021.SZ  000021   深科技   深圳     电脑设备  19940202
18    000022.SZ  000022  深赤湾A   深圳       港口  19930505
19    000023.SZ  000023  深天地A   深圳     其他建材  19930429
20    000025.SZ  000025   特力A   深圳     汽车服务  19930621
上市公司信息

接口:stock_company
描述:获取上市公司基础信息,单次提取4500条,可以根据交易所分批提取

接口示例

pro = ts.pro_api()

#或者
#pro = ts.pro_api('your token')

df = pro.stock_company(exchange='SZSE', fields='ts_code,chairman,manager,secretary,reg_capital,setup_date,province')

数据示例

                ts_code chairman manager secretary   reg_capital setup_date province  \
0     000001.SZ      谢永林     胡跃飞        周强  1.717041e+06   19871222       广东   
1     000002.SZ       郁亮     祝九胜        朱旭  1.103915e+06   19840530       广东   
2     000003.SZ      马钟鸿     马钟鸿        安汪  3.334336e+04   19880208       广东   
3     000004.SZ      李林琳     李林琳       徐文苏  8.397668e+03   19860505       广东   
4     000005.SZ       丁芃     郑列列       罗晓春  1.058537e+05   19870730       广东   
5     000006.SZ      赵宏伟     朱新宏        杜汛  1.349995e+05   19850525       广东   
6     000007.SZ      智德宇     智德宇       陈伟彬  3.464480e+04   19830311       广东   
7     000008.SZ      王志全      钟岩       王志刚  2.818330e+05   19891011       北京   
8     000009.SZ      陈政立     陈政立       郭山清  2.149345e+05   19830706       广东   
9     000010.SZ       曾嵘     李德友       金小刚  8.198547e+04   19881231       广东   
10    000011.SZ      刘声向     王航军       范维平  5.959791e+04   19830117       广东   
11    000012.SZ       陈琳      王健       杨昕宇  2.863277e+05   19840910       广东   
12    000013.SZ      厉怒江     阮克竖       刘渝敏  3.033550e+04   19920114       广东   
13    000014.SZ       陈勇      温毅        王凡  2.017052e+04   19870727       广东   
14    000015.SZ      宿南南      马骧       蒋孝安  1.598761e+05   19880408       广东   
15    000016.SZ      刘凤喜      周彬       吴勇军  2.407945e+05   19801001       广东  
各交易所交易日历

接口:trade_cal
描述:获取各大交易所交易日历数据,默认提取的是上交所

接口示例

pro = ts.pro_api()


df = pro.trade_cal(exchange='', start_date='20180101', end_date='20181231')

或者

df = pro.query('trade_cal', start_date='20180101', end_date='20181231')

数据样例

    exchange  cal_date  is_open
0           SSE  20180101        0
1           SSE  20180102        1
2           SSE  20180103        1
3           SSE  20180104        1
4           SSE  20180105        1
5           SSE  20180106        0
6           SSE  20180107        0
7           SSE  20180108        1
8           SSE  20180109        1
9           SSE  20180110        1
10          SSE  20180111        1
11          SSE  20180112        1
12          SSE  20180113        0
13          SSE  20180114        0
14          SSE  20180115        1
15          SSE  20180116        1
16          SSE  20180117        1
17          SSE  20180118        1
18          SSE  20180119        1
19          SSE  20180120        0
20          SSE  20180121        0
沪深股通成份股

接口:hs_const
描述:获取沪股通、深股通成分数据

接口使用

pro = ts.pro_api()

#获取沪股通成分
df = pro.hs_const(hs_type='SH') 

#获取深股通成分
df = pro.hs_const(hs_type='SZ')

数据样例

    ts_code     hs_type  in_date out_date is_new
0    603818.SH      SH  20160613     None      1
1    603108.SH      SH  20161212     None      1
2    600507.SH      SH  20141117     None      1
3    601377.SH      SH  20141117     None      1
4    600309.SH      SH  20141117     None      1
5    600298.SH      SH  20141117     None      1
6    600018.SH      SH  20141117     None      1
7    600483.SH      SH  20151214     None      1
8    600068.SH      SH  20141117     None      1
9    600594.SH      SH  20141117     None      1
10   603806.SH      SH  20160613     None      1
11   600867.SH      SH  20141117     None      1
12   601012.SH      SH  20141117     None      1
13   601231.SH      SH  20141117     None      1
14   601888.SH      SH  20151214     None      1
15   601099.SH      SH  20141117     None      1
16   603025.SH      SH  20151214     None      1
IPO新股列表

接口:new_share
描述:获取新股上市列表数据
限量:单次最大2000条,总量不限制

接口示例

pro = ts.pro_api()

df = pro.new_share(start_date='20180901', end_date='20181018')

数据示例

  ts_code       sub_code  name  ipo_date    issue_date   amount  market_amount  \
0   002939.SZ   002939  长城证券  20181017       None  31034.0        27931.0   
1   002940.SZ   002940   昂利康  20181011   20181023   2250.0         2025.0   
2   601162.SH   780162  天风证券  20181009   20181019  51800.0        46620.0   
3   300694.SZ   300694  蠡湖股份  20180927   20181015   5383.0         4845.0   
4   300760.SZ   300760  迈瑞医疗  20180927   20181016  12160.0        10944.0   
5   300749.SZ   300749  顶固集创  20180913   20180925   2850.0         2565.0   
6   002937.SZ   002937  兴瑞科技  20180912   20180926   4600.0         4140.0   
7   601577.SH   780577  长沙银行  20180912   20180926  34216.0        30794.0   
8   603583.SH   732583  捷昌驱动  20180911   20180921   3020.0         2718.0   
9   002936.SZ   002936  郑州银行  20180907   20180919  60000.0        54000.0   
10  300748.SZ   300748  金力永磁  20180906   20180921   4160.0         3744.0   
11  603810.SH   732810  丰山集团  20180906   20180917   2000.0         2000.0   
12  002938.SZ   002938  鹏鼎控股  20180905   20180918  23114.0        20803.0   

    price     pe  limit_amount   funds  ballot  
0    6.31  22.98          9.30  19.582    0.16  
1   23.07  22.99          0.90   5.191    0.03  
2    1.79  22.86         15.50   0.000    0.25  
3    9.89  22.98          2.15   5.324    0.04  
4   48.80  22.99          3.60  59.341    0.08  
5   12.22  22.99          1.10   3.483    0.03  
6    9.94  22.99          1.80   4.572    0.04  
7    7.99   6.97         10.20  27.338    0.17  
8   29.17  22.99          1.20   8.809    0.03  
9    4.59   6.50         18.00  27.540    0.25  
10   5.39  22.98          1.20   2.242    0.05  
11  25.43  20.39          2.00   5.086    0.02  
12  16.07  22.99          6.90  37.145    0.12  

以上问简单的数据查询操作, 更多数据详细操作https://waditu.com/document/2

####如果你觉得不错,赶快点击https://tushare.pro/register注册吧.

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值