哪里有股票实时数据和历史数据的API数据接口?

摘要:随着股票/期货市场的快速发展,股票/期货相关数据的获取是第一个需要解决的问题。通过API调用来获取数据能优化数据获取流程,节约数据获取时间。文章基于股票/期货API的沪深港股票/期货交易数据调用方法,分析对比其與网络爬虫数据调用方法的异同。由于单独使用网络爬虫或API调用不能完成数据准确完整的调用。因此,提出一种API调用和网络爬虫相结合的方法,从而解决API调用数据次数受限,网络爬虫调用数据过程复杂等问题,综合两种方法的优点以实现数据高效完整的获取。

关键词:API;API调用;数据获取;网络爬虫

19世纪70年代,Digital Research公司创造出了世界上第一个实用的软件API(Application Programming Interface,应用程序接口),这个API仅仅由20种简单的函数组成,但就是这个API的出现改变了整个计算机领域。之后比尔·盖茨等人复制了其API开发出MS-DOS操作系统,添加了一些简单的特性之后,将其推上了软件开发的主导地位。

1981年,微软公司发布Windows操作系统,但其自己开发出来的Windows API不能满足当时使用需求,大量的开发人员投入到Windows程序的开发中来,同时加快了API的发展进程。

1988年,微软公司购买了Alan Cooper开发的可视编程语言:Ruby。Ruby满足了名为VBX的软件API,这种API可以让开发人员动态地扩展Visual Basic功能。

API,Netscape可以在自己的计算机之外查找其他网络上的计算机,并且提取其中的文件。

今天的软件开发者很大一部分是在开发Web应用程序, Web领域的开发者们不会对Web本身有太多的研究,所以这些开发者需要把其他开发者预先编写的部分组合起来,所以他们比以前更多地依赖于为其编写的软件API。同时API在金融领域也发挥着它的优势。由于互联网技术的不断发展,股票/期货的交易数据也呈现着快速增长的趋势。目前大量股票/期货交易数据为政府、组织机构、企业所拥有,但是社会层面对股票/期货交易数据的需求也越来越强烈,越来越多的团体或个人需要按照自己的交易习惯定置个性化交易软件。股票/期货交易数据的获取量大、股票/期货数据更新频繁、数据传播迅速,并且数据获取用户相对集中,所以用API来调用股票/期货数据既满足了用户对股票/期货数据的需求同时还节省了数据获取时间。

API是指操作系统预先把这些复杂的操作写在一个函数里面,编译成一个动态链接库,跟随操作系统一起发布,并附上使用文档说明,使用者只需要简单地调用这些函数就可以完成一些复杂的工作。API具有以下性质,一是可用性,是指用户能否便捷运用API来完成指定任务,是衡量API质量的重要指标。二是稳定性,代表着API的质量,稳定的API可以提高调用数据的准确性完整性。三是安全性,API的不规范使用可能会导致数据在调用过程中发生错误,致使返回给用户的数据不准确甚至给操作系统带来安全风险。API按用户不同权限提供数据服务其中包括:一是支持内容创建,API 允许用户定制、获取、上传数据;二是禁止内容创建,API 只允许用户定制、获取数据,不允许对数据进行编辑更改。大部分开放给普通用户的API都禁止用户对其创建内容,主要原因是防止权威数据的漏传、误传甚至丢失,例如用户获取实时股票/期货交易数据。

API 调用是通过 API 有条件的精确获取用户所需要的数据,调用方式灵活方捷、反映速度快。

二、API调用股票/期货数据的方法与实现

API调用数据原理如图1所示。

(一)API接口的选择

获取股票/期货数据的API接口主要有:数据超市、雅虎、新浪、Google等。

由于计算机技术的发展以及数据获取手段的普及,现在出现了许多数据超市,可以更加高效快捷的获取股票/期货数据,不仅节约了获取者的时间,同时也有利于获取更多准确及时的数据。下面介绍三种数据接口从中选择一个作为接下来实验的数据接口。

注意:上证股票在输入股票代码时要在前面加上sh,深圳股票在股票代码前面加上sz,港股在股票代码前面加上hk

下面分别调取了沪股浦发银行sh00000、深股平安银行sz000001、以及港股颐海国际hk01579、海底捞hk06862的股票交易数据和玉米、白银、黄金的期货交易数据。

浦发银行股票交易数据:

平安银行股票交易数据:

颐海国际股票交易数据:

三、API调用与网络爬虫对比分析

(一)关于API调用数据方法的分析

API调用数据方法的普及主要原因有:

API 提出了一种代码的编制复用机制,用户可以直接使用已有的API接口,复用他人编制出来的代码完成数据的调用。

API开发出一种信息隐藏的机制,用户在不知道具体细节的情况下,就可以完成相应的数据调用功能。

API 提供了访问某些数据资源的接口,用户通过这些API接口就能直接访问到想要的资源,不用进行接口的寻找,节省数据调用时间。

API调用数据支持多项目、多模块的数据调用,同时支持私有项目、公开项目、加密项目的数据调用。

API调用数据支持协同管理,支持添加项目成员,并且可精确控制每个成员的权限。

API接口支持普通接口、restfull、josn、xml等各种接口的数据的调用,接口返回数据也支持word、pdf格式下载,可单个下载也可按模块下载。

通过调用 API 接口可以实现股票/期货数据便捷高效的获取与解析。但所有的数据提供商都不会无条件无限制的提供给普通用户完整数据,例如在股票/期货数据获取过程中,有许多拥有重要查询功能的 API 是不提供给普通用户的,同时对于开放的 API,一次调用的返回结果数量有限制。同时因为 API 接口自身的复杂性以及数据本身的缺失和疏漏等原因,使用者经常会对API进行错误的使用,导致调用数据和现实不符合甚至出现重大误差。因此使用 API 调用数据的方法只能解决数据获取中的一部分问题。

(二)API調用数据与网络爬虫对比分析

爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序。

网络爬虫的基本原理:发起请求,使用http库向需要的数据所在的网站发起请求,即发送一个Request;获取响应内容,如果服务器能正常响应,则会得到一个返回数据;解析返回数据,通过第三方解析返回的数据,从中获取所需要的部分;保存数据。将提取的有用的数据保存到本地。

与基于API 的数据调用相比,基于网络爬虫的数据调用效率与性能有明显差距,同时网络爬虫调用数据还要解决网页的模拟登录问题,调用过程复杂。但是通过网络爬虫进行数据调用,能够解决用户反复调用API接口带来的数据量限制等问题,使能够调用的数据量明显增加,调用过程稳定。

但是在只需要部分特定的数据时,基于网络爬虫的数据调用方法速度较慢,在处理数量相同的信息时需要解决更多的问题,在数据的返回解析方面也更加复杂。而通过API调用数据可以一次性完成数据调用、返回、解析、存储,不需要像网络爬虫获取数据一样,一个一个页面解析提取的数据,同时API调用返回数据大小较小,速度快使调用更有效率。

四、对数据调用方法的思考

API 调用数据的抓取方式效率高,但因为服务器限制,不能获得完整数据集,而基于网络爬虫的数据获取方案可以获得较大的数据,但无法一次性抓取用户想要的数据,获取效率比较低。所以需要将两者结合起来,以实现最佳数据抓取获取效果。

首先,计算需要抓取的数据大小,如果需要获取的数据量小于用户使用的API接口规定访问的最大限制次数,则自动调用API接口获取数据。反之就使用网络爬虫获取用户所需要的数据。如果在使用API接口的过程中,累计数据量超过了接口所允许的最大访问次数,这时也可以自动转换为网络爬虫获取剩下部分的数据。获取完整数据后将数据放入一个数据库中,数据库自动检测对比数据的真实准确性,从而输出用户所需要的数据。

本文主要介绍一种基于API接口获取股票/期货数据的方法,将其与传统网络爬虫获取数据方法进行对比。提出两者相结合的方法,一方面弥补了API调用数据的调用次数限制问题,另一方面解决了网络爬虫调用数据需要模拟登陆和大量的页面解析的问题。结合两者优点提高调用效率保证数据的准确性与完整性,但是从大数据的发展角度出发,在不考虑API访问次数限制的情况下,基于API的数据获取方法在获取效率方面还有很大的发展空间,之后的研究可以从如何降低API接口的限制访问次数入手提出更加符合要求方便快捷的数据获取方法。

[1]廉捷,周欣,曹伟,刘云.新浪微博数据挖掘方案[J].清华大学学报(自然科学版),2011,51(10):.

[2]冰雨梦.软件接口的历史和未来[J]. 中文信息:程序春秋,2002(06):18-19.

[3]李正,吴敬征,李明树.API使用的关键问题研究[J].软件学报,2018,29(06):.

[4]赵前东,叶猛.微博热点话题检测系统的设计与实现[J].电视技术,2013(03):211-214.

[5]王佳秋.基于用户行为及关系的微博电商企业影响力度量[D].哈尔滨:哈尔滨商业大学,2013.

[6]徐雁飞,刘渊,吴文鹏.社交网络数据采集技术研究与应用[J].计算机科学,2017(01):277-282.

[7]石磊.新浪API与网络爬虫结合获取数据的研究与应用[J].中国电子商务,2013(22):58-59.

[10]刘海房,莫世鸿,龚振,范冰冰.面向API调用的开放数据存储管理研究[J].计算机应用与软件,2018,35(08):93-97.

(作者单位:昆明理工大学公共安全与应急管理学院)

数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。

     Tushare从发布到现在,已经帮助很多用户在数据方面降低了工作压力,同时也得到很多用户的反馈,Tushare将一如既往的用免费和开源的形式分享出来,希望对有需求的人带来一些帮助。如果您觉得Tushare好用并有所收获,请通过微博、微信或者网站博客的方式分享出去,让更多的人了解和使用它,使它能在大家的使用过程中逐步得到改进和提升。Tushare还在不断的完善和优化,后期将逐步增加港股、期货、外汇和基金方面的数据,所以,您的支持和肯定才是Tushare坚持下去的动力。

     Tushare org版的数据主要来源于网络,如果在使用过程碰到数据无法获取或发生数据错误的情况请联系我,如果有什么好的建议和意见,也请及时联系我,在此谢过。 为了提高数据的可靠性和稳定性,我们Tushare推出了Pro版本数据接口,同时逐笔停止了对org版本的维护。 为了更好的为用户提供服务,特地建立了一个收费群“Tushare会员群”:,每人200元,送2000积分。(可以通过里面的二维码支付并留下QQ号即可),会员能获得更多数据和技术相关服务,同时定期组织线下交流活动。费用将用于Tushare服务器和带宽升级。 另外,请扫码关注“挖地兔”的微信公众号,定期会发布Tushare的最新动态及有价值的金融数据分析与处理方面的教程和文章。

     从最新本开始,Tushare将接受第三方数据的接入,欢迎供应商通过微信公众号“挖地兔”与我联系。

  • 感谢、、上交所和深交所提供数据
  • 感谢在QQ、微博和Email里提出意见和建议的很多个不知道名字的朋友们
  • 特别感谢对Tushare进行过的朋友,是你们让我一直保持着更加努力和认真的做事,也让我学会用感恩的心去做好每一件事。
  • 量化投资分析师(Quant)
  • 对金融市场进行大数据分析的企业和个人
  • 开发以证券为基础的金融类产品和解决方案的公司
  • 正在学习利用python进行数据分析的人

【注:最近有人问到说Tushare不方便看行情,我想说的是,Tushare不是普通炒股者用的软件,而是为那些有兴趣做股票期货数据分析的人提供pandas矩阵数据的工具,至于能不能用来炒股以及效果如何,就看个人的能力了】

  • 修复部分程序和文档bug
  • 新增期权隐含波动率数据
  • 修复指数成份股及权重数据接口
  • 沪深300成份股和权重接口问题修复
    1. 龙虎榜机构席位成交明细
  • 新增大盘指数每日行情列表
  • 新增大盘指数历史行情数据(全部)
  • 新增终止上市公司列表(退市)
  • 修正融资融券明细无日期的缺陷
  • 新增沪市融资融券明细列表
  • 新增深市融资融券明细列表
  • 修正复权数据数据源出现null造成异常问题(对大约300个股票有影响)
  • 部分算法优化和代码重构
  • 修正分配预案(高送转)bug
  • 新增“新浪股吧”消息和热度
  • 修正“基本面”模块中数据重复的问题
  • 修正历史数据缺少一列column(数据来源问题)的bug
  • 新增即时滚动新闻、信息地雷数据
  • 新增沪深300指数成股份及动态权重、
  • 新增上证50指数成份股
  • 修改历史行情数据类型为float
  • 增加了重点指数的历史和每日行情
  • 发布一版使用手册,开通网站
  • 增加每日交易数据的获取
  • 增加tick数据的获取
  • 实现个股历史数据的获取

我要回帖

更多关于 A股数据接口 的文章