介绍
之前测试过一些免费API,比如tushare现在只能下载两年半数据,163有的股票数据无法下载,pandas_reader速度很慢,并且只能下载A股的各股数据,对基金和指数支持不佳。这两天尝试了聚宽平台提供的API,它提供的功能基本够用,总结如下。
聚宽平台提供自2005年至今的股票相关数据(包含各股数据、指数、基金等等),需要申请一个免费试用帐号,使用期为一年,每天可下载最多100万条数据(所有A股历史数据不到200万条)。一天内不能下载所有数据,用两三天时间下载所有,然后每天更新数据肯定够用,而且速度较快。
聚宽数据以Python三方库方式提供,一直在更新维护中,最近一次SDK升级时间为2019年5月。
建议读者封装数据获取模块,下载后转换成自定义数据格式,这样数据源变化了,也不影响整体软件框架。
安装
安装方法如下:
$ pip install git+https://github.com/JoinQuant/jqdatasdk.git
(需要python3.6以上支持)
用法
1. 登录
import jqdatasdk
jqdatasdk.auth("用户名","密码")
2. 获取K线数据
get_price(security="000001.XSHE", frequency='daily')
用security股票或者指数的代码,frequency指定频率,默认为日K线,还可以指定开始结束时间。
3. 获取股票或基金列表
get_all_securities(types=[‘stock’])
用types指定需要获取的类型,stock为获取股票列表,fund为基金列表,index指数列表,futures期货列表……
4. 获取指数成份股
jqdatasdk.get_index_stocks('000300.XSHG')
上例为获取沪深300成份股的股票列表。
5. 获取股票所在的行业
jqdatasdk.get_industry("600519.XSHG",date="2018-06-01")
行业包括申万三级行业分类,聚宽二级行业分类,证监会行业分类,参数可通过列表,一次取多支股票。
6.查询财务数据
get_fundamentals(query_object)
query_object是一个sqlalchemy.orm.query.Query对象,用于指定具体的查询内容,还可以用参数statDate指定查询财报的具体年份和季度。
7.查看还剩下多少条
jqdatasdk.get_query_count()
免费账号限制每日最多下载100万条,查看当日剩余可调用条数。
8.将股票代码转化成标准格式
jqdatasdk.normalize_code('000001')
转换结果为 '000001.XSHE'
参考