程序员量化交易实战 25:给模拟盘加生产检查
程序员量化交易实战 25:给模拟盘加生产检查
古董级程序员,大厂出来后一直在创业公司,现在仍活跃在一线做 AI 相关的开发。这个专栏会把一个 A 股量化平台从 0 到 1 拆开写:数据、策略、回测、模拟盘、提醒和生产化,尽量用真实代码和真实运行结果说话。更完整的更新也会同步到微信公众号「字与码」。
第 24 篇让模拟盘账户状态可以保存和恢复。现在还差一层工程门禁:运行前后要检查输入和输出是不是合理。
第 25 篇新增生产检查。它不是业务风控,而是防止明显坏输入进入每日流程。

生产检查和风控不同
风控关心仓位是否过高、现金缓冲是否足够。
生产检查关心的是更基础的问题:现金是不是负数、行情是不是缺失、目标权重是不是超过 100%、日报是不是空、复盘记录和快照是否一致。

检查输入
第 25 章新增 app/production_checks.py。
report = check_paper_cycle_inputs(
account,
last_prices={"000001.SZ": 10.0},
target_weights={"000001.SZ": 0.4},
)
输入检查会覆盖:
- 现金不能为负。
- 持仓和目标权重涉及的股票必须有行情。
- 行情价格必须大于 0。
- 目标权重合计不能超过 100%。
- 单个目标权重不能为负。
检查输出
每日流程跑完后,还要检查结果:
report = check_paper_cycle_result(result)
当前检查很克制:总权益必须大于 0,日报正文不能为空,复盘记录的总权益必须与快照一致。
这些规则不复杂,但它们能挡住很多低级事故。
本章更新与代码仓库
本章更新内容:
- 新增
app/production_checks.py。 - 实现模拟盘每日流程输入检查。
- 实现每日流程输出检查。
- 新增
tests/test_production_checks_paper.py,覆盖正常输入、阻断问题和有效每日流程结果。 - 完成第 21-25 篇阶段 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-25
uv sync --extra dev
uv run pytest tests/test_production_checks_paper.py
第 25 章提交为 29f387a,tag 为 chapter-25。当前全量测试通过:215 passed,只有既有 FastAPI deprecation warning。
第 21-25 篇阶段 review
第五组五篇完成了“模拟盘从状态输出到可持续观察”的过渡。
第 21 篇把快照、风控和调仓计划压成推荐摘要,让系统每天先给出一个清晰动作。
第 22 篇保存每日复盘记录,让权益变化、风险级别和推荐动作可以按时间比较。
第 23 篇串起每日模拟盘流程,把快照、风控、调仓、推荐、日报和复盘整合成一个入口。
第 24 篇实现账户状态 JSON 持久化,让模拟盘可以在程序重启后恢复。
第 25 篇补上生产检查,避免明显坏输入和坏输出混进每日流程。
这一组没有急着接真实通知通道。原因是提醒之前,系统先要做到能解释、能复盘、能恢复、能检查。否则通知只是把不可靠的结果更快地推给人。
本篇小结
生产检查是工程系统的底线。
第 25 篇把模拟盘运行前后的基本门禁写成代码。下一组文章可以在这条更稳的链路上继续接提醒通道、真实调度和更完整的数据输入。