hello,我是毛豆。本系列用最精简的代码和案例带你快速入门量化,只讲最干的干货,想要学习量化又不知道该如何上手的小伙伴赶紧看过来!
上一期回顾:三分钟入门量化(一):行情数据获取&绘制k线图
本期内容继续介绍常用的Tushare交易数据接口。毛豆在每周末都会更新这个系列,建议大家收藏起来方便学习。
一、Tushare Pro介绍
在上一期中向大家介绍了Tushare数据库,Tushare是一个免费、开源的python财经数据接口包。由于Tushare数据库已经升级到Tushare Pro版本,想要使用更多的数据接口就需要使用Tushare Pro账号了。
1.账号注册
首先我们去官网注册一个Tushare Pro账号:https://tushare.pro/
点击右上角注册,填写手机号、密码、验证码即可,很快就搞定啦!
2.Tushare积分
Tushare积分是调取数据的权限,注册完成后会有100积分,然后完善个人信息,可以获取到20积分,这样一来我们就有120的基础积分了。有积分后我们就可以调用部分数据接口了,不同的数据接口需要的积分也不同,在官方给出的API文档中有详细的说明。例如获取股票列表,只需要120积分:
而获取个股资金流的接口则需要2000积分:
参与社区维护、贡献代码等方式都可以获取积分,具体参见官方文档:https://tushare.pro/document/1?doc_id=13
3.API调用方式
调取数据前要进行token认证,每个账号注册成功后都会有一个token,点击右上角的个人主页-接口TOKEN即可查看:
拿到token后我们回到jupyter notebook进行认证即可:
import tushare as ts
pro = ts.pro_api('your token')
认证成功后就可以正常调取数据了,比如我们以获取基础的股票列表为例:
#查询当前所有正常上市交易的股票列表
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
data.head()
返回如下:
至此,我们成功通过Tushare Pro提供的API获取到了数据,接下来我们来看一下Tushare Pro提供的其他常用接口吧。
二、常用数据接口
这里毛豆选取了12个最为常用的数据接口,通过这些接口,足够应对90%以上的数据需求!下面为大家逐一介绍。
1.获取股票列表
接口:stock_basic
数据类别:基础数据
使用频率:*****
使用示例:
获取当前全部股票列表:
#查询当前所有正常上市交易的股票列表
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
data.head()
返回结果:同上
这个是最基础、最常用的接口,在此基础上才能进行后续的选股。
2.获取交易日历
接口:trade_cal
数据类别:基础数据
使用频率:*****
使用示例:
获取今年以来的交易日历:
df = pro.trade_cal(exchange='', start_date='20230101', end_date='20230512')
df.head(15)
返回如下:
is_open为1代表开市,is_open为0代表休市,pretrade_date代表上一个交易日日期。
筛选出今年以来的所有交易日:
trade_date_list=df.loc[df['is_open']==1].cal_date.tolist()
print(trade_date_list)
返回如下:
这个接口和获取股票列表接口一样,也属于最基础、最常用的接口。
3.获取备用列表
接口:bak_basic
数据类别:基础数据
使用频率:*****
使用示例:
获取剑桥科技的基本信息:
df = pro.bak_basic(trade_date='20230512', ts_code='603083.SH',fields='trade_date,ts_code,name,industry,area,total_share,float_share,pe,pb,list_date')
返回如下:
如果不传ts_code参数则默认为全部标的:
df = pro.bak_basic(trade_date='20230512',fields='trade_date,ts_code,name,industry,area,total_share,float_share,pe,pb,list_date')
df.head()
返回如下:
股票的基础信息都在这里,非常实用的接口。比如你想要获取某只股的行业、地区、总股本、流通股本、市盈率、市净率、上市日期等等信息,只需要这一个接口就全部搞定!
4.获取日线行情数据
接口:daily
数据类别:行情数据
使用频率:*****
使用示例:
获取剑桥科技今年的行情数据:
df = pro.daily(ts_code='603083.SH', start_date='20230101', end_date='20230512')
df.head()
返回如下:
包括交易日期开盘价、收盘价、最高价、最低价、昨日收盘价、涨跌额、涨跌幅、成交量、成交额。
获取多只股票的行情数据:
df = pro.daily(ts_code='603083.SH,601949.SH', start_date='20230101', end_date='20230512')
df.head()
返回如下:
如果不传ts_code参数则默认为全部标的。
这个接口和原版的get_hist_data接口功能基本一样,也属于必备的数据接口。
5.获取每日指标
接口:daily_basic
数据类别:行情数据
使用频率:*****
使用示例:
获取剑桥科技2023年5月12当天的指标:
df = pro.daily_basic(ts_code='603083.SH', trade_date='20230512', fields='ts_code,trade_date,turnover_rate,turnover_rate_f,volume_ratio,pe,pb,total_mv,circ_mv')
这个接口可以看作是bak_basic的升级版,除了市盈率、市净率、流通市值、总市值等数据外,还返回量比和换手率,不需要自己再单独计算,非常实用!缺点是需要额外的积分。
6.获取个股资金流信息
接口:moneyflow
数据类别:行情数据
使用频率:***
使用示例:
获取剑桥科技今年以来的资金流信息:
df = pro.moneyflow(ts_code='603083.SH', start_date='20230101', end_date='20230512')
获取全部股票2023.5.12当日的资金流信息:
df = pro.moneyflow(trade_date='20230512')
资金流属于个性化的指标,不属于通用指标,主要看自己的策略中是否需要。这个接口也需要额外的积分。
7. 获取每日涨跌停价格
接口:stk_limit
数据类别:行情数据
使用频率:****
使用示例:
获取剑桥科技2023.5.12的涨跌停价格:
df = pro.stk_limit(ts_code='603083.SH',trade_date='20230512')
如果不传ts_code参数则默认为全部标的。
这个接口多用于设定买卖条件时使用,比如打板买入、跌停卖出等。需要额外的积分。
8. 获取财务指标数据
接口:fina_indicator
数据类别:财务数据
使用频率:***
使用示例:
获取剑桥科技今年以来的财务数据:
df = pro.fina_indicator(ts_code='603083.SH', start_date='20230101', end_date='20230512')
返回全部的财务指标数据,非常齐全。需要额外的积分。
9. 获取融资融券交易数据
接口:margin、margin_detail
数据类别:市场参考数据
使用频率:****
使用示例:
获取2023.5.12融资融券交易数据:
df = pro.margin(trade_date='20180802')
返回融资余额、融资买入额、融资偿还额、融券余额、融券余量等。
10.获取每日筹码分布
接口:cyq_chips
数据类别:特色数据
使用频率:***
使用示例:
查看2023.5.12剑桥科技筹码分布数据:
df = pro.cyq_chips(ts_code='603083.SH', trade_date='20230512')
df.head()
返回如下:
price为成本价、percent为百分比。
非常惊喜的接口!自己去统计的筹码分布的话比较麻烦,如果需要写筹码分布相关的策略这个接口非常实用。
11.获取涨跌停数据
接口:limit_list_d
数据类别:特色数据
使用频率:****
使用示例:
查看2023.5.12涨停数据:
df = pro.limit_list_d(trade_date='20230512', limit_type='U')
df.head()
limit_type可选U涨停D跌停Z炸板。
返回如下:
返回收盘价、成交额、换手率、流通市值、总市值、封单额、首次封板时间、最终封板时间、炸板次数、连板数等等,甚至连几天内涨停几次都有统计出来。同样是非常棒的一个接口,做短线的朋友一定不要错过!
12.获取同花顺概念/行业信息
接口:ths_index、ths_member、ths_daily
数据类别:指数数据
使用频率:***
使用示例:
查看同花顺有哪些板块,每个板块各有多少成分股:
df = pro.ths_index()
查看网络直播板块(885788)的成分股:
df = pro.ths_member(ts_code='885788.TI')
查看网络直播板块(885788)在2023.5.12当天的行情数据:
df = pro.ths_daily(ts_code='885788.TI', trade_date='20230512', fields='ts_code,trade_date,open,close,high,low,pct_change')
如果想做行业/概念板块的研究就要用到这几个接口了,清晰简明。与此类似的还有申万行业的相关接口。
除了股票数据外,Tushare Pro还提供期货、期权、外汇、债券等数据,甚至连电影票房数据都有提供,非常全面!这里毛豆就不一一展示了,感兴趣的朋友可以去tushare官网了解更多有意思的数据接口,有任何想要查看的行情数据,也都可以直接在官方的API文档中查询:https://tushare.pro/document/2
以上是今天的全部干货内容,毛豆会在每周末更新这个系列,也会在每个交易日继续和大家分享旋风冲锋量化策略的实盘情况,欢迎大家点赞关注。
回测:旋风冲锋策略说明