【数据知多少】一文学懂通过Tushare、AKshare、baostock、Ashare、Pytdx获取股票行情数据(含代码)
金融量化交易几种免费获取股票行情数据的方法
- 一、免费行情数据获取方式介绍
- 1.Tushare
- 简介
- 安装
- 代码仓库
- 说明文档
- 2. AKshare
- 简介
- 安装
- 代码仓库
- 说明文档
- 3. baostock
- 简介
- 安装
- 说明文档
- 4. Ashare(自制爬虫类)
- 简介
- 安装
- 代码仓库
- 说明文档
- 5. Pytdx
- 简介
- 安装
- 代码仓库
- 说明文档
- 二、行情数据获取测试(展示调用代码)
- 测试前准备
- 行情数据提取测试代码
- 三、综上所述
金融量化交易,是时下最时髦的词。相对于人工股票,量化交易通过采集数据,定制交易策略,程序化执行,可以避免人工盯盘的辛劳,更能轻松解决人性中的很多牵绊对交易的影响,也是新一代股民的革命武器。很多人也因学习量化交易,学习了Python编程,学习了pandas数据分析,甚至学习了各种指标分析。
说到量化交易,不可避免的首先就是行情数据源的获取。虽然市面上各种量化平台众多,但大多聚焦于回测用的历史数据,实时行情数据要么需要付费,或者就需要在特定券商开户(一般有大资金量的要求)。那作为初入股市或者资金量不大的Python股民,就没有办法了吗?怎么会!这难不倒爱钻研的IT人。下面就说说几种常见的获取数据源是方式。
一、免费行情数据获取方式介绍
注:以下平台均基于Python,建议安装Anaconda,一次性解决Python及数据分析常用pandas,numpy等包,省去很多麻烦,这对初学者很重要。Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包(数据分析用到的pandas)及其依赖项,下载地址https://www.anaconda.com/download/。
以下几种方法都可以实现对股票行情数据的提取,返回pandas数据格式,方便进行数据分析和加工。
- Tushare ,网上最流行的免费数据源,新推出的Tushare Pro需要注册,并需要积分方可访问更多数据;支持http restful 采用post方式请求http://api.tushare.pro,可使用其它语言调用API获得数据;
- AKshare ,适合进阶,数据内容丰富,发布 AKTools 作为 AKShare 的 HTTP API 版本,可使用其它语言通过调用API获得数据;
- baostock ,适合入门,获取一般数据够用了;
- Ashare ,极简,A股实时行情数据API,可算做自制爬虫类,效率很高;
- Pytdx ,一款纯Python语言开发的类似TradeX的行情数据接口的实现;
- 其它爬虫 ,可自行编制爬虫,通过js获取东方财富网、新浪、网易等在线数据,难度较大,但效率高。有兴趣的朋友可以自行琢磨。
1.Tushare
简介
Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。Pro版做了更大的改进。数据内容将扩大到包含股票、基金、期货、债券、外汇、行业大数据,同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台,为各类金融投资和研究人员提供适用的数据和工具。
安装
方式1:pip install tushare --upgrade
使用国内源安装:
pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn --upgrade
代码仓库
https://github.com/waditu/tushare
说明文档
Tushare :http://tushare.org/
Tushare Pro:https://tushare.pro/
2. AKshare
简介
AKShare 是基于 Python 的财经数据接口库,目的是实现对股票、期货、期权、基金、外汇、债券、指数、加密货币等金融产品的基本面数据、实时和历史行情数据、衍生数据从数据采集、数据清洗到数据落地的一套工具,主要用于学术研究目的。
AKShare 的特点是获取的是相对权威的财经数据网站公布的原始数据,通过利用原始数据进行各数据源之间的交叉验证,进而再加工,从而得出科学的结论。
AKShare 后续会基于学术论文和研究报告来添加更多数据接口和衍生指标,并提供相应的计算代码,敬请关注。
安装
pip install akshare --upgrade
使用国内源安装:
pip install akshare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com --upgrade
代码仓库
https://github.com/akfamily/akshare
说明文档
https://akshare.akfamily.xyz/
3. baostock
简介
证券宝www.baostock.com是一个免费、开源的证券数据平台(无需注册)。
提供大量准确、完整的证券历史行情数据、上市公司财务数据等。 通过python API获取证券数据信息,满足量化交易投资者、数量金融爱好者、计量经济从业者数据需求。
安装
方式1:pip install baostock --upgrade
使用国内源安装:
pip install baostock -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn --upgrade
说明文档
http://baostock.com/baostock/
4. Ashare(自制爬虫类)
简介
Ashare ( 开源 极简 A股实时行情数据API),项目库就一个文件Ashare.py,不用安装设置,可自由裁剪,随用随走 from Ashare import * 即可。
双内核封装,新浪财经,腾讯股票的实时行情数据,包括任意历史日线,周线,月线,分钟线,小时线等,已经稳定运行数年。双内核一主一备,自动热备,自动切换,Ashare即使用来做量化实盘行情源也可以满足。
安装
从Github下载Ashare.py文件,复制到自己的项目目录下即可。
代码仓库
https://github.com/mpquant/Ashare
说明文档
https://github.com/mpquant/Ashare
5. Pytdx
简介
Pytdx一款纯Python语言开发的类似TradeX的行情数据接口的实现,虽然目前已不再维护,但其仍可以使用。
安装
pip install pytdx --upgrade
代码仓库
https://github.com/rainx/pytdx(已不再维护)
说明文档
https://rainx.gitbooks.io/pytdx/content/
二、行情数据获取测试(展示调用代码)
测试前准备
因测试代码需要使用以上包,请提前使用pip语句进行安装;Ashare需要下载Ashare.py,并将其和测试代码放在同一目录。
另外,为了方便数据展示,需要调用prettytable包,请测试前提前安装,以免报错。安装语句如下:
pip install -U prettytable
行情数据提取测试代码
(以提取300750代码,20210101~20220715,共371跟K线日线历史行情为例。耗时数据为单次结果,因涉及网速、数据列内容不一致,表格处理等,不具有统计意义,仅作参考,使用前请自行测试。)
import time# ===============表格美化输出===============
def df_table(df,index):import prettytable as pt#利用prettytable对输出结果进行美化,index为索引列名:df_table(df,'market')tb = pt.PrettyTable()df = df.reset_index(drop = True)tb.add_column(index,df.index)for col in df.columns.values:#df.columns.values的意思是获取列的名称tb.add_column(col, df[col])print(tb)# 测试计时开始,测试哪个就把if 后面的0改为1即可,其它改成0。
time1 = time.time()
print('开始提取数据')if 0:# 1.Tushareimport tushare as tspro = ts.pro_api('6a0899533f8a5996f738183dbdf63c0afb3fcc931f08e1233575a339')#token,请注册后替换为自己的token。df = pro.daily(ts_code='300750.SZ', start_date='20210101', end_date='20220715')print('Tushare行情获取\n',df)# 单次提取股票数据耗时: 1.0941672325134277 秒if 0:# 2.AKshareimport akshare as akdf = ak.stock_zh_a_hist(symbol="300750", period="daily", start_date="20210101", end_date='20220715', adjust="qfq")print('AKshare行情获取\n',df)# 单次提取股票数据耗时: 2.899998426437378 秒if 0:# baostockimport baostock as bsimport pandas as pdlg = bs.login()rs = bs.query_history_k_data_plus("sz.300750","date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",start_date='2021-01-01', end_date='2022-07-15',frequency="d", adjustflag="3")data_list = []while (rs.error_code == '0') & rs.next():# 获取一条记录,将记录合并在一起data_list.append(rs.get_row_data())df = pd.DataFrame(data_list, columns=rs.fields)bs.logout()print('baostock行情获取\n',df)# 单次提取股票数据耗时: 0.9699969291687012 秒if 0:# 4.Asharefrom Ashare import *df=get_price('sz300750',frequency='1d',count=371) #默认获取今天往前5天的日线实时行情,count=371,表示获取371根K线。print('Ashare行情获取\n',df)# 单次提取股票数据耗时: 0.9399988651275635 秒if 1:# 5.Pytdxfrom pytdx.hq import TdxHq_APIapi = TdxHq_API()# 数据获取接口一般返回list结构,如果需要转化为pandas Dataframe接口,可以使用 api.to_df 进行转化with api.connect('119.147.212.81', 7709):df = api.to_df(api.get_security_bars(9, 0, '300750', 0, 371)) print('pytdx行情获取\n',df)# 单次提取股票数据耗时: 0.9504680633544922 秒if __name__ == "__main__":df_table(df,'行情')time2 = time.time()print("单次提取股票数据耗时:",time2-time1,'秒')
三、综上所述
- Tushare Pro,需要注册,需要积分,已获取积分的小伙伴可以自己再试试。毕竟是运行时间较长,稳定一些,速度也不错。
- AKshare,无需注册,调用方便,数据获取内容丰富,效率再高点就好了。
- baostock,无需注册,调用过程再简化一些就更好了,速度也不错。
- Ashare,无需注册,单文件,足够简单,调用也方便,但数据单一,速度也很快。
- Pytdx,无需注册,已不再维护,但可以使用,速度也很快。
- 其它爬虫,自行研究,各有各的特点。
【数据知多少】一文学懂通过Tushare、AKshare、baostock、Ashare、Pytdx获取股票行情数据(含代码)相关推荐
- python 行情数据,拼多多股票:Python获取股票行情数据的一种方法
Python获取股票行情数据的一种方法 拼多多股票 本号帮大家找了一个可免费获取股票行情数据的接口. Tushare社区目前主要维护新版本:tushare pro,数据更稳定拼多多股票质量更高,可获取 ...
- python处理期货数据分析_量化交易分析第一步利用Tushare轻松获取股票期货行情数据...
Tushare简介 Tushare是一个免费开源的python财经数据接口包,主要能够实现对股票.期货等金融数据从数据采集.清洗加工到数据存储的过程,能够为金融分析人员提供快速.整洁和多样的便于分析的 ...
- tushare获取沪深300指数历史_从Tushare获取历史行情数据
从Tushare获取历史行情数据,分为两种,一种是后复权(daily_hfq)数据,一种是不复权(daily)数据,获取到的数据存储在MongoDB数据库中,每个集合(collection)中,数据字 ...
- 股票实时数据 python_Tushare 获取股票实时数据
Tushare 获取股票实时数据 自己实现了一个能获取股票实时交易数据的脚本,功能是每3秒钟获取当前大盘涨跌,和自己添加股票的价格和涨跌幅 原理是通过获取Tushare 平台提供的api,来获取股票数 ...
- 爬取东方财富网股票行情数据和资讯
爬取东方财富网股票行情数据和资讯 这个需求源于我的一个练手项目 本篇博客参考:https://zhuanlan.zhihu.com/p/50099084 该博客介绍的东西本博客不做论述 使用技术: 语 ...
- 【读书笔记】抓取深圳或上海股市,或香港美国等有关股市某时间段内全部股票行情数据,进行主成分分析构造你个人的股市指数
抓取深圳或上海股市,或香港美国等有关股市某时间段内全部股票行情数据,进行主成分分析构造你个人的股市指数,然后分析你的私家指数和该股市常用官方股票指数的相关性,判断主成分分析在构造股市指数上是否可用. ...
- python 股票实时数据接口_获取股票实时数据的接口
记录下获取股票实时数据的接口,记录下. 以基金兴和500018为例 ****************************** 新浪的接口: http://hq.sinajs.cn/list=sh5 ...
- myquant量化获取高频行情数据的操作步骤
应用接口:https://gitee.com/l2gogogo 适用场景:高频次.规则行情数据的处理,在高频实时行情接收.策略回测时性能高 描述:预先订阅所需数据,在使用时,用对应的事件函数接收数据, ...
- 使用Python获取股票解禁数据并绘制股价曲线
股票解禁大致分为:原始股解禁,增发股解禁,股权激励. 原始股解禁是上市前公司股东.高管.员工持有的股票. 增发股解禁是上市公司上市后,再次发行股票给一些固定的机构.人的股票. 股权激励是上市公司上市后 ...
最新文章
- sniffer 和 debug flow
- HTML转PDF(C#---itextsharp)(转自别人的文章)
- Kenai.com 将与 java.net 合并
- JAVA如何才能导出这样的EXCEL?
- Python基础学习笔记之(二)
- Android近场通信---NFC基础(三)
- linux编写随机数脚本,Shell使用RANDOM编写1-10以内随机数
- NOIP经典基础模板总结
- 【生活相关】三(米新江老师语录)
- 如何监控 Nginx?
- c语言一些简单的程序
- PyCharm获取csv文件
- 生活,人艰不拆,各种躺枪
- 苏嘉杭高速公路收费站升级改造(苏州地区)配电室综合监控系统的设计与应用
- emule连接服务器无响应,为什么我的emule连接不上服务器了
- 1.1 机器人学之空间描述和变换
- 乐迪智能陪伴机器人_乐迪智能陪伴机器人app下载|乐迪智能iphone版下载 v2.8.5 - 跑跑车苹果网...
- vgg16网络模型的学习理解
- openstack 监控 - 整合nagios 调研总结
- Endnote X9.1 参考文献悬挂缩进