3. Level2 行情数据源:交易所授权数据、第三方数据商与 API
Level2 行情数据的获取是量化策略开发的起点。不同数据源在延迟、字段完整性、历史回溯深度、合规授权与成本上存在显著差异。本章系统梳理三大主流数据源路径,帮助策略开发者根据自身场景做出合理选择。
3.1 数据源全景对比
| 数据源类型 | 典型代表 | 数据延迟 | 历史数据深度 | 合规授权 | 成本 |
|---|---|---|---|---|---|
| 交易所授权数据 | 上交所 L1/L2、深交所 L1/L2 | 实时(毫秒级) | 仅实时,无历史 | 需交易所授权 | 高(年费 + 席位费) |
| 第三方数据商 | 万得、聚宽、通联数据 | 准实时(秒级) | 5-10 年 Tick 级 | 数据商统一授权 | 中(按年/按量) |
| 数据接口与 API | CTP、XTP、UFT、MDGW | 实时(微秒级) | 有限(通常仅当日) | 需期货/券商柜台 | 低(按流量/免费) |
关键判断: 策略回测依赖第三方数据商的历史 Tick 库;实盘交易依赖 API 接口的低延迟推送;交易所授权数据主要用于合规展示与深度盘口分析。
3.2 交易所授权数据
上海证券交易所与深圳证券交易所分别提供 Level1(3 秒快照)与 Level2(逐笔成交 + 十档行情)数据。获取方式包括:
- 上证信息公司:提供 SSE Level2 行情授权,需申请专线或 VPN 接入。
- 深证信息公司:提供 SZSE Level2 行情授权,支持 MDGW 协议接入。
- 数据内容:逐笔成交、逐笔委托、十档买卖盘、加权平均委买委卖、总买总卖等。
- 限制:不提供历史数据存储,仅实时推送;需自行搭建接收与存储系统。
实践建议: 交易所授权数据适合机构级高频策略,需配备专用服务器、低延迟网卡与行情解码库。个人开发者通常不直接申请交易所授权,而是通过第三方数据商间接获取。
3.3 第三方数据商
第三方数据商是量化策略回测与研究的核心数据来源。它们从交易所获取原始数据后,进行清洗、对齐、存储并提供 API 或文件下载。
| 数据商 | Level2 覆盖 | 历史 Tick 深度 | 获取方式 | 典型用户 |
|---|---|---|---|---|
| 万得 (Wind) | 沪深全量 | 2010 年起 | Wind 终端 / API | 券商、基金、私募 |
| 聚宽 (JoinQuant) | 沪深全量 | 2013 年起 | JQData API / 本地下载 | 个人量化、中小私募 |
| 通联数据 (DataYes) | 沪深全量 | 2010 年起 | REST API / Python SDK | 量化研究、资管 |
| RiceQuant | 沪深全量 | 2014 年起 | RQData API | 个人、教育 |
注意: 不同数据商对同一只股票同一时刻的 Tick 数据可能存在毫秒级时间戳差异,回测时需统一对齐。建议在回测框架中内置数据源适配层,避免硬编码。
3.4 数据接口与 API
实盘交易场景下,策略需要通过 API 接口直接接收交易所行情。主流接口包括:
- CTP(综合交易平台):上期所旗下,支持期货与期权 Level2 行情,C++ API,延迟极低。
- XTP(极速交易平台):中泰证券出品,支持 A 股 Level2 行情,C++/Java API。
- UFT(统一快速交易平台):华泰证券,支持沪深 Level2,低延迟架构。
- MDGW(行情数据网关):深交所官方行情网关,支持 Level2 逐笔数据。
// CTP 行情订阅示例(伪代码)
CThostFtdcMdApi* pMdApi = CThostFtdcMdApi::CreateFtdcMdApi();
pMdApi->RegisterSpi(&g_MdSpi);
pMdApi->RegisterFront("tcp://180.168.146.187:10010");
pMdApi->Init();
// 订阅合约
char* ppInstrumentID[] = {"600519.SH", "000001.SZ"};
pMdApi->SubscribeMarketData(ppInstrumentID, 2);
API 选择原则: 高频策略优先选择 C++ API(CTP/XTP);中低频策略可使用 Python 封装版(如 vnpy、xtquant);回测研究优先使用第三方数据商的 Python SDK。
3.5 数据源架构关系
下图展示了从交易所原始数据到策略终端的完整数据流转路径,以及三类数据源在其中的位置与作用。
3.6 数据源选择决策流程
根据策略类型与资源条件,推荐以下选择路径:
- 回测研究阶段:优先选择第三方数据商(聚宽/通联),获取 5-10 年历史 Tick 数据,使用 Python SDK 快速验证策略。
- 模拟交易阶段:使用第三方数据商的准实时 API 或券商提供的模拟行情接口,验证策略在准实时环境下的表现。
- 实盘交易阶段:根据策略频率选择:
- 中低频(分钟级):第三方数据商实时推送 + 券商交易 API。
- 高频(秒级/毫秒级):CTP/XTP/UFT 等低延迟 API,搭配本地行情解码与存储。
- 合规展示:交易所授权数据用于生成合规的十档盘口、逐笔成交展示页面。
最佳实践: 建议在策略框架中设计数据源抽象层,将数据获取与策略逻辑解耦。这样可以在回测时使用第三方数据商,实盘时无缝切换为 API 接口,无需修改策略核心代码。