股票行情接口,接入方法对比

Websocket和Http接入方式区别

股票行情数据对投资者和交易员而言极其重要。借助股票行情接口,能够便捷获取实时股票行情数据,从而及时做出决策。股票行情接口通常分为两种,分别是 WebSocket 和 http。

通过 WebSocket 能够获取逐笔的股票 tick 数据,具备实时性且高效;而通过 http 接口则可以获取股票行情接口中的股票历史数据。

例如采用Http轮询的方式获取行情,假设最低每100ms请求一次服务器,在并发获取多个股票数据时可能会发生请求超时,或者服务器拒绝响应。

获取到行情发生变化的最低响应时间为100ms,0.1秒的时延已经跑输大部分对手盘。

所以,Http接口轮询方式并不适合低延时行情获取的场景。Websocket协议转发交易所的实时行情延时几乎可以忽略不计,是做实时量化的必用方式。

Websocket行情接入方法

PYTHON 示例代码

#!python3
# -*- coding:utf-8 -*-
import time
import websocket
import zlib


# 发送订阅
def on_open(ws):
    ws.send("all=lv2_600519,lv1_000001")


# 接收推送
def on_message(ws, message, type, flag):
    # 命令返回文本消息
    if type == websocket.ABNF.OPCODE_TEXT:
        print(time.strftime('%H:%M:%S', time.localtime(time.time())), "Text响应:", message)
    # 行情推送压缩二进制消息,在此解压缩
    if type == websocket.ABNF.OPCODE_BINARY:
        rb = zlib.decompress(message, -zlib.MAX_WBITS)
        print(time.strftime('%H:%M:%S', time.localtime(time.time())), "Binary响应:", rb.decode("utf-8"))


def on_error(ws, error):
    print(error)


def on_close(ws, code, msg):
    print(time.strftime('%H:%M:%S', time.localtime(time.time())), "连接已断开")


wsUrl = "ws://<服务器地址>?token=<jvQuant token>"
ws = websocket.WebSocketApp(wsUrl,
                            on_open=on_open,
                            on_data=on_message,
                            on_error=on_error,
                            on_close=on_close)
ws.run_forever()

JAVA/C++/Golang/PHP

 更多示例代码:GitHub - jvQuant/OpenAPIDemo

猜你喜欢

转载自blog.csdn.net/FuckTheWindows/article/details/140525956