websocket股票行情接口

股票行情区别

交易所出来的数据,不管通过什么渠道,延时一般都不会差太远,估计一般也就几十ms的差别。

但是如果是通过http轮询,不太可能几十ms全部轮询一次。所以,做量化的话,用http协议是最次的选择。

能找到的数据提供商,对照着大智慧的行情测试,大部分挂着websocket名头的数据源,数据速度也都是http轮询级别的,只不过换成推送的方式而已。

level2行情

level1行情3秒一刷新,大部分所谓提供websocket基础行情的数据源,速度落后一般券商至少1秒,那跟轮询也差不多了。

要想策略足够灵敏,数据源速度是很重要的。至少大家用相同级别的数据,你的反应速度要排在前边,同质化策略不至于跑输大部队。

如果是level2级别的行情,大批量订阅,接收处理能力是个坎。所以我一般用level1数据做筛选,每天触发几十个票再订阅level2,还是能处理得过来的。

websocket行情接入代码

贴个python源码,其他语言可以参考官方文档 行情交易接口用户文档:

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()
相关推荐
2021_fc1 天前
WebSocket技术分享
网络·websocket·网络协议
宁雨桥1 天前
WebSocket 完全指南:从原理到实战,搭建实时通信桥梁
网络·websocket·网络协议
喜欢吃豆1 天前
llama.cpp 全方位技术指南:从底层原理到实战部署
人工智能·语言模型·大模型·llama·量化·llama.cpp
C2H5OH6661 天前
WebSocket-练习1
网络·websocket·网络协议
狂奔的sherry1 天前
Socket vs WebSocket
网络·websocket·网络协议
宁雨桥2 天前
WebSocket 核心 API 速查表
网络·websocket·网络协议
一叶飘零_sweeeet2 天前
Java 项目 HTTP+WebSocket 统一权限控制实战
java·websocket·http·权限控制
wydaicls3 天前
C语言完成Socket通信
c语言·网络·websocket
CDwenhuohuo3 天前
WebSocket 前端node启用ws调试
前端·websocket·网络协议
yeapT4 天前
网络传输协议的介绍——SSE
网络·websocket·http