原创 · 约 6 分钟阅读 · 阅读 --
Last updated on
程序员量化交易实战 21:把模拟盘结果压成推荐摘要
程序员量化交易实战 21:把模拟盘结果压成推荐摘要
古董级程序员,大厂出来后一直在创业公司,现在仍活跃在一线做 AI 相关的开发。这个专栏会把一个 A 股量化平台从 0 到 1 拆开写:数据、策略、回测、模拟盘、提醒和生产化,尽量用真实代码和真实运行结果说话。更完整的更新也会同步到微信公众号「字与码」。
第 20 篇已经能生成模拟盘日报。但日报更像“状态说明”,还不是一个适合复盘和提醒的动作摘要。
第 21 篇新增推荐摘要,把风控、调仓和持仓状态压成一个清晰动作:继续观察、检查调仓,或者优先降风险。

为什么要多一层推荐摘要
风控报告告诉你哪里有问题,调仓计划告诉你可能要买卖什么,账户快照告诉你当前状态。
这些信息都重要,但提醒系统不适合把所有结构原样推给人。人每天更需要先看到一句话:今天需要做什么。

推荐对象
第 21 章新增 app/recommendations.py。
@dataclass(frozen=True)
class PaperRecommendation:
action: str
severity: str
summary: str
reasons: tuple[str, ...]
order_count: int
这里的 action 先保持简单:REDUCE_RISK、REBALANCE、HOLD。
优先级
推荐逻辑的关键是优先级。
阻断级风控永远高于调仓建议。也就是说,如果账户已经触发单票超限或总仓位过高,系统不应该一边提醒你调仓,一边淡化风险。
if risk_report.severity == "blocker":
action = "REDUCE_RISK"
elif rebalance_plan.orders:
action = "REBALANCE"
else:
action = "HOLD"
这个判断很朴素,但它把模拟盘的动作边界写进了代码。
本章更新与代码仓库
本章更新内容:
- 新增
app/recommendations.py。 - 实现模拟盘推荐摘要对象。
- 将快照、风控报告和调仓计划合成推荐动作。
- 新增
tests/test_recommendations.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-21
uv sync --extra dev
uv run pytest tests/test_recommendations.py
第 21 章提交为 8ede593,tag 为 chapter-21。
本篇小结
推荐摘要不是预测收益,也不是投资建议。
第 21 篇只是把模拟盘内部状态整理成更适合人阅读的动作摘要。下一篇会把这些结果落到每日复盘记录里。