程序员量化交易实战 30:生成每日运行健康报告

第 26-29 篇补了提醒通道、文件发送、价格源和目标权重策略。

第 30 篇做一个阶段收口:把价格缺失、生产检查和提醒回执汇总成每日运行健康报告。

ZiCode 工程师查看模拟盘运行健康报告

健康报告看什么

健康报告不评价策略好坏。

它只回答一个工程问题:今天这次模拟盘运行是否健康?

当前判断包括:

  • 价格快照是否有缺失 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 只保留三档:okwarningblocker

状态优先级

生产检查失败是 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"

这类优先级以后可以继续细化,但第一版先把最重要的分叉写清楚。

当前联动运行结果

第 30 篇收口同一条命令:

uv run python -m scripts.chapter_examples paper-notify

这次命令会生成目标权重、取价、执行每日流程、发送文件通知,最后生成运行健康报告:

paper-notify 命令生成的运行健康报告

示例输出是 status=ok,因为价格没有缺失、输入输出检查没有 issue、文件通知也被接收。注意这不代表策略一定赚钱,只代表今天这次模拟盘流程在工程层面是完整的。

本章更新与代码仓库

本章更新内容:

  • 新增 app/run_health.py
  • 实现运行健康报告对象。
  • 汇总价格快照、输入检查、输出检查和提醒回执。
  • 增加 paper-notify 联动示例,展示从目标权重到通知回执再到健康报告的完整链路。
  • 补充运行健康与账户风控之间的边界说明。
  • 新增 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 篇生成运行健康报告,把价格、生产检查和通知回执汇总成 okwarningblocker

这一组的重点不是做更复杂的策略,而是继续把工程边界拆稳。提醒、价格、权重、健康状态都独立以后,后面接真实调度和真实行情时,改动范围会小很多。

当前主线代码也补了一个跨章节命令:

uv run python -m scripts.chapter_examples paper-notify

它把第 26-30 篇串成一次可运行演示:候选列表生成目标权重,价格源提供最新价,每日流程生成日报,通知通道记录回执,健康报告汇总运行状态。后面如果接真实行情或飞书通知,优先替换 PriceProvider 和 NotificationChannel 的实现,而不是改每日流程主体。

本篇小结

健康报告是每日运行的最后一层摘要。

第 30 篇让模拟盘不仅能算、能提醒,还能说明这次运行本身是否健康。下一组文章可以在这条链路上继续接真实调度、报告归档和更接近生产环境的数据输入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值