行情监控断线后,先别急着恢复策略:这张6项检查卡,专查数据

用户头像sh_*599ojc
2026-06-12 发布

行情监控程序断线了。做过实盘或仿真的人对这一幕都不陌生。网络抖动、交易所维护、程序异常——原因可以列一长串,但多数人的第一反应高度一致:重连成功,数据回来,策略接着跑。

问题恰恰出在这里。重连成功不等于数据连续。 断线窗口内可能已经发生过一轮完整波动,而重连后涌入的第一条数据,可能与断线前的最后一条之间存在跳跃、重叠或空洞。不经检查就直接恢复策略,等于让策略在一条被撕裂过的数据流上继续做决策。

本文不讨论策略该如何写,也不讨论断线后是否该平仓。本文只交付一件事:一张断线窗口审计卡,让你在恢复策略前,用六项检查确认数据流是否真的愈合了。


断线恢复需要的不是重连,是三个确认

重连解决网络层的问题,应用层还要再确认三件事:

  1. 当前状态是否已校准——策略手里那张“地图”,是断线前的旧快照,还是重连后的最新行情?
  2. 空窗是否被标记——断线期间的数据空洞,是被明确记录下来了,还是在复盘时被误读为“没有波动的安静时间”?
  3. 回补数据是否清楚自己的粒度上限——K 线能告诉你这一分钟的开盘价和收盘价,但不能还原逐笔过程。策略需要的精度,回补数据给不给得了?

这三项确认合在一起,才是应用层对“断线恢复”的完整回答。缺任何一项,策略都可能在一根你以为完整、实际存在裂痕的管道上运行——这些裂痕不会立刻报错,它们会安静地污染信号、回测和复盘结论,直到很久之后你才发现,有些异常信号不是策略的问题,而是数据根本没对齐。


断线窗口审计卡

以下六项检查,建议在每次断线恢复后、策略恢复前逐条核验。

检查项 查什么 常见错误 最小修正
① 断线起止时间 断线发生和重连成功的时间是否已精确记录 日志里只写了“连接断开”,没有时间戳,事后无法确定窗口长度 断线事件触发时立即记录系统时间戳;重连成功后再记一条。差值就是你策略“在黑暗中运行”的时间窗口
② 当前状态校准 策略恢复后第一条行情数据是来自内存缓存,还是从数据源重新拉取的最新状态 沿用断线前的最后一笔缓存价格继续计算信号,断线期间价格已大幅变化却不自知 重连后显式拉取一次当前快照,覆盖内存状态,作为策略恢复的起点
③ 空窗区间标记 断线起止之间,数据流里是否有明确的占位标记表示“此处无数据” 重连后数据直接接上新推送,中间不留任何痕迹;复盘时空窗被误读为平静期 在数据流中显式插入空窗标记,包含起止时间和标记类型,让下游程序能识别不可靠区间
④ K线/聚合数据粒度 回补的K线或聚合数据时间粒度是多少,对策略是否足够 用1分钟K线回补断线缺口,直接当成数据已补齐并继续高频信号分析 明确记录回补数据的类型和粒度;K线不能恢复逐笔,聚合数据只能做有限回补。若策略需要逐笔精度,这部分信号就是不可恢复的
⑤ 异动先查数据健康 重连后检测到价格跳空或成交量异常时,第一步是区分“市场异动”还是“数据断线造成” 断线恢复后第一根K线显示价格变化,直接触发异动告警,实际可能是时间戳偏差或重复推送 在异动判断逻辑中加一层数据健康检查:对重连后前N条数据先检查时间戳连续性、重复性、与当前快照的一致性
⑥ 审计日志留存 断线事件、重连动作、校准操作、空窗标记、回补数据来源与粒度是否完整记录 手动重启策略后没有留存原始输入和处理动作,事后无法复现异常信号的原因 审计日志至少保留原始输入和处理动作,确保任何排查都有据可查

一个可复核的分工框架

把断线恢复拆成三个动作,对应三种数据形态的分工——这不是产品功能清单,而是帮你理清什么能补、什么不能补的工程框架:

  • 当前状态校准 → 用快照。重连后第一时间拉取最新 ticker,覆盖过期状态,回答“策略现在站在哪里”。
  • 有限历史回补 → 用 K 线。填补聚合数据缺口,但需明确粒度限制:1分钟K线只能还原四个点,不能恢复逐笔过程。
  • 持续更新恢复 → 用推流。流恢复后继续接收实时数据,但前几条推送需额外检查时间戳连续性和价格吻合度。

以 TickDB 为例,上述三个动作恰好对应它的 REST、K 线和 WebSocket 三种接入方式。同一个行情数据源内部就完成了当前校准、历史回补和实时恢复的分工,研究者不需要在三个不同的数据接口之间切换和对照字段定义。这减少的不是代码量,而是在排查“断线到底影响了什么”时的复杂度——你只需要在一套一致的字段体系下检查时间戳连续性和价格跳空,而不是先花时间搞清楚不同接口之间的字段语义差异。

但这一框架存在明确的能力边界:K 线不能恢复逐笔,聚合数据不能替代丢失的原始推送,重连成功不等于数据连续。 timestamp 字段记录的是事件发生时间,不等于延迟、新鲜度、采样频率或任何形式的 SLA。


本文不讨论什么

本文仅讨论行情监控断线后的数据连续性核验与工程治理方法,不涉及任何策略盈亏、交易信号准确性、断线后是否应平仓或持仓,也不涉及竞品对比、延迟数据或性能承诺。


可保存的断线窗口审计卡

  1. 断线起止时间是否已记录。
  2. 重连后当前状态是否重新校准。
  3. 空窗区间是否明确标记。
  4. 使用 K 线或历史聚合数据时,是否明确粒度限制。
  5. 异动判断是否先检查数据健康。
  6. 审计日志是否保留原始输入和处理动作。

下次行情监控断线后、恢复策略前,先拿出这张卡,逐条过一遍。断线不可怕,可怕的是你以为数据还完整,策略还在一条没有裂缝的管道上跑。


声明:本文仅讨论量化策略的数据监控与工程治理方法,不构成任何投资建议。文中不包含对任何策略有效性的评价,不推荐任何具体证券或交易方向,不对未来收益做任何暗示。所有接口描述仅为说明数据恢复的工程分工,不代表特定产品的功能承诺。


评论