2. 行情规则体系:行情规则分类与规则变更的典型场景
行情规则是量化交易系统的数据基石,决定了行情数据的生成逻辑、推送频率与数据格式。本章从规则分类与变更场景两个维度,建立对行情规则体系的完整认知。
2.1 行情规则分类
根据数据生成方式与业务用途,行情规则可分为四大类:
| 规则类别 | 核心定义 | 典型字段 | 更新频率 |
|---|---|---|---|
| 行情快照 | 某一时刻市场全量挂单与成交统计的截面数据 | 最新价、涨跌幅、买一至买五价量、卖一至卖五价量 | 固定间隔(如 3 秒/次)或事件触发 |
| 逐笔成交 | 每一笔实际成交的明细记录 | 成交时间、成交价、成交量、成交方向、成交编号 | 实时(每笔成交即推送) |
| 逐笔委托 | 每一笔订单进入交易主机的原始委托记录 | 委托时间、委托价、委托量、委托方向、委托类型 | 实时(每笔委托即推送) |
| 指数计算 | 根据成分股价格与权重公式实时计算的指数值 | 指数代码、当前点位、涨跌点数、涨跌幅、成分股贡献度 | 实时(成分股价格变动触发重算) |
关键认知: 行情快照是“截面”,逐笔成交与逐笔委托是“流水”,指数计算是“衍生”。量化策略对三类数据的依赖程度不同:高频策略依赖逐笔数据,中低频策略依赖快照与指数。
2.2 规则变更的典型场景
行情规则并非一成不变。交易所升级、业务逻辑调整、监管要求变化都会触发规则变更。以下是两类最常见的变更场景:
2.2.1 交易所升级
交易所对交易系统的升级通常涉及行情协议、数据格式或推送机制的变更。典型变更包括:
- 协议版本升级: 如从 STEP 1.0 升级到 STEP 2.0,消息头长度、校验方式发生变化。
- 字段扩展: 在行情快照中新增“盘后固定价格交易”相关字段,或逐笔成交中增加“成交类型”标识。
- 推送频率调整: 快照推送间隔从 3 秒缩短为 1 秒,或逐笔委托的推送优先级发生变化。
- 指数计算规则变更: 成分股调整、权重计算方法变更、除权除息处理逻辑更新。
案例: 某交易所将逐笔成交消息中的“成交金额”字段从 int32 升级为 int64,以支持单笔大额成交的精确表示。若行情系统未及时适配,将导致金额溢出或解析错误。
2.2.2 业务逻辑调整
业务逻辑调整通常由市场规则变化或产品迭代驱动,不涉及底层协议,但影响行情数据的生成逻辑:
- 涨跌停板规则调整: 主板股票涨跌幅限制从 10% 调整为 20%,行情快照中的“涨停价”“跌停价”计算逻辑随之变更。
- 临时停牌处理: 新增盘中临时停牌期间的行情展示规则(如仅展示集合竞价阶段数据)。
- 指数样本调整: 定期调样或临时调样后,指数计算需立即切换至新成分股列表。
- 行情数据脱敏: 对逐笔委托中的部分字段(如会员代码)进行脱敏处理,影响下游数据消费。
2.3 行情规则变更的影响链路
一次规则变更会沿数据链路逐级传导,影响行情接入、解析、计算、分发与存储等环节。下图展示了规则变更的典型影响范围:
2.4 规则变更的灰度发布策略
为降低规则变更对生产环境的影响,灰度发布是行业最佳实践。核心策略包括:
- 按市场/品种灰度: 先在非活跃品种或测试环境验证,再逐步推广至全市场。
- 按用户分组灰度: 对部分订阅用户推送新规则行情,其余用户保持旧规则,通过对比验证正确性。
- 按时间窗口灰度: 在非交易时段(如盘后测试)先行部署,观察无异常后再于盘中切换。
- 双轨并行: 新旧规则同时运行,下游消费端通过配置开关选择使用哪套规则,便于快速回退。
注意: 灰度发布期间必须建立完善的监控与回退机制。一旦发现数据异常(如字段解析错误、指数计算偏差超过阈值),应立即触发自动回退,将行情消费切回旧规则。
2.5 规则变更的验证清单
每次规则变更上线前,建议按以下清单逐项验证:
| 验证项 | 验证内容 | 通过标准 |
|---|---|---|
| 协议兼容性 | 新旧协议版本能否同时解析 | 无解析异常,字段映射正确 |
| 字段完整性 | 新增/修改字段是否正常填充 | 字段值在预期范围内,无空值 |
| 计算准确性 | 指数、衍生指标计算结果 | 与交易所官方数据偏差 < 0.001% |
| 性能基准 | 行情处理延迟、吞吐量 | P99 延迟 < 10ms,吞吐量满足峰值需求 |
| 回退能力 | 灰度期间能否快速切回旧规则 | 回退时间 < 30 秒,数据不丢失 |
通过系统化的规则分类与变更管理,量化交易系统能够在交易所升级与业务调整中保持稳定、可靠的数据服务,为上层策略提供高质量的行情输入。