纠结了很长一段时间,也辛苦了很长一段时间,最终还是选择在这个周末发布了tushare的1.0版本。
版本号一直从0点几往上加,直到在0.9.9被终结,其实很想就这么9.9999下去。对自己要求严格的人,可能对自己做的东西也是同样如此。说实话,从tushare发布到现在,虽然有些人觉得用的很爽,但还是没有达到我想要的那个版本。
有人要问了,那个版本是什么?
我觉得有几个方面: 1、数据获取容易 2、数据格式统一 3、数据接口稳定 4、数据质量过硬 5、数据免费开放
tushare一直在朝这几个方面努力,从易用性到标准化做了不少改进,在数据的可靠性和稳定性方面也在努力提升。未来一定会朝着这个理想的状态继续努力,当然,不同于一般的商业公司,tushare的理念是开放、免费,在tushare的生态里“我的就是你的,你的也可以是大家的”。
不扯太远,先来看看1.0有哪些改进。
总体来看,bar支持了主要证券品种(沪深股票、基金、期货、期权、港股、中概股等)的各类k线数据,包括1分钟、5分钟、15分钟、30分钟和60分钟,以及日线、周线、季度和月线数据。而tick接口是以上品种Level1的成交数据。
首先,需要升级tushare到最新版
然后,在调用新的行情接口之前,先要干的一件事情就是声明一个行情连接的变量,然后重复使用它来获取数据。
需要写的代码是:
import tushare as ts
#获取连接备用
cons = ts.get_apis()
如果有timeout的提示,重新执行一次即可。
bar接口
1、股票日线行情
#股票日线行情
df = ts.bar('600000', conn=cons, freq='D', start_date='2016-01-01', end_date='')
df.head(5)
默认情况下,数据只返回高开低收、成交量和成交额
2、带因子的行情
想要获得其他数据,比如价格均线、量比、换手率等数据,需要配置额外的参数。其中 ma=[5, 10, 20, 60] 表示一次性获得5/10/20/60日均线,量比和换手率数据通过factors参数配置,factors=[‘vr’, ‘tor’],vr表示量比,tor表示换手率,此次版本暂且只支持这两种因子,未来可以无限延伸。
#带因子的行情
df = ts.bar('600000', conn=cons, start_date='2016-01-01', end_date='', ma=[5, 10, 20], factors=['vr', 'tor'])
df.head(5)
3、复权数据
bar接口针对沪深的股票行情增加了复权数据功能,通过设置参数
#复权行情, adj=qfq(前复权), hfq(后复权),默认None不复权
df = ts.bar('600000', conn=cons, adj='qfq', start_date='2016-01-01', end_date='')
df.head(5)
4、分钟数据
设置freq参数,分别为1min/5min/15min/30min/60min,D(日)/W(周)/M(月)/Q(季)/Y(年)
#分钟数据, 设置freq参数,分别为1min/5min/15min/30min/60min,D(日)/W(周)/M(月)/Q(季)/Y(年)
df = ts.bar('600000', conn=cons, freq='1min', start_date='2016-01-01', end_date='')
df.head(15)
5、指数数据
#指数日行情, 设置asset='INDEX'
df = ts.bar('000300', conn=cons, asset='INDEX', start_date='2016-01-01', end_date='')
df.head(5)
6、港股数据
#港股数据, 设置asset='X'
df = ts.bar('00981', conn=cons, asset='X', start_date='2016-01-01', end_date='')
df.head(5)
7、期货数据
#期货数据, 设置asset='X'
df = ts.bar('CU1801', conn=cons, asset='X', start_date='2016-01-01', end_date='')
df.head(5)
8、美股数据
这里以阿里巴巴的股票为例,获取最近的行情。
#美股数据, 设置asset='X'
df = ts.bar('BABA', conn=cons, asset='X', start_date='2016-01-01', end_date='')
df.head(5)
tick接口
1、股票tick
#股票tick,type:买卖方向,0-买入 1-卖出 2-集合竞价成交
df = ts.tick('600000', conn=cons, date='2017-10-26')
df.head(20)
数据里没有增加代码一列,如果有需要可以同多df[‘code’] = code实现。
2、期货tick
#期货tick,type:买卖方向,0:开仓 1:多开 -1:空开
df = ts.tick('CU1801', conn=cons, asset='X', date='2017-10-25')
df.head(20)
沪/深港通每日资金流向
#沪/深港通每日资金流向(南向/北向资金)
df = ts.moneyflow_hsgt()
df.sort_values('date', ascending=False)
对新接口demo程序感兴趣的朋友,请在本公公众号发私信 “ts新接口”自动获取完整可运行样例代码。
最后,今天偶然看到下面这张图片,联想起在北京地铁经常碰到请求别人扫描的场景,拿来改造一下换成了自己的,希望有人转发有人关注,谢谢!