股票价格实时预警系统:iTick WebSocket + 规则引擎 + 通知(可上线)

股票价格实时预警系统:iTick WebSocket + 规则引擎 + 通知(可上线)

2026年4月17日10 分钟阅读11,337 次阅读
#iTick#预警系统#WebSocket#风控#通知

一、先把目标说清:预警不是“发消息”,而是“可解释的事件系统”

把价格预警做成可上线系统,关键不在于能不能订阅到行情,而在于两件事:第一,系统在断线、抖动、补洞时仍能自证“没有静默漏报”;第二,每一次触发都能解释清楚“触发依据、使用口径、是否被抑制”。只有把预警当作一套事件系统来做,你才不会在震荡行情刷屏、在异常时刻沉默、在复盘时说不清。

二、统一数据合同:让上下游只认识一种 Tick 口径

先在 ingestion 层固化一份内部合同,下游所有规则和通知只消费这份合同:symbol 推荐 REGION:CODE,ts 统一 UTC 毫秒;price 明确是 last 还是 mid;缺失字段保持空值但触发解释必须说明;同时在 ingestion 层统一做完整性与合理性校验(时间戳递增、价格为正、异常跳点)。这一步看似繁琐,但能把“口径漂移”这种隐性故障压到最低。

三、连接层要能跑三个月:鉴权、心跳、重连与降级是一个整体

WebSocket 链路要按状态管理(Disconnected/Connecting/Streaming),并把重连当作必然事件而不是异常分支。重连策略建议指数退避+抖动,并在连续失败时自动降级订阅:先保留核心标的,暂停长尾;当下游积压上升时先聚合与降频,再考虑扩容。连接层要输出最小指标:最近一次消息时间、重连次数、订阅数、消息速率与队列积压,这些指标决定了你能否在无人值守时及时发现“看起来在跑其实已失真”的状态。

四、补洞与对账:承认断线,并能证明补得对

实盘里断线不可避免,预警系统的底线是“断了能识别缺口、补了能对账”。缺口识别可以基于心跳超时、ts 不连续或序列号(若上游提供)。补洞建议走 REST:拉缺口起止快照,必要时拉分钟线/逐笔来恢复关键变化;补洞行为本身要记录成事件,避免事后无法解释“这次触发来自实时还是补洞”。对账则是定时将内存 last price 与 REST 快照对比,差异超过阈值时把后续触发标记为“可信度下降”,并触发链路告警而不是继续静默运行。

五、规则建模:把“触发”“抑制”“冷却”“解释”写成四件事

一条能长期运行的规则不应只有 trigger。你至少要显式写出:触发条件(例如阈值、穿越、持续)、抑制条件(盘前盘后过滤、成交量过滤、必须持续 N 秒、必须从未触发区间进入)、冷却时间(避免震荡刷屏)以及解释模板(本次使用的参数、关键字段值、为何未被抑制)。当解释存在,运营与复盘都会从“猜规则”变成“读证据”。

六、规则执行引擎:状态机 + 去重键,解决穿越与重复通知

穿越类与持续类规则建议用状态机表达:Normal→Armed→Fired→Cooldown。这样你能清楚地区分“首次穿越”与“阈值附近来回抖动”。同时用稳定的 eventId 去重,避免补洞与实时重复触发:常用做法是 symbol+ruleId+触发窗口(按分钟或更细粒度取整)+方向。eventId 相同就更新证据链但不重复通知,用户看到的是“同一事件的更多证据”,而不是两条互相矛盾的提醒。

七、通知层要可运营:优先级、聚合与静默窗口

把通知分级是体验的分水岭:高优先级走即时渠道并要求送达回执,中优先级允许聚合后推送,低优先级只入库做日报。聚合不是简单拼接,而是把同一时间段内同一标的的多条触发合成一条“变化摘要”,并附上证据链链接。静默窗口则保证非交易时段不被低价值信息打扰,只保留高优先级或风控级事件。

八、证据链与发布:每个事件可追溯,每次改规则可回滚

每次触发至少要保存三类证据:触发时行情快照(price/ts/source)、使用的规则版本与参数、以及当时连接状态(是否断线、是否补洞、是否降级订阅)。规则配置必须版本化并支持灰度与一键回滚:同一 ruleId 不变,version 递增;触发事件记录 version,才能在触发量异常时迅速定位是“市场变了”还是“规则改坏了”。

九、最小上线验收:用四类用例证明系统可信

上线前不追求覆盖所有边界,但至少跑通四类用例并能用指标解释结果:正常推送稳定性;阈值附近震荡下的抑制与冷却;主动断网后的自动重连、缺口识别与补洞;补洞后与 REST 快照对账一致。只要这四类成立,预警系统就具备“可长期运行”的底线。

为了避免“验收通过但上线失真”,建议同时给出最小运行目标并写进监控:例如端到端延迟的 P95 上限、断线自动恢复的最长时间、补洞允许的最大缺口长度、以及通知成功率阈值。把这些目标固化后,系统的好坏就不靠主观感受,而靠可持续的数字。

十、常见坑与结语:盘前盘后、复权口径、停牌与数据停滞

最常见的三类坑分别是:盘前盘后导致误触发、公司行为造成未复权价格跃迁、停牌与数据停滞被误判为“价格稳定”。解决思路不是在某条规则里打补丁,而是把 session 过滤、公司行为日策略与“数据新鲜度”校验做成底座能力。把这些基础能力补齐后,你的预警系统就不只是一个提醒工具,而是一条可以复用到策略与风控里的生产链路。