如果股票收盘数据接口系统开发过程中使用在python虚拟环境中安装了akshare的情况下,如果测试运行的时候检查akshare取数并没有问题,但是如何拿到自控模块来运行多多少少都是出现些速度的快慢的问题。举个例子,就比如说,在股票交易过程中,用户在a股收盘数据接口系统打开来获取akshare数据包进行预处理,获取的数据零零散散,就容易出现akshare取数会很慢的情况,那么,在这些情况下,又该如何去完善数据接口系统呢?
那首先我们可以根据股票收盘数据接口系统获取数据信息的类型来判断:
一、数据类型:
| 交易所 | 数据类型 |
| 上交所 | 十档行情快照(Level-2) |
| 委托队列(Level-2) | |
| 逐笔成交(Level-2) | |
| 深交所 | 十档行情快照(Level-2) |
| 逐笔委托(Level-2) | |
| 委托队列(Level-2) | |
| 逐笔成交(Level-2) | |
| 沪深交易所 | 期权、可转债 |
二、消息类型:
| 消息 | 说明 |
| TickRecord | 逐笔成交 |
| OrderRecord | 逐笔委托 |
| OrderQueueRecord | 委托队列 |
| StockQuoteRecord | 股票十档行情 |
三、TickRecord (逐笔成交)获取的数据
| 字段名 | 类型 | 备注 |
| stock_exchange | uint32 | 证券市场,1-SH,2-SZ |
| stock_code | string | 证券代码 |
| created_at | int64 | 成交日期时间戳(毫秒) |
| code | string | 成交编号 |
| price | uint32 | 成交单价 |
| volume | uint64 | 成交数量 |
| amount | uint64 | 成交金额 |
| tx_dir | uint32 | 交易方向:0-未知,1-买方成交,2-卖方成交 |
| tx_kind | uint32 | 交易类型:0-成交,1-撤单 |
| buy_order_seq | string | 买方委托序号 |
| sell_order_seq | string | 卖方委托序号 |
通过股票收盘数据接口系统使用akshare取数是有类型的限制条件的,因此,akshare取数会很慢的原因是因为数据类型的不匹配,系统对数据的兼容性问题要求高了,特别是在多个交易者使用时,增加了数据接口的爬取难度,减慢了速度,也可能要进行排队等候,自然就变慢了。那么在基于这种情况下,可以怎样去修正系统提高获取数据的速度呢?小编列举两个方法;
(1)重启pgsql数据库 systemctl restart postgresql 注释掉akshare的代码可以恢复运行,但是使用akshare还是用报错的话,可以更换py-mini-racer的版本为网上的一些博客使用的版本==0.1.17 结果报错还是存在。但有可能是由于akshare1.7.1版本过高,卸载重新安装最新的版本。
(2)卸载重新安装py-mini-racer0.4.0看看是否成功。其实这些解决的办法都是很细节的问题,必须要了解清楚链接股票数据接口的数据源方面。
最后,如果还发现股票收盘数据接口系统获取数据缓慢的现象,则可以试着尝试关闭交易系统,再重新打开并及时的刷新,更新系统再进行启动,保证在安全的情况下,就可以获取A股的股票历史数据了。如果自己使用不满意的情况下,也是可以Q下方让开发者完善系统,解决用户的难题。
上一篇:前端入门学习笔记四十二
下一篇:PHP+Nginx配置备忘