Python 量化交易之四 _ 聚宽数据

介绍

之前测试过一些免费 API,比如 tushare 现在只能下载两年半数据,163 有的股票数据无法下载,pandas_reader 速度很慢,并且只能下载 A 股的各股数据,对基金和指数支持不佳。这两天尝试了聚宽平台提供的 API,它提供的功能基本够用,总结如下。

聚宽平台提供自 2005 年至今的股票相关数据(包含各股数据、指数、基金等等),需要申请一个免费试用帐号,使用期为一年,每天可下载最多 100 万条数据(所有 A 股历史数据不到 200 万条)。一天内不能下载所有数据,用两三天时间下载所有,然后每天更新数据肯定够用,而且速度较快。

聚宽数据以 Python 三方库方式提供,一直在更新维护中,最近一次 SDK 升级时间为 2019 年 5 月。

建议读者封装数据获取模块,下载后转换成自定义数据格式,这样数据源变化了,也不影响整体软件框架。

安装

安装方法如下:

1
$ pip install git+https://github.com/JoinQuant/jqdatasdk.git

(需要 python3.6 以上支持)

用法

1. 登录

1
2
import jqdatasdk
jqdatasdk.auth("用户名","密码")

从网站 https://www.joinquant.com/ 注册。

2. 获取 K 线数据

1
get_price(security="000001.XSHE", frequency='daily')

用 security 股票或者指数的代码,frequency 指定频率,默认为日 K 线,还可以指定开始结束时间。

3. 获取股票或基金列表

1
get_all_securities(types=[‘stock’])

用 types 指定需要获取的类型,stock 为获取股票列表,fund 为基金列表,index 指数列表,futures 期货列表……

4. 获取指数成份股

1
jqdatasdk.get_index_stocks('000300.XSHG')

上例为获取沪深 300 成份股的股票列表。

5. 获取股票所在的行业

1
jqdatasdk.get_industry("600519.XSHG",date="2018-06-01")

行业包括申万三级行业分类,聚宽二级行业分类,证监会行业分类,参数可通过列表,一次取多支股票。

6.查询财务数据

1
get_fundamentals(query_object)

query_object 是一个 sqlalchemy.orm.query.Query 对象,用于指定具体的查询内容,还可以用参数 statDate 指定查询财报的具体年份和季度。

7.查看还剩下多少条

1
jqdatasdk.get_query_count() 

免费账号限制每日最多下载 100 万条,查看当日剩余可调用条数。

8.将股票代码转化成标准格式

1
jqdatasdk.normalize_code('000001')

转换结果为 '000001.XSHE'

参考

说明文档具体见:https://www.joinquant.com/data/dict/jqDataSdk