35 | RESTful & Socket:行情数据对接和抓取
该思维导图由 AI 生成,仅供参考
行情数据
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了如何利用RESTful接口和Socket技术对接和抓取行情数据。作者首先解释了交易所的撮合交易模式,以及委托账本和活动行情的概念。随后,通过示例代码展示了RESTful接口的延迟问题,并介绍了WebSocket协议的特点,以及如何利用WebSocket实现全双工通信。作者还给出了使用WebSocket获取交易所委托账单的示例代码。文章还介绍了Gemini提供的公开和私有接口,以及如何利用Python实现orderbook爬虫。通过本文,读者可以了解到行情数据对接和抓取的重要性,以及如何利用Socket技术提高数据传输效率和时效性。文章还深入讲解了orderbook信息的抓取方法,以及WebSocket的工作机制和使用方法。总的来说,本文为读者提供了实用的技术指导和示例代码,帮助他们快速了解行情数据抓取的技术细节。
《Python 核心技术与实战》,新⼈⾸单¥59
全部留言(33)
- 最新
- 精选
- Jingxiao置顶思考题答案: Websocket 可能丢包。TCP 协议保证了所有的包按顺序抵达(即使是乱序抵达,在前面的包收到之前,TCP 协议下的底层程序也会讲先到达的靠后的包缓存,直到前面的包抵达,才送给上层的应用程序),但是并不能保证不可恢复的错误发生的时候,包不会丢失。这种情况发生的时候,就会出现 Orderbook 中一个或多个(价格,数量)信息没得到及时更新。这种错误越积攒越多的情况下,就会导致本地的 Orderbook 充满垃圾信息,变得完全不可靠。因此一个很好的做法是,可以设置一个时间间隔,通过 RESTFul 或者其他方式重新抓一下 Orderbook 的 Snapshot,然后和本地的 Orderbook 进行比对,纠正错误。2019-08-0156
- SCAR思考题: 1. websocket基于tcp的,虽然协议上有纠错,重传和等待的机制,但一些特殊的情况还是可能会有丢包的情况,比如同时有超过服务器负载的客户端在请求数据。 2.如果丢包的情况发生时,类似开大会会场人人都发微信图片,看着WiFi信号满格,却发不出去,差不多一样的道理爬虫也是收不到数据的。 3.查了下websocket的WebSocketApp的函数,有个参数on_error,是websocket发生错误的时候触发的,那么我们可以编写这个对应的回调函数来让服务器重发或者其他有效的处理。
作者回复: 👍
2019-07-2945 - JustDoDTwebsocket资料 https://pypi.org/project/websocket_client/
作者回复: 👍
2019-07-296 - Geek_adeba6想请问是否可以使用STOMP协议与Gemini这样的交易平台通信, 像消息队列rabbitmq 有 stomp的plugins
作者回复: 理论上他可以这么做,但是 Gemini 目前官方只支持 RESTFul 和 Websocket,以及金融工程中经常用到的 FIX 协议,这些协议都有着广泛支持的开源库和经过充分时间验证的安全性,切换到新的协议没有太大必要,但是以后的事情谁也说不定呢
2019-07-304 - shiziwen请问文章中,接口获取的数据中,bids和ask是什么意思呢?
作者回复: orderbook 的买方和卖方:https://www.investopedia.com/terms/b/bid-and-ask.asp
2020-05-203 - Merlin对于web socket的编程,可以用asyncio,我觉得用asyncio来开发web socket更为方便
作者回复: 嗯嗯
2019-11-263 - _stuView我之前看到Linux公众号讲python并不是一个解释型语言,而是一个运行在虚拟机上的语言https://mp.weixin.qq.com/s/Yqwk_eXO1t5N2cjRz_u0sw
作者回复: 如果一定要回答 Python 是不是解释型语言,那么答案是它是部分编译型语言。它和 Java 类似,不会像 C++ 一样编译到机器语言,而是编译成字节码来提高执行速度。https://stackoverflow.com/questions/6889747/is-python-interpreted-or-compiled-or-both
2019-07-3121 - ttwebsocket包的安装使用如下命令: pip -m install websocket_client安装。 pip -m install websocket会安装另外一个完全不同的包2019-07-29144
- tux干布球和tt 的提示,解决了报错。 import websocket #pip install websocket-client import _thread as thread 在查找资料时,看到了: import websocket try: import thread except ImportError: import _thread as thread2019-07-2916
- 干布球第二段代码少了个import time,python3里面thread用import _thread,不知是不是这样?2019-07-2918