行情数据校验器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_15292d5a/yjkj-market-data-checker
技能介绍
每天的行情数据并不总是干净的
每天生成的 market_data.json 往往夹带各类缺陷:必填字段缺失、数值列混入 NaN 或 Infinity、价格突破常识边界、文本里残留 N/A 或 HTML 标签。若直接流入下游,脏数据会引发错误计算甚至任务崩溃。
技能如何工作
market-data-checker 把 10 类校验规则压进一道关卡,输出结构化的 CheckResult:
- 阻断级强校验:
NonNullChecker与NumberChecker强制顶层分类和price等必填字段非空,数值字段拒绝NaN/Inf,price/change/volume必须通过类型与范围双重契约。 - 业务级告警:
RangeChecker内置道指、标普500、COMEX黄金、WTI原油、USD/CNY 等主流品种的合理区间;DirectionChecker校验黄金与美元指数的反向关系或 A 股指数的同向性;DirtyChecker清理{{}}、HTML实体及控制字符。 - 容错机制:文件缺失或解析失败时自动重试 3 次;连续 3 项失败即终止流水线并发送告警邮件。
适用边界与扩展注意
内置 range 与 direction 规则基于常见市场假设。若交易品种不在其中,需在 validators/ 下新建 xxx_check.py,继承 CheckResult 并实现 check(data: dict),再注册到 check_data.py 的 checkers 列表。告警邮件依赖 SMTP 配置,缺失时终止逻辑只能停留在本地日志。
使用场景
- 每日开盘前对生成的 `market_data.json` 跑一遍十类规则校验,确认通过后再推送给下游消费方
- 交易系统定时任务抓到行情 JSON 后,先校验数值字段是否混入 `NaN` 或无穷大,再入库
- 管道连续三次解析失败时,自动终止链路并发告警邮件,通知值班人员排查数据源
- 新增交易品种后,在 `validators/` 下扩展 RangeChecker 规则,为该品种配置价格与涨跌幅合理区间
适合人员
- 量化开发工程师,需要确保写入数据库的行情 JSON 无脏数据,避免下游计算被 `NaN` 污染
- 数据管道维护者,负责行情抓取任务,希望文件缺失或解析失败时有自动重试和告警兜底
- 交易策略研究员,关心黄金与美元指数的涨跌方向是否自洽,担心上游数据错位导致策略误判
- 金融数据平台后端工程师,需要在新增交易品种时快速扩展校验规则而不改动主流程