5行代码实现1秒内获取一次所有股票的实时分笔数据

timdes1 timdes1     2022-10-08     548

关键词:

5行代码实现1秒内获取一次所有股票的实时分笔数据

 

前两篇文章分别简单介绍了tushare这个财经数据接口包的使用,用起来很简单顺手,一两句代码就可以获取到你想的要的数据,但是有在群里经常看到说获取数据经常挂,延迟很严重等等,其实那是因为使用者没有好好去领悟和了解工具。片面两篇文章已经对tushare如何获取股票的历史数据和实时数据有过简单的介绍,没看过的朋友可以到微信公众号【数据之佳】点击往期文章就可以查看。

上两篇文章只是向大家介绍了tushare这个工具,相信有不少对量化投资感兴趣,却不知道如何获取数据的朋友已经尝试过使用他来获取数据,但遗憾的是,如果不注意使用的技巧,你获取数据的脚本即使不经常挂,得到的数据质量也不高,尤其是实时分笔数据,上一篇文章展示的代码,获取一次所有股票的实时数据整整花了20秒的时间,遇到这种情况,可能很多人会想,是不是我的网速的问题,或者是数据服务器限制访问的频次导致的?所以只能退而求其次,自我安慰,有总比没有好。

其实不然,我们使用tushare来获取数据,器数据也是通过爬虫从各个数据服务器爬下来的,那么在代码访问数据的过程中,每一次访问都需要经过验证,就好像你需要从仓库中取一万个零件,你每一次只取一个,而仓库管理员必须遵守规定,每一次取物品都需要验证人的身份,做记录等等一系列繁杂的手续,很可能你验证身份所花的时间比你取物品的时间还要多得多,然而如果你有一辆卡车,一次可以运走一千个零件,那么你每次验证身份,就可以取走一千件,这样身份验证所花的时间比一件一件的取要少一千倍。

这么一说其实道理是很简单的,关键在于你会不会这样去想,向服务器获取数据也一样,每次访问服务器,都需要发送请求,验证等等,这些都是无用的时间开销,如果我们能一次性获取多条数据,就可以大大节省时间开销,恰好tushare获取实时数据的接口函数提供了这样的功能,一次性可以获取多只股票的数据,但不能太多,tushare网页文档说的是最好每次不要获取超过30只股票的数据,但经过我验证,每次最多可以获取880只股票的实时数据,现在深市沪市一共有3400多只股票,我们只需要获取4次就够了,下面提供一下源代码,核心代码的确只有5行,为了验证是否获取一次数据的时间间隔,我把获取数据之前,以及之后的时间都打印出来了。

import tushare as ts
import pandas as pd
import datetime
f=open(‘F:get_stocksget_datastocks.txt‘)
time1=datetime.datetime.now()
stocks=[line.strip() for line in f.readlines()]
data1=ts.get_realtime_quotes(stocks[0:880])
data2=ts.get_realtime_quotes(stocks[880:1760])
data3=ts.get_realtime_quotes(stocks[1760:2640])
data4=ts.get_realtime_quotes(stocks[2640:-1])
time2=datetime.datetime.now()
print(‘开始时间:‘+str(time1))
print(‘结束时间:‘+str(time2))
print(data1)
print(data2)
print(data3)
print(data4)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

开始时间:2017-12-04 21:42:27.184003
结束时间:2017-12-04 21:42:27.696398
  • 1
  • 2
  • 3

可以看到,获取数据前后的时间差,只有0.5秒多一些,准确的说,这一次实验只用了0.5123秒,当然在这里只是抛砖引玉,帮助大家打开思路,在这里还得感谢tushare的开发者,让我们可以很方便的就获取到一些很有价值的金融数据。虽然他不是万能的,但是却能使我们把更多的时间花在自己的模型上面。 
在这里数据就不贴了,感兴趣的朋友自己动手实验一下,我的电脑配置很一般,网速也算不上很好,不用担心你的网速,这个速度你一样可以达到

如果想要把这个思路用在自己的服务器上面,用来获取一整天的实时数据,建议读者使用调度工具,最简单的是linux下面的crontab,它只支持最小单位分钟的调度,但稍加运用,也可以用来调度我们获取实时数据的程序。

好了今天就到这里,想要获得更多优质的文章或数据请关注微信公众号 
【数据之佳】,我们将不定期在上面分享我们学习和运用数据分析、机器学习、量化分析的一些思路,模型和结果,下面是微信公众号的二维码,如果你想尝试上面的代码,但是没有现成的股票代码,关注微信公众号【数据之佳】,回复【python量化】就可以得到下载链接 
技术分享图片




使用tushare获取股票历史数据和实时分笔数据

使用tushare获取股票历史数据和实时分笔数据 财经数据接口包tushare的使用(一)Tushare是一款开源免费的金融数据接口包,可以用于获取股票的历史数据、年度季度报表数据、实时分笔数据、历史分笔数据,本文对tushare的用... 查看详情

期货行情数据接口============

习惯了用某款股票软件,但这款股票软件没有期货行情数据接收,但用别的软件我又用不习惯,能不能把期货行情数据装到这个软件上接收呢???我习惯用的那款软件没有期货行情数据,有没有转接接口,生成K线?参考技术A... 查看详情

商品期货实时行情数据api接口分笔全推导出数据库

...延时,价格优惠。接口socketwebsockethttp推送,httppostget主动获取,免费使用K线 查看详情

[转]实时股票数据接口

.../javascript接口取数据1.1Sina股票数据接口以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:http://hq.sinajs.cn/list=sh601006这个url会返回一串文本,例如:varhq 查看详情

新浪实时股票数据接口

.../javascript接口取数据1.1Sina股票数据接口以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:http://hq.sinajs.cn/list=sh601006这个url会返回一串文本,例如:varhq_str_s 查看详情

数据分析03/基于pandas进行股票分析(代码片段)

...一个交易日卖出所有股票,到今天为止,我的收益如何?代码实现:1.使用tushare包获取某股票的历史行情数据importtushareastsimportpandasaspdfrompandasimportSeries,DataFrame#使用tushare包获取某股票的历史行情数据df=ts.get_k_data('600519',star... 查看详情

如何获取实时的股票行情信息,有相关的公用接口或者数据源吗

.../javascript接口取数据1.1Sina股票数据接口以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:http://hq.sinajs.cn/list=sh601006这个url会返回一串文本,例如:varhq_str_sh601006="大秦铁路,27.55,2... 查看详情

买卖一次股票的问题----go语言实现(代码片段)

...历下一个下标3.再从这些最大值中,找出最大的一个代码实现funcsolution(slice[]int)(maxint) resSlice:=make([]int,len(slice)) forkey,value:=rangeslice resSlice[key]=value fori:=key;i<len(slice);i++ //找当前元素,后面元素的最大 查看详情

多个 javascript 超时 - 实时数据获取问题

...型).我目前正在努力寻找一种方法来让用户知道在过去5秒内何时未更新特定字 查看详情

如何获取实时的股票数据

要跟供应商协商得到他的接口才能得到实时股票行情数据拓展资料股票(stock)是股份公司所有权的一部分,也是发行的所有权凭证,是股份公司为筹集资金而发行给各个股东作为持股凭证并借以取得股息和红利的一种有价证券... 查看详情

数据分析---使用tushare对股票分析(代码片段)

 Demand:使用tushare包获取某股票的历史行情数据。输出该股票所有收盘比开盘上涨3%以上的日期。输出该股票所有开盘比前日收盘跌幅超过2%的日期。假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交... 查看详情

买卖一次股票的问题----go语言实现(代码片段)

问题有一个数组[7,0,2,8,5,4],买卖股票,数组的下标对应着日期你可以操作一次买入与卖出如:在0买入,在8卖出,赚了8-0,在2买入5卖出,就赚3元不能在0买入,7卖出(意思说,卖出要在买... 查看详情

买卖一次股票的问题----go语言实现(代码片段)

问题有一个数组[7,0,2,8,5,4],买卖股票,数组的下标对应着日期你可以操作一次买入与卖出如:在0买入,在8卖出,赚了8-0,在2买入5卖出,就赚3元不能在0买入,7卖出(意思说,卖出要在买... 查看详情

所有股票问题(动规)(代码片段)

121.买卖股票的最佳时机给定一个数组prices,它的第 i个元素 prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最... 查看详情

121.买卖股票的最佳时机(代码片段)

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票... 查看详情

数据分析之dataframe基础操作巩固-股票分析(代码片段)

需求:股票分析使用tushare包获取某股票的历史行情数据。tushare财经数据接口包,基于该模块可以获取任意股票的历史交易数据pipinstalltushare输出该股票所有收盘比开盘上涨3%以上的日期。输出该股票所有开盘比前日收盘跌幅超过... 查看详情

r获取股票数据并进行进行可视化分析(代码片段)

...间范围start=as.Date("2020-02-01")end=as.Date("2020-03-31")#通过股票代码获取时间范围内的数据,可以设置多个股票代码;#数据源微yahoo数据源;g 查看详情

python量化交易:数据获取接口(代码片段)

...种类二、获取韩各样、板块以及概念股票列表2.1关于股票代码以及代码补齐RiceQuant上的股票代码标记:2.2获取行业industry-行业股票列表参数返回范例2.3获取板块sector-板块股票列表参数返回2.4获取概念2.5获取指数成分股index_com... 查看详情