程序员量化交易实战 25:给模拟盘加生产检查 📅 2026/7/1 4:31:12 第 24 篇让模拟盘账户状态可以保存和恢复。现在还差一层工程门禁运行前后要检查输入和输出是不是合理。第 25 篇新增生产检查。它不是业务风控而是防止明显坏输入进入每日流程。生产检查和风控不同风控关心仓位是否过高、现金缓冲是否足够。生产检查关心的是更基础的问题现金是不是负数、行情是不是缺失、目标权重是不是超过 100%、日报是不是空、复盘记录和快照是否一致。这类检查更接近工程系统里的 readiness gate。它不判断策略好不好也不判断市场是不是适合买入它只回答一个问题今天这次模拟盘流程是否具备继续运行和发出提醒的最低条件。检查输入第 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日报正文不能为空复盘记录的总权益必须与快照一致。这些规则不复杂但它们能挡住很多低级事故。当前联动运行结果第 25 篇同样使用paper-ops命令验证uv run python -m scripts.chapter_examples paper-ops命令会在每日流程前后各跑一次检查这次示例里输入检查和输出检查都通过但业务风控仍然是blocker。这正好说明生产检查和风控不是一回事输入合法、流程完整不代表账户风险低账户风险高也不代表程序本身不能正确运行。本章更新与代码仓库本章更新内容新增app/production_checks.py。实现模拟盘每日流程输入检查。实现每日流程输出检查。增加paper-ops联动示例展示运行前输入检查和运行后输出检查。补充生产检查与业务风控的边界说明。新增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 章提交为29f387atag 为chapter-25。当前全量测试通过215 passed只有既有 FastAPI deprecation warning。第 21-25 篇阶段 review第五组五篇完成了“模拟盘从状态输出到可持续观察”的过渡。第 21 篇把快照、风控和调仓计划压成推荐摘要让系统每天先给出一个清晰动作。第 22 篇保存每日复盘记录让权益变化、风险级别和推荐动作可以按时间比较。第 23 篇串起每日模拟盘流程把快照、风控、调仓、推荐、日报和复盘整合成一个入口。第 24 篇实现账户状态 JSON 持久化让模拟盘可以在程序重启后恢复。第 25 篇补上生产检查避免明显坏输入和坏输出混进每日流程。这一组没有急着接真实通知通道。原因是提醒之前系统先要做到能解释、能复盘、能恢复、能检查。否则通知只是把不可靠的结果更快地推给人。当前主线代码也补了一个跨章节命令uv run python -m scripts.chapter_examples paper-ops它把第 21-25 篇串成一次可运行演示输出包含推荐动作、复盘汇总、状态保存和生产检查结果。后面继续接通知通道时可以先让通知层消费这条流程的产物而不是重新拼装业务逻辑。本篇小结生产检查是工程系统的底线。第 25 篇把模拟盘运行前后的基本门禁写成代码。下一组文章可以在这条更稳的链路上继续接提醒通道、真实调度和更完整的数据输入。