【数据知多少】一文学懂通过Tushare、AKshare、baostock、Ashare、Pytdx获取股票行情数据(含代码)

金融量化交易,是时下最时髦的词。相对于人工股票,量化交易通过采集数据,定制交易策略,程序化执行,可以避免人工盯盘的辛劳,更能轻松解决人性中的很多牵绊对交易的影响,也是新一代股民的革命武器。很多人也因学习量化交易,学习了Python编程,学习了pandas数据分析,甚至学习了各种指标分析。

说到量化交易,不可避免的首先就是行情数据源的获取。虽然市面上各种量化平台众多,但大多聚焦于回测用的历史数据,实时行情数据要么需要付费,或者就需要在特定券商开户(一般有大资金量的要求)。那作为初入股市或者资金量不大的Python股民,就没有办法了吗?怎么会!这难不倒爱钻研的IT人。下面就说说几种常见的获取数据源是方式。

一、免费行情数据获取方式介绍

:以下平台均基于Python,建议安装Anaconda,一次性解决Python及数据分析常用pandas,numpy等包,省去很多麻烦,这对初学者很重要。Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包(数据分析用到的pandas)及其依赖项,下载地址https://www.anaconda.com/download/

以下几种方法都可以实现对股票行情数据的提取,返回pandas数据格式,方便进行数据分析和加工。

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 

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 

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 

4. Ashare(自制爬虫类)

Ashare ( 开源 极简 A股实时行情数据API),项目库就一个文件Ashare.py,不用安装设置,可自由裁剪,随用随走 from Ashare import * 即可。

双内核封装,新浪财经,腾讯股票的实时行情数据,包括任意历史日线,周线,月线,分钟线,小时线等,已经稳定运行数年。双内核一主一备,自动热备,自动切换,Ashare即使用来做量化实盘行情源也可以满足。

从Github下载Ashare.py文件,复制到自己的项目目录下即可。

5. Pytdx

Pytdx一款纯Python语言开发的类似TradeX的行情数据接口的实现,虽然目前已不再维护,但其仍可以使用。

pip install pytdx --upgrade 

https://github.com/rainx/pytdx(已不再维护)

因测试代码需要使用以上包,请提前使用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  tb = pt.PrettyTable() df = df.reset_index(drop = True) tb.add_column(index,df.index) for col in df.columns.values: tb.add_column(col, df[col]) print(tb)  time1 = time.time() print('开始提取数据') if 0:  import tushare as ts pro = ts.pro_api('6a0899533f8a5996f738183dbdf63c0afb3fcc931f08e1233575a339') df = pro.daily(ts_code='300750.SZ', start_date='20210101', end_date='20220715') print('Tushare行情获取\n',df)  if 0:  import akshare as ak df = ak.stock_zh_a_hist(symbol="300750", period="daily", start_date="20210101", end_date='20220715', adjust="qfq") print('AKshare行情获取\n',df)  if 0:  import baostock as bs import pandas as pd lg = 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)  if 0:  from Ashare import * df=get_price('sz300750',frequency='1d',count=371)  print('Ashare行情获取\n',df)  if 1:  from pytdx.hq import TdxHq_API api = TdxHq_API()  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)  if __name__ == "__main__": df_table(df,'行情') time2 = time.time() print("单次提取股票数据耗时:",time2-time1,'秒') 
  • Tushare Pro,需要注册,需要积分,已获取积分的小伙伴可以自己再试试。毕竟是运行时间较长,稳定一些,速度也不错。
  • AKshare,无需注册,调用方便,数据获取内容丰富,效率再高点就好了。
  • baostock,无需注册,调用过程再简化一些就更好了,速度也不错。
  • Ashare,无需注册,单文件,足够简单,调用也方便,但数据单一,速度也很快。
  • Pytdx,无需注册,已不再维护,但可以使用,速度也很快。
  • 其它爬虫,自行研究,各有各的特点。

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注