第七部分 · 路线、复盘与检查清单 · 第 27 章

场景练习:回测报告和模拟盘

这一章继续用场景带你练手。第一个场景:第一次看到一份回测报告,你该按什么顺序读、哪些指标最容易骗人、哪些细节能暴露它是否偷看了未来;第二个场景:第一次跑模拟盘的一周,每天该关注什么、会遇到哪些和回测不一样的意外。这些练习的目的,是让你在面对真实材料时有一套可靠的检查动作,而不是凭感觉。

读完这一章,你会明白

  • 看回测报告要先看策略、数据、股票池、基准和交易假设,再看收益。
  • 回撤、换手、成本、持仓暴露和样本外比单一年化收益更能说明策略质量。
  • 模拟盘的目标是验证真实时间流程,不是证明短期收益。
  • 数据延迟、空信号、涨跌停未成交、成本偏差和对账错误都是模拟盘应暴露的问题。
第 27 章概念路径 1 先看策略说明 2 看基准 3 看收益和回撤 4 看持仓和暴露 5 看失败阶段 6 第一次跑模拟盘的一周 7 信号文件为空 8 模拟盘报告应包含什么

本图从“先看策略说明”走到“模拟盘报告应包含什么”,用于先看第 27 章的关键路径,再回到正文补细节。

1. 先看策略说明

报告开头应该说明策略做什么。是选股、择时、套利、CTA,还是资产配置? 交易什么资产? 调仓频率多少? 使用哪些数据? 目标是绝对收益还是相对基准超额?

如果报告一上来就是净值曲线,却不说策略规则,你就无法判断它是否合理。策略说明越模糊,越容易隐藏过拟合和不真实假设。

你不需要一开始理解所有模型细节,但至少要知道: 这个策略为什么可能赚钱,它在市场里承担什么风险。

回测区间决定样本环境。2019 到 2021 年和 2015 到 2024 年不是一回事。只覆盖上涨阶段的回测,不能说明策略在熊市和震荡市也有效。

股票池也很关键。全 A、沪深 300、中证 500、中证 1000、行业股票池,得到的结论都不同。股票池是否点时,是否剔除退市和 ST,都会影响结果。

看报告时,先把样本范围写下来。如果数据区间短、股票池不清、退市处理不明,后面的指标都要打折。

2. 看基准

基准是比较对象。股票多头策略应和合适指数比,指数增强应和目标指数比,市场中性应看绝对收益和市场相关性。没有基准,你不知道收益来自哪里。

如果策略买的是中小盘股票,却拿沪深 300 当基准,可能会误判超额。小盘风格上涨时,策略跑赢沪深 300 不代表选股能力强。

报告里最好同时展示策略净值、基准净值和超额净值。超额净值能告诉你相对基准是否持续改善。

交易假设包括成交价格、费用、滑点、涨跌停、停牌、T+1、交易单位和容量。它们决定回测是否接近真实市场。

如果报告假设按当天收盘价成交,要问信号是否也用了当天收盘价。如果用了,可能有未来函数。如果报告没有成本,要问扣成本后还剩多少。

交易假设是回测报告最容易被忽略的部分,也是最容易把策略从赚钱变亏钱的部分。

3. 看收益和回撤

收益要看累计收益、年化收益、年度收益和月度收益。回撤要看最大回撤、回撤持续时间和恢复时间。只看最终收益,看不到中间经历。

一个策略年化 20%、最大回撤 40%,和年化 12%、最大回撤 8%,适合的人完全不同。收益高不代表更好,要看你能不能承受路径。

年度收益表很有用。它能告诉你收益是否集中在某一年,是否连续多年失效,是否只在牛市表现好。

换手率表示策略有多爱交易。高换手意味着高成本、高滑点、高执行难度。一个因子如果需要频繁换仓才能赚钱,实盘风险会很高。

报告应展示成本前后收益。如果成本前很好、成本后一般,说明策略边际很薄。成本敏感性测试能显示策略对费用假设有多脆弱。

高换手不一定错,但必须有足够强的信号和执行能力支撑。个人项目里,高换手策略更要谨慎。

4. 看持仓和暴露

持仓分析告诉你策略实际买了什么。持仓数量多少,单票集中度多高,行业分布如何,市值风格如何,是否长期偏向某类股票。

如果策略声称多因子选股,但收益主要来自长期重仓某个行业或小市值风格,那它的 Alpha 需要重新解释。

暴露不是坏事,但必须可见。不可见的风险最危险。

样本外是模型没有参与训练、调参和选择的历史阶段。报告如果只有样本内,只能说明策略解释了过去,不能说明它有未来能力。

样本外也会被污染。研究员反复看测试集结果,根据结果改策略,测试集就不再干净。报告应说明参数如何选择,测试集是否保留。

真正有说服力的是: 样本内提出规则,样本外保持大方向有效,模拟盘继续验证。

5. 看失败阶段

好报告应该展示失败阶段。策略什么时候亏,为什么亏,亏损是否能解释,是否超出历史范围。只展示成功阶段的报告不完整。

失败阶段能告诉你策略风险。动量策略怕反转,价值策略怕价值陷阱和长期风格逆风,市场中性怕对冲成本和模型反向。

如果一个报告声称策略几乎没有失败阶段,要么策略真的很特殊,要么风险还没被正确记录。

看完报告后,写三段结论。第一段写策略做什么和结果如何。第二段写你相信哪些部分,不相信哪些部分。第三段写如果要继续研究,下一步要验证什么。

这样做能防止你被单个指标带走。你会把报告从“好不好”拆成“哪些假设可信,哪些需要复现,哪些风险没讲清”。

读回测报告的目标不是找一个马上实盘的答案,而是训练审查能力。审查能力越强,越不容易被漂亮曲线骗。

6. 第一次跑模拟盘的一周

模拟盘不是玩具。它把回测里的历史循环变成真实时间里的流程。周一数据迟到,周二信号文件为空,周三某只股票停牌,周四成本比假设高,周五你要写复盘。第一次跑模拟盘,目标不是赚钱,而是发现系统在真实节奏下会出哪些问题。

你计划每天晚上八点更新数据、生成信号。第一天就发现数据源延迟,部分股票收盘价缺失。如果脚本不检查缺失,模型会用不完整数据生成错误信号。

正确做法是先跑数据检查。缺失率超过阈值就停止生成信号,记录日志并告警。宁可今天不交易,也不要用坏数据交易。

模拟盘第一课: 数据准时和完整不是理所当然。实盘系统要先确认输入健康,再谈模型输出。

7. 信号文件为空

第二天数据正常,但信号文件为空。检查后发现股票池过滤太严格,剔除停牌、ST、低成交额和缺失因子后,剩余股票不足。

这不是小问题。如果实盘里信号为空,系统是保持原仓位、清仓、还是停止? 每种动作风险不同。规则必须提前写。

模拟盘第二课: 任何异常输出都要有处理规则。空信号、极端信号、重复信号、数量太少,都不能靠临场猜。

第三天策略想买入一只高分股票,但它开盘后快速涨停。模拟撮合如果仍然按目标价买入,就是不真实。

你把规则改成涨停不可买,订单未成交,现金保留。结果当天策略少买了一只强势股,净值和理想回测出现差异。

模拟盘第三课: 交易限制会让真实组合偏离目标组合。偏离本身要记录,否则你不知道实盘为什么不同于回测。

8. 成本比预期高

第四天模拟成交后,你统计发现平均滑点比回测假设高。原因是策略买的小盘股成交额较低,目标订单占成交额比例偏高。

这时不应马上改模型,而应先更新成本分析。按股票成交额分组看滑点,按订单参与率看滑点,再决定是否加入流动性过滤或降低单票权重。

模拟盘第四课: 成本不是固定常数。实盘前的成本估计必须通过模拟和小实盘不断校准。

周五你做盘后对账。检查现金、持仓、模拟成交、费用和净值是否一致。发现一只股票卖出失败,但内部目标持仓已经把它删掉。

如果不对账,下周系统会以为这只股票已经不在持仓里,风险计算和订单生成都会错。你修复账户模块,让未成交持仓继续保留,并在报告里标记偏离。

模拟盘第五课: 对账是交易系统的底线。没有对账,系统状态会慢慢偏离真实世界。

9. 写复盘

周末复盘不只看收益。你记录本周数据延迟一次,空信号一次,涨停未成交一次,滑点高于预期,对账发现状态错误。收益曲线反而不是重点。

然后写下改进: 增加数据缺失阈值,定义空信号处理规则,加入涨跌停成交限制,按流动性调整滑点,修复未成交持仓对账。

模拟盘第六课: 每个异常都是系统变稳的机会。只要你记录并修正,模拟盘就在发挥价值。

一周只能发现流程问题,不能证明策略有效。至少要跑几个月,经历数据更新、调仓、节假日、停牌、市场上涨、市场下跌和系统异常。

模拟盘期间不要频繁改策略逻辑。否则你不知道表现来自原策略,还是来自你不断干预。可以修 bug 和补风控,但策略规则变更要记录版本。

模拟盘的目标是把回测策略变成可运行流程。流程不稳定之前,不要实盘。

10. 模拟盘报告应包含什么

模拟盘报告应包含每日信号生成状态、订单列表、模拟成交、未成交原因、持仓偏离、成本、净值、风险暴露、数据检查结果和异常日志。

还要有人工干预记录。你是否手动跳过某天,是否手动改参数,是否临时修改股票池。这些都会影响结果。

当模拟盘报告能稳定解释每一天发生了什么,你才有资格讨论小资金实盘。

本章留下的三件事 留下 1 量化机构是一条协作生产线 留下 2 回撤、换手、成本、持仓暴露和样本外比单一年化收益要检查 留下 3 个人先做低频完整流程

读完第 27 章后,至少要能复述“量化机构是一条协作生产线”这一条判断,再用另外两张卡片检查自己是否真的理解。

小结

这一章的正文不是让你记住几个孤立名词,而是要把它们放回同一条因果链里。读完后,先用自己的话复述下面几条判断,再顺着“小节回看”检查是否能解释每一步。

  • 看回测报告要先看策略、数据、股票池、基准和交易假设,再看收益。
  • 回撤、换手、成本、持仓暴露和样本外比单一年化收益更能说明策略质量。
  • 模拟盘的目标是验证真实时间流程,不是证明短期收益。
  • 数据延迟、空信号、涨跌停未成交、成本偏差和对账错误都是模拟盘应暴露的问题。

小节回看

  • 1. 先看策略说明
  • 2. 看基准
  • 3. 看收益和回撤
  • 4. 看持仓和暴露
  • 5. 看失败阶段
  • 6. 第一次跑模拟盘的一周
  • 7. 信号文件为空
  • 8. 成本比预期高
  • 9. 写复盘
  • 10. 模拟盘报告应包含什么

自测

为什么回测报告不能只看年化收益?

年化不说明回撤、成本、样本外、基准和风险暴露,容易误导。

交易假设为什么重要?

成交价格、费用、滑点、涨跌停和容量会直接决定纸面收益能否实现。

模拟盘第一目标是什么?

验证数据、信号、订单、成交、对账和报告流程是否稳定。

信号文件为空时为什么不能临场猜?

不同处理动作风险不同,必须事先定义规则。