2. Level2 行情数据源与接口:主流数据提供商、API接口类型、数据订阅流程

在 Level2 行情实战中,理解数据从哪来、通过什么接口取、按什么流程订阅,是搭建稳定行情链路的基础。本章从数据源、接口协议、订阅流程三个维度进行拆解,帮助学员建立清晰的行情接入全景图。

2.1 主流数据提供商及其定位

Level2 行情数据的源头由交易所授权,经过不同角色的数据商分发至终端用户。根据数据流转层级,可将提供商分为四类:

提供商类型 代表机构 数据范围 典型用户
交易所 上交所、深交所 全量 Level2 原始数据 授权数据商、券商
券商 中信、华泰、国泰君安等 交易所转发 + 自营加工 内部交易系统、量化客户
第三方数据商 万得、东方财富、通联数据、聚宽 交易所授权 + 衍生指标 基金、私募、个人投资者
云服务/量化平台 腾讯云、阿里云、掘金量化 聚合转发 + 云端 API 量化策略、程序化交易
实战提示: 交易所直连延迟最低(微秒级),但准入门槛高、费用昂贵;第三方数据商提供封装好的 API 和衍生指标,适合多数量化团队;券商接口通常绑定交易通道,适合自营或机构客户。

2.2 API 接口类型对比

Level2 行情接口按通信协议和传输模式分为三种主流类型:TCP、WebSocket、RESTful。三者在实时性、连接方式、适用场景上差异明显。

特性 TCP WebSocket RESTful
连接模式 长连接,全双工 长连接,全双工 短连接,请求-响应
实时性 极高(微秒级推送) 高(毫秒级推送) 低(轮询,秒级)
数据格式 二进制协议(如 STEP、Binary) JSON / Protobuf JSON / XML
适用场景 高频交易、极速行情 实时监控、量化策略 历史查询、非实时分析
典型端口 交易所行情网关 ws://host:port/path https://host/api/v1/...
避坑提醒: 部分第三方数据商将 WebSocket 包装为“实时行情”,但实际内部仍通过 TCP 从交易所接收后再转发,存在额外延迟。选择接口时务必确认数据源到终端的全链路延迟指标。

2.3 数据订阅流程(标准步骤)

无论使用哪种接口,Level2 行情订阅通常遵循以下五个步骤。下面以 WebSocket 接口为例展示完整流程。

  1. 认证与鉴权:使用 API Key + Secret 或 Token 建立连接,部分券商要求绑定交易账号。
  2. 订阅请求:发送订阅消息,指定股票代码(如 600519.SH)、数据类型(逐笔成交、十档行情、委托队列等)。
  3. 数据推送:服务端持续推送实时行情数据,客户端需维护心跳保活。
  4. 数据解析:按协议格式(JSON / 二进制)解析字段,映射到本地数据结构。
  5. 异常重连:检测连接断开或超时,自动重连并重新订阅,保证数据连续性。
代码示例:WebSocket 订阅 Level2 行情(Python 伪代码)
import websocket
import json

# 1. 认证与鉴权
API_KEY = "your_api_key"
TOKEN = "your_token"

def on_message(ws, message):
    # 4. 数据解析
    data = json.loads(message)
    print(f"逐笔成交: {data['ticker']} 价格: {data['price']} 量: {data['volume']}")

def on_error(ws, error):
    print(f"连接异常: {error}")
    # 5. 异常重连逻辑

def on_close(ws, close_status_code, close_msg):
    print("连接关闭,准备重连...")
    # 5. 自动重连

def on_open(ws):
    # 2. 订阅请求
    subscribe_msg = {
        "action": "subscribe",
        "type": "level2_tick",
        "symbols": ["600519.SH", "000001.SZ"]
    }
    ws.send(json.dumps(subscribe_msg))
    print("订阅请求已发送")

# 3. 建立连接并开始推送
ws = websocket.WebSocketApp("wss://quote.example.com/v1/level2",
                            on_open=on_open,
                            on_message=on_message,
                            on_error=on_error,
                            on_close=on_close)
ws.run_forever()

2.4 数据源与接口架构总览

下图展示了从交易所到终端用户的完整数据流转链路,以及各环节使用的接口类型。

Level2 行情数据源与接口架构 上交所 SSE TCP / STEP 协议 深交所 SZSE TCP / Binary 协议 行情网关 券商内部系统 TCP / 内部 RPC 第三方数据商 万得 / 东方财富 / 通联 机构 / 量化终端 WebSocket / RESTful 个人 / 策略平台 WebSocket / RESTful 说明: • 交易所直连使用 TCP 二进制协议,延迟最低,适合高频交易。 • 第三方数据商提供 WebSocket / RESTful 接口,降低接入门槛。 • 终端用户根据延迟要求和开发成本选择对应接口类型。

2.5 接口选型决策要点

在实际项目中选择接口时,建议从以下四个维度评估:

  • 延迟要求:高频策略(<1ms)必须选 TCP 直连;中频策略(10-100ms)可选 WebSocket;低频或回测场景 RESTful 即可。
  • 数据完整性:TCP 和 WebSocket 支持全量推送,不易丢数据;RESTful 轮询可能错过中间状态。
  • 开发成本:TCP 需要处理二进制协议和连接管理,开发周期长;WebSocket 有成熟客户端库;RESTful 最简单。
  • 合规与授权:交易所直连需申请牌照;第三方数据商需购买授权;券商接口通常绑定交易权限。
实战建议: 对于大多数量化团队,推荐以 WebSocket 作为主力实时行情接口,配合 RESTful 做历史数据补全和盘后分析。仅在极速交易场景下考虑 TCP 直连方案。