程序员量化交易实战 30:生成每日运行健康报告
程序员量化交易实战 30:生成每日运行健康报告
古董级程序员,大厂出来后一直在创业公司,现在仍活跃在一线做 AI 相关的开发。这个专栏会把一个 A 股量化平台从 0 到 1 拆开写:数据、策略、回测、模拟盘、提醒和生产化,尽量用真实代码和真实运行结果说话。更完整的更新也会同步到微信公众号「字与码」。
第 26-29 篇补了提醒通道、文件发送、价格源和目标权重策略。
第 30 篇做一个阶段收口:把价格缺失、生产检查和提醒回执汇总成每日运行健康报告。

健康报告看什么
健康报告不评价策略好坏。
它只回答一个工程问题:今天这次模拟盘运行是否健康?

当前判断包括:
- 价格快照是否有缺失 symbol。
- 输入生产检查是否有问题。
- 输出生产检查是否有问题。
- 通知回执是否接收成功。
报告对象
第 30 章新增 app/run_health.py。
@dataclass(frozen=True)
class RunHealthReport:
status: str
issue_count: int
notification_accepted: bool
missing_price_count: int
summary: str
status 只保留三档:ok、warning、blocker。
状态优先级
生产检查失败是 blocker。
缺价格或者提醒失败是 warning。它们未必让当天结果完全不可用,但必须被看见。
if issue_count:
status = "blocker"
elif missing_price_count:
status = "warning"
elif notification_receipt is not None and not notification_accepted:
status = "warning"
else:
status = "ok"
这类优先级以后可以继续细化,但第一版先把最重要的分叉写清楚。
本章更新与代码仓库
本章更新内容:
- 新增
app/run_health.py。 - 实现运行健康报告对象。
- 汇总价格快照、输入检查、输出检查和提醒回执。
- 新增
tests/test_run_health.py,覆盖健康、阻断和提醒失败三类状态。 - 完成第 26-30 篇阶段 review。
代码仓库:
https://github.com/ax2/zi-quant-platform
本章代码:
git clone https://github.com/ax2/zi-quant-platform.git
cd zi-quant-platform
git checkout chapter-30
uv sync --extra dev
uv run pytest tests/test_run_health.py
第 30 章提交为 7add464,tag 为 chapter-30。当前全量测试通过:229 passed,只有既有 FastAPI deprecation warning。
第 26-30 篇阶段 review
第六组五篇补齐了模拟盘运行链路里几条关键边界。
第 26 篇抽象提醒通道,让日报发送不再绑定具体平台。
第 27 篇实现文件型通道,用 JSONL 保存日报发送记录,方便本地验证和回放。
第 28 篇抽象价格源,把价格输入和每日流程拆开,并显式暴露缺失 symbol。
第 29 篇加入目标权重策略,把候选列表转换成总仓位受控的等权目标。
第 30 篇生成运行健康报告,把价格、生产检查和通知回执汇总成 ok、warning、blocker。
这一组的重点不是做更复杂的策略,而是继续把工程边界拆稳。提醒、价格、权重、健康状态都独立以后,后面接真实调度和真实行情时,改动范围会小很多。
本篇小结
健康报告是每日运行的最后一层摘要。
第 30 篇让模拟盘不仅能算、能提醒,还能说明这次运行本身是否健康。下一组文章可以在这条链路上继续接真实调度、报告归档和更接近生产环境的数据输入。