程序员量化交易实战 22:保存每日复盘记录
有了推荐摘要以后,下一步不是马上接通知,而是先把每天发生了什么记录下来。
第 22 篇新增模拟盘复盘记录。它不复杂,但很关键:没有复盘记录,就很难判断系统是不是连续几天都在重复同一个问题。
复盘记录保存什么
第 22 章新增app/paper_review.py。
单条复盘记录包含交易日、总权益、现金比例、风控级别、推荐动作和备注。
@dataclass(frozen=True) class PaperReviewRecord: trade_date: date total_equity: float cash_ratio: float risk_severity: str recommendation_action: str note: str这不是最终数据库模型,只是先把复盘口径定下来。
复盘记录要保持短,是因为它承担的是“时间序列索引”的角色。完整快照、调仓明细、消息正文都可以另存,但每日列表里最重要的是几个稳定维度:权益变化、风险级别、推荐动作和人工备注。
从运行结果生成记录
入口函数是create_paper_review_record():
record = create_paper_review_record( snapshot, risk_report, recommendation, note="daily review", )它只取复盘需要的字段,不把完整快照和调仓计划塞进去。复盘记录应该稳定、短、容易比较。
多日汇总
summarize_paper_reviews()会按日期排序,并计算最新权益、权益变化、阻断级风控天数和动作次数。
这些指标后续可以进入周报,也可以作为生产检查的一部分。
当前联动运行结果
继续使用同一条命令:
uv run python -m scripts.chapter_examples paper-ops示例里会生成前后两天的复盘记录,并汇总动作次数和权益变化:
这次输出里,两个交易日都触发REDUCE_RISK,blocker_days=2。这类连续信号比单日结果更值得注意:如果系统连续多天要求降风险,要么账户确实过于集中,要么目标权重和风控阈值需要重新校准。
本章更新与代码仓库
本章更新内容:
- 新增
app/paper_review.py。 - 实现模拟盘复盘记录和多日复盘汇总。
- 支持按日期排序、权益变化、阻断天数和推荐动作计数。
- 增加
paper-ops联动示例,展示两日复盘汇总和连续阻断天数。 - 补充复盘记录作为时间序列索引的设计背景。
- 新增
tests/test_paper_review.py,覆盖记录生成、排序汇总和空记录。
代码仓库:
https://github.com/ax2/zi-quant-platform本章代码:
git clone https://github.com/ax2/zi-quant-platform.git cd zi-quant-platform git checkout chapter-22 uv sync --extra dev uv run pytest tests/test_paper_review.py第 22 章提交为648ceb7,tag 为chapter-22。
本篇小结
复盘记录不追求大而全。
第 22 篇先把每日模拟盘状态压成稳定条目,为后面的日报、周报和生产检查留下统一口径。下一篇会把快照、风控、调仓、推荐、日报和复盘串成一次完整每日流程。
