9.10 回测报告模板
课前导读
本节目标
学完能解决什么困惑:回测做完后,怎样把策略、数据、成本、指标和风险边界写成别人能复查的报告。
适合谁学:已经学过回测指标、成本、参数扫描、Walk-forward 和蒙特卡洛检查的读者。
难度:中级。
用时:约 45 分钟。
第 9 章前面的内容,帮助你从“跑出一条曲线”走向“检查一套研究”。
但只会计算还不够。
如果回测结果不能被复查,不能解释规则,不能说明风险,它就很难变成可靠学习材料。
一份统一回测报告,就像策略的体检报告和出厂说明书。
它不只写“赚了多少”,还要写“怎么来的、靠什么假设、哪里可能失真、下一步该做什么”。
本节会给出一张可直接复制使用的中文报告模板。
知识正文
1. 类比:体检报告不能只写体重
如果你去体检,医生只告诉你“体重 70 公斤”,你会觉得信息不够。
你还想知道血压、血糖、心率、肝肾功能、检查日期、参考范围和医生建议。
回测报告也是如此。
只写“年化收益 18%”没有意义。
你还需要说明数据来自哪里,规则是什么,成本怎么扣,最大回撤多少,参数是否稳健,测试期表现怎样。
没有这些信息,收益数字就像孤零零的体重。
看起来明确,实际上无法判断健康状况。
关键直觉
回测报告不是宣传页,而是复查清单;它的价值在于让别人知道结果能不能被信任。
2. 报告要回答的八个问题
一份合格的回测报告,至少回答八个问题。
第一,策略想解决什么投资问题。
第二,使用了哪些数据。
第三,交易规则是否清楚。
第四,成本和成交假设是否接近现实。
第五,核心指标表现如何。
第六,参数和样本外表现是否稳健。
第七,风险边界在哪里。
第八,结论是继续研究、暂停观察,还是放弃。
这八个问题缺一个,报告就可能误导读者。
3. 统一报告结构
建议所有回测报告都使用固定结构。
固定结构会带来三个好处。
第一,减少漏项。
第二,方便横向比较不同策略。
第三,方便未来复盘当时为什么做出某个结论。
graph TD
A["策略说明"] --> B["数据与样本"]
B --> C["交易规则"]
C --> D["成本与成交假设"]
D --> E["核心指标"]
E --> F["稳健性检查"]
F --> G["风险边界"]
G --> H["结论与下一步"]请注意,这个结构不是为了把报告写长。
它是为了让每个结论都有来源。
如果某个策略没有经过参数扫描,就在稳健性部分诚实写“未完成”。
如果没有处理停牌和涨跌停,就在风险边界里写清楚。
报告最重要的品质不是漂亮,而是诚实。
4. 模板一:策略说明
策略说明要让完全不了解你研究的人,也能知道你在做什么。
| 字段 | 填写要求 | 示例 |
|---|---|---|
| 策略名称 | 简短、可识别 | 日线均线趋势过滤策略 |
| 研究目的 | 解释要验证什么想法 | 观察收盘价站上中期均线后是否有趋势延续 |
| 适用市场 | 写清 A 股范围 | 沪深主板中流动性较好的股票 |
| 策略类型 | 趋势、反转、事件等 | 中期趋势观察 |
| 不做什么 | 写出边界 | 不预测涨停,不参与 ST 样本,不做盘中高频 |
“不做什么”非常重要。
新手报告常常只写买入条件,却不写策略边界。
边界不清楚,后面就容易把任何行情都解释成策略适用。
5. 模板二:数据与样本
数据部分是报告的地基。
地基不清楚,后面所有指标都不稳。
| 字段 | 填写要求 | 检查问题 |
|---|---|---|
| 数据来源 | 行情、财务、公告来自哪里 | 是否合法、可复查 |
| 数据区间 | 起止日期 | 是否覆盖多种市场环境 |
| 股票池 | 纳入哪些股票 | 是否有幸存者偏差 |
| 复权口径 | 前复权、后复权或不复权 | 是否和规则匹配 |
| 缺失处理 | 停牌、缺失价量如何处理 | 是否记录处理方式 |
| 可得性 | 数据当时是否可见 | 是否偷看未来 |
A 股回测尤其要注意可得性。
财报不是报告期结束当天就能使用。
指数成份股也可能在历史中发生调整。
如果你用今天的成份股名单回测过去很多年,就可能忽略已经被剔除的股票。
这些问题不写进报告,指标再好也要打折。
6. 模板三:交易规则
交易规则要写成可执行语言。
不要写“趋势好时买入”。
要写“当收盘价上穿 20 日均线,且下一交易日可成交时,按收盘后信号在下一交易日执行观察买入”。
| 规则模块 | 必填内容 | 示例 |
|---|---|---|
| 入场条件 | 什么时候买入或建仓 | 收盘价上穿 20 日均线 |
| 出场条件 | 什么时候卖出 | 收盘价跌破 20 日均线 |
| 仓位规则 | 每次投入多少 | 单只股票固定观察仓位 |
| 信号时间 | 信号何时出现 | 收盘后确认 |
| 执行时间 | 何时执行 | 下一交易日按假设成交 |
| 禁止条件 | 哪些情况不交易 | 涨跌停、停牌、流动性不足 |
这部分要让量化开发能够照着实现。
如果开发读完还要追问“到底哪天买”,说明规则不够清楚。
7. 模板四:成本与成交假设
成本部分不能省。
第 9 章已经反复强调,成本会改变策略生死。
| 项目 | 填写内容 | 示例 |
|---|---|---|
| 佣金 | 买卖双边或具体费率 | 按成交金额估算 |
| 印花税 | A 股卖出端税费 | 卖出时计入 |
| 过户费 | 按规则估算 | 买卖均计入或按当前口径说明 |
| 滑点 | 预期价与成交价偏差 | 按固定比例估算 |
| 涨跌停处理 | 无法成交时如何处理 | 当日不成交,顺延或放弃 |
| 停牌处理 | 停牌期间如何处理 | 保持持仓,复牌后按规则检查 |
| 流动性过滤 | 成交额或换手限制 | 低流动性样本剔除或降权观察 |
这里不要求你做到机构级精细。
但必须把假设写出来。
不写成本的回测,默认不可信。
8. 模板五:核心指标
核心指标要同时覆盖收益和风险。
不要只展示最好看的指标。
| 指标 | 解释 | 报告写法 |
|---|---|---|
| 累计收益 | 期末资金相对期初变化 | 写明扣费前后 |
| 年化收益 | 折算到一年后的平均速度 | 不能单独使用 |
| 最大回撤 | 从高点到低点的最大下跌 | 必须和收益一起看 |
| 波动率 | 资金曲线颠簸程度 | 观察持有压力 |
| 夏普比率 | 单位波动对应的收益 | 注意样本和频率 |
| 胜率 | 盈利交易占比 | 要配合盈亏比 |
| 盈亏比 | 平均盈利与平均亏损关系 | 判断赚亏结构 |
| 交易次数 | 策略触发频率 | 检查成本压力 |
指标部分最好加入一句人话解释。
例如:
本策略年化收益看起来尚可,但最大回撤接近收益水平,说明持有过程压力较大,不能只看收益结论。
这种解释比单纯贴表格更有教学价值。
9. 模板六:稳健性检查
稳健性部分把 9.7 到 9.9 的内容统一起来。
| 检查项 | 必填问题 | 结论写法 |
|---|---|---|
| 参数扫描 | 是否存在平台期 | 15 到 30 日均线区域相对稳定 |
| 孤岛最优 | 最优点周围是否塌陷 | 未发现明显单点依赖 |
| Walk-forward | 测试期是否独立 | 8 轮中 5 轮表现可接受 |
| 成本敏感性 | 成本加严后是否崩掉 | 滑点提高后收益下降但未反转 |
| 蒙特卡洛 | 不利顺序下回撤如何 | 较差情形回撤超过预设边界 |
| 分年份表现 | 是否依赖单一年份 | 2020 年贡献较高,需要谨慎 |
如果某项没有做,就写“未完成”,不要空着。
空白会让读者误以为没有问题。
“未完成”反而诚实地提示下一步要补。
10. 模板七:风险边界
风险边界是报告里保护读者的部分。
它要告诉读者:这份回测在哪些情况下可能失真。
| 风险类型 | 报告应写内容 |
|---|---|
| 数据风险 | 数据缺失、复权口径、成份股偏差 |
| 成交风险 | 涨跌停、停牌、流动性不足、滑点低估 |
| 样本风险 | 样本时间太短或市场环境单一 |
| 参数风险 | 参数过多、扫描过宽、孤岛最优 |
| 执行风险 | 实盘中无法严格按规则执行 |
| 情绪风险 | 连续亏损导致人为改规则 |
风险边界不是给策略找借口。
它是在告诉自己和读者:哪些地方不能过度解读。
一份没有风险边界的报告,很容易变成收益展示。
11. 模板八:结论与下一步
结论不要只写“可以”或“不可以”。
建议使用三类结论。
| 结论类型 | 含义 | 下一步 |
|---|---|---|
| 继续研究 | 指标和稳健性初步可接受 | 增加样本、复查细节 |
| 暂停观察 | 有亮点但风险或证据不足 | 补充测试,不扩大使用 |
| 暂不采用 | 逻辑不清或稳健性差 | 归档经验,避免重复踩坑 |
对新手来说,“暂停观察”是很重要的结论。
不是每份报告都必须导向交易。
很多研究的价值,是帮你排除不可靠想法。
这同样是在进步。
12. 一个完整的小型报告示例
下面是教学用简版,不代表任何真实策略建议。
| 模块 | 示例内容 |
|---|---|
| 策略名称 | A 股日线均线趋势过滤策略 |
| 研究目的 | 验证中期均线是否能减少震荡中的无效交易 |
| 数据区间 | 2018-2024 年日线样本 |
| 股票池 | 流动性较好的沪深主板样本 |
| 入场规则 | 收盘价上穿 20 日均线后,下一交易日观察买入 |
| 出场规则 | 收盘价跌破 20 日均线后,下一交易日卖出 |
| 成本假设 | 计入佣金、印花税、过户费和固定滑点 |
| 核心指标 | 年化收益中等,最大回撤可接受但不低 |
| 参数扫描 | 15-30 日均线区域相对稳定 |
| Walk-forward | 多轮测试期有波动,未出现全面失效 |
| 蒙特卡洛 | 不利顺序下最大回撤接近风险边界 |
| 风险边界 | 对震荡市敏感,低流动性股票可能成交失真 |
| 结论 | 暂停观察,补充分年份和更严格成本测试 |
这个示例最重要的地方是结论克制。
它没有因为某些指标不错就说“可以实盘”。
它把风险边界和下一步写了出来。
这比一个夸张收益数字更专业。
13. 专业老师视角:报告要能教学
老师看报告,不只看结果。
老师会看你是否按顺序讲清楚。
先讲策略逻辑,再讲数据口径。
先讲规则,再讲成本。
先讲指标,再讲稳健性。
最后才讲结论。
如果顺序反了,读者会被收益数字先入为主。
好的报告应该让读者即使不同意你的结论,也能看懂你的推理路径。
14. 投资者视角:报告要能保护决策
投资者读报告,是为了避免被漂亮曲线诱惑。
因此报告里必须有暂停条件。
例如最大回撤超过某个边界时暂停复查。
连续亏损超过历史压力测试范围时暂停复查。
实际滑点明显高于报告假设时暂停复查。
如果报告没有这些边界,实盘中就容易边亏边改解释。
统一模板可以把情绪挡在门外。
它提醒你:研究时写下的规则,比亏损时临时想到的理由更可靠。
15. 量化开发视角:报告要能复现
开发者最关心版本。
报告里要写清数据版本、代码版本、参数版本和运行时间。
如果未来有人复跑结果不一致,才能定位差异。
建议报告末尾保留一个复现信息表。
| 复现字段 | 示例 |
|---|---|
| 数据版本 | daily_data_v2026_05_09 |
| 代码版本 | backtest_engine_v01 |
| 参数文件 | ma_strategy_params_v03 |
| 运行时间 | 2026-05-09 20:30 |
| 随机种子 | 42 |
| 报告作者 | 研究者姓名或编号 |
这些字段看起来朴素,却能极大减少以后复查成本。
量化研究不是一次性截图。
它是一条可以回头追踪的证据链。
16. 写报告时的常见错误
第一,只放收益曲线,不放回撤曲线。
第二,只写最优参数,不写参数范围。
第三,只展示总样本,不展示分阶段表现。
第四,只写扣费后收益,却不写费用假设。
第五,只写“策略有效”,不写在哪些条件下可能失效。
第六,结论过度兴奋,直接从回测跳到实盘。
这些错误都不是格式问题。
它们会影响你的投资判断。
报告模板的存在,就是为了让你每次都被迫回答这些问题。
交互实验室
请把下面模板复制到自己的研究笔记中。
每次完成一个回测,都按同一顺序填写。
如果某项还没做,就写“未完成”和原因。
统一回测报告模板表
| 模块 | 必填字段 | 你的填写 |
|---|---|---|
| 1. 策略说明 | 名称、目的、适用市场、策略类型、不做什么 | |
| 2. 数据与样本 | 来源、区间、股票池、复权口径、缺失处理、可得性 | |
| 3. 交易规则 | 入场、出场、仓位、信号时间、执行时间、禁止条件 | |
| 4. 成本假设 | 佣金、印花税、过户费、滑点、涨跌停、停牌、流动性 | |
| 5. 核心指标 | 累计收益、年化收益、最大回撤、波动率、夏普、胜率、盈亏比、交易次数 | |
| 6. 稳健性检查 | 参数扫描、Walk-forward、成本敏感性、蒙特卡洛、分年份表现 | |
| 7. 风险边界 | 数据风险、成交风险、样本风险、参数风险、执行风险、情绪风险 | |
| 8. 结论与下一步 | 继续研究、暂停观察或暂不采用;下一步具体动作 | |
| 9. 复现信息 | 数据版本、代码版本、参数版本、运行时间、随机种子 |
练习 A:把模糊结论改成专业结论
请把下面句子改写得更可靠。
这个策略收益不错,可以考虑使用。
参考改写:
本策略在当前样本中扣费后收益为正,但最大回撤接近预设边界。参数扫描显示 15-30 日均线区域相对稳定,Walk-forward 中仍有部分测试期亏损。当前结论为暂停观察,下一步补充更严格滑点和分年份测试。
练习 B:检查报告缺项
下面是一份不完整报告。
| 已写内容 | 缺少什么 |
|---|---|
| 年化收益 16% | 缺最大回撤、成本假设、样本区间 |
| 使用 20 日均线 | 缺参数扫描和选择理由 |
| 回测 2019-2024 | 缺股票池、数据来源、可得性 |
| 结论是策略有效 | 缺风险边界和下一步动作 |
请用自己的话补全每一行缺项。
练习 C:写最后三句话
每份报告最后都建议写三句话。
第一句,当前证据支持什么。
第二句,当前证据不支持什么。
第三句,下一步具体做什么。
模板如下:
当前证据支持:________。
当前证据不支持:________。
下一步动作:________。
一个合格答案是:
当前证据支持:该策略在部分中期趋势环境中有一定过滤噪声能力。
当前证据不支持:直接扩大资金使用或认为未来收益稳定。
下一步动作:补充更严格滑点、分年份表现和连续亏损压力测试。
核心复盘
知识清单:
[ ] 我知道回测报告不能只写收益,还要写数据、规则、成本和风险。
[ ] 我能用统一模板输出策略说明、数据样本、交易规则和成本假设。
[ ] 我会同时展示收益指标、风险指标和交易频率。
[ ] 我会把参数扫描、Walk-forward、蒙特卡洛等稳健性检查写进报告。
[ ] 我知道风险边界不是借口,而是防止过度解读的护栏。
[ ] 我能把结论写成继续研究、暂停观察或暂不采用,而不是情绪化判断。
[ ] 我会记录数据版本、代码版本、参数版本、运行时间和随机种子。
金句总结
一份好的回测报告,不是证明自己对了,而是让未来的自己也能复查当时为什么这样判断。