程序员量化交易实战 20:生成模拟盘日报和告警摘要

📅 2026/6/28 18:30:03
程序员量化交易实战 20:生成模拟盘日报和告警摘要
第 16-19 篇已经有了账本、快照、风控和调仓计划。第 20 篇把这些结构合成一条稳定的模拟盘日报。它还不发送消息只负责生成消息内容。先做消息格式很多系统一开始就急着接飞书、企业微信、邮件或短信。我更愿意先把消息内容做成纯函数。只要标题、正文和严重级别稳定后续接任何发送通道都比较简单。日报不是为了好看而是为了复盘。它至少要让读者看清三件事账户现在是什么状态风险有没有异常下一步是否需要动作。通知通道只是载体日报内容本身才是稳定接口。消息对象第 20 章新增app/alert_messages.py。dataclass(frozenTrue) class PaperAlertMessage: title: str body: str severity: str它足够小但边界清楚格式化模块只产出消息不关心发到哪里。日报内容format_paper_daily_alert()接收账户快照、风控报告和可选调仓计划。正文包含总权益。现金和现金比例。持仓市值。风控状态。风控违规项。调仓建议。如果没有调仓计划它不会编造建议如果计划为空会明确写“无需调仓”。为什么保留纯文本纯文本有几个现实优点容易测试。容易粘贴到文章和日志。容易发到不同通知通道。不需要先确定最终 UI。后续如果要做 Markdown、HTML 或飞书富文本可以在这个稳定对象之上增加新的 renderer。当前主线联动运行第 20 篇把前面四步合成日报uv run python -m scripts.chapter_examples paper-flow真实输出如下这条日报里可以同时看到总权益、现金、持仓市值、风控状态、违规原因和调仓建议。它不是最终 UI但已经足够进入日志、飞书消息或每日复盘记录。后面要做多渠道发送时不应该重新拼这些字段而应该复用PaperAlertMessage。本章更新与代码仓库本章更新内容新增app/alert_messages.py。实现模拟盘日报消息对象和格式化函数。合并账户快照、风控报告和调仓计划。新增tests/test_alert_messages.py覆盖有风控违规和无调仓建议两种场景。补充当前主线联动示例的模拟盘日报真实运行截图。补充日报作为复盘接口的定位说明。完成第 16-20 篇阶段 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-20 uv sync --extra dev uv run pytest tests/test_alert_messages.py第 20 章提交为2a9647etag 为chapter-20。当前全量测试通过201 passed只有既有 FastAPI deprecation warning。第 16-20 篇阶段 review第四组五篇完成了“模拟盘状态到日报摘要”的闭环。第 16 篇实现模拟盘账本让账户现金、持仓、买卖成交和权益计算有了可测试基础。第 17 篇生成账户快照统一现金比例、持仓市值、浮动盈亏和权重口径。第 18 篇加入风控检查针对总仓位、现金缓冲和单票权重输出结构化违规项。第 19 篇把目标权重转换成调仓计划并明确计划不是执行。第 20 篇把快照、风控和调仓建议合成纯文本日报为后续接入通知通道做准备。这组文章的重点不是让模拟盘看起来完整而是把状态、检查、计划和消息四个边界分清楚。边界清楚后面接真实行情、调度任务和通知渠道时才不容易互相污染。本篇小结模拟盘日报不是最后一步而是一个集成点。第 20 篇把前四篇的结构串起来让系统每天能产出一条可读摘要。下一组文章会继续推进推荐、复盘和提醒通道把模拟盘从“能算”推进到“能持续观察”。