使用tushare获取股票实时分笔数据延时有多大
前几天分享了一段获取所有股票实时数据的代码,有用户积极留言,提出一个非常棒的问题:如果数据本生的延时非常严重,通过代码获取数据再快又有什么用呢?
一直以来我也只是直观感觉延时并不是很长,但没有做过详细的统计,今天统计一下通过上一篇文章分享的方法获取的实时数据,究竟延时有多大。
今天实验用的数据是今天(2017-12-12)使用服务器脚本获取的实时数据的一部分,一共筛选了268只股票,数据只是这一天中的一部分数据,由于开盘了以后才修改的脚本,数据大概从9:47开始,少了十几分钟的数据,但是不影响结果,本次实验用的数据以网盘链接的方式放在文末,感兴趣的朋友自己下载下来算一算看看延时是多少,注意有一个问题,由于数据源的数据大约3秒更新一次,但脚本每秒获取一次数据,所以有一些数据是重复的,需要把重复的数据滤掉,避免影响结果。
在这里贴出结果,其他没有贴出来的与图片上的类似,最小延时大多为1秒,2秒,3秒,少数为4秒,最小延时没有超过44秒的,最大延时在30秒左右,从均值来看,延时分布在3秒到5秒之间居多,感兴趣的朋友可以算一下中位数,众数,方差,标准差等等。
不过从这个实验也可以得出一些结论,虽然前一篇文章我们已经实现了一秒以内获取一次所有股票的实时分笔数据,但是由于数据源更新时间约为3秒,所以没有必要1秒获取一次数据,这样做会产生大量重复数据,如果你用数据库存储数据的话,一定要将[‘time’]这一列置为primary key,插入新数据时,如果主键已经存在,就忽略。这样做可以只保留第一次获取的数据,后面获取的重复数据被丢弃。
最好的方式是将获取数据的时间间隔与数据源更新数据的时间间隔保持一致,这样可以大大减少重复数据,减轻服务器和网络的压力。
实验用到的实时数据地址:
链接:https://pan.baidu.com/s/1jHWKVwM 密码:k182