1. 市场数据基础
1.1 市场数据定义
市场数据(Market Data)是指从交易所、交易平台或第三方数据供应商实时或批量获取的、与金融工具交易相关的全部信息集合。它是交易系统运行的“血液”,任何一笔交易决策、风险计算或行情展示都离不开准确、低延迟的市场数据。
核心特征: 时效性(微秒级)、完整性(全量快照+增量)、准确性(无丢包、无错单)、可追溯性(历史回放)。
1.2 实时行情与历史数据
市场数据按时间维度分为两大类,其用途和技术处理方式截然不同:
| 维度 | 实时行情(Real-Time) | 历史数据(Historical) |
|---|---|---|
| 定义 | 当前时刻正在产生的逐笔成交、订单簿快照、指数计算值 | 过去某一时间段的已发生行情记录,包括Tick级、分钟级、日线级 |
| 延迟要求 | 微秒~毫秒级,直接影响交易策略执行 | 无实时要求,但回放速度需匹配策略回测精度 |
| 数据量 | 高并发、高吞吐(单品种可达数万笔/秒) | 海量存储(PB级),需压缩与索引优化 |
| 典型用途 | 算法交易、做市、高频交易、实时风控 | 策略回测、因子挖掘、监管审计、绩效归因 |
| 技术栈 | 低延迟网络(Solarflare/DPDK)、内存数据库、FPGA解析 | 分布式文件系统(HDFS/Parquet)、时序数据库(ClickHouse/InfluxDB) |
架构提示: 灰度发布期间,实时行情管道通常先切换“观察者模式”(只订阅不交易),待数据质量验证通过后再切换“交易模式”。历史数据则用于灰度前后的对比校验。
1.3 Level1 与 Level2 数据
Level1(L1)和 Level2(L2)是市场数据深度的核心分级,直接影响交易系统的信息优势:
- Level1(行情快照):包含五档买卖盘口、最新成交价、涨跌幅、成交量、换手率等聚合信息。数据量小,适合普通投资者和基础行情展示。
- Level2(深度行情):包含全量订单簿(通常10档~50档)、逐笔成交明细(每笔交易的买方/卖方席位、成交时间戳)、委托队列(买一/卖一前50笔挂单明细)。数据量是L1的10~100倍,是量化交易和高频交易的核心数据源。
| 对比项 | Level1 | Level2 |
|---|---|---|
| 数据深度 | 5档买卖盘口 | 10~50档全量订单簿 |
| 逐笔成交 | 无(仅聚合统计) | 有(含买方/卖方标识) |
| 委托队列 | 无 | 有(买一/卖一前50笔) |
| 带宽消耗 | 低(约10~50 Kbps/品种) | 高(约1~10 Mbps/品种) |
| 典型用户 | 散户、财富管理终端 | 机构、做市商、量化基金 |
| 灰度发布关注点 | 快照一致性、延迟抖动 | 逐笔还原正确性、全量订单簿重建 |
1.4 市场数据在交易系统中的核心作用
市场数据不是孤立的数据流,它贯穿交易系统的每一个关键环节。以下从交易生命周期角度梳理其核心作用:
- 策略信号生成:基于L2逐笔成交和订单簿变化,计算微观结构因子(如订单簿斜率、成交集中度),触发买卖信号。
- 订单执行优化:实时盘口数据用于拆单算法(TWAP/VWAP/Iceberg),避免市场冲击;L2委托队列用于预测短期价格方向。
- 实时风险控制:行情快照驱动最大回撤、敞口、杠杆率等风控指标计算,任何行情延迟或中断都可能导致风控失效。
- 事后分析与归因:历史Tick数据用于策略回测、滑点分析、交易成本(TCA)计算,是策略迭代的基础。
- 监管合规:交易所和监管机构要求完整记录逐笔行情,用于市场操纵监测和异常交易回溯。
灰度发布关键风险: 市场数据管道切换期间,如果出现数据空洞(gap)或重复(duplicate),可能导致策略误交易或风控误报。灰度方案必须包含“数据连续性校验”和“自动回滚触发器”。
1.5 市场数据灰度发布的特殊挑战
相比普通业务系统灰度,市场数据灰度发布面临以下独特挑战:
- 时序一致性:多路行情源(主/备、L1/L2)必须保证时间戳对齐,否则策略会看到“未来数据”或“过去数据”。
- 全量重建:L2订单簿需要从快照+增量日志完整重建,灰度切换时若重建逻辑有误,会导致订单簿错位。
- 带宽与延迟预算:灰度期间新旧两套管道同时运行,带宽消耗翻倍,必须提前压测网络和CPU容量。
- 回滚原子性:行情管道回滚不是简单的“切回旧版本”,需要同时回滚数据缓存、策略状态和风控指标,否则会造成状态不一致。
最佳实践: 建议在灰度发布前搭建“市场数据仿真实验室”,使用历史数据回放模拟灰度切换场景,提前发现订单簿重建、时间戳对齐等潜在问题。仿真通过后再进入真实灰度环境。