晨幻AI定制
内容中心 · 量化

选股公式回测防过拟合:为什么历史胜率会骗你

2026-09-25 · 晨幻AI定制
回测胜率 90% 的选股公式,实盘三个月就亏 20%,这是量化新手最常见的剧本。原因高度一致:过拟合——公式被优化到记住了历史走势,而不是找到了市场规律。本文讲清回测四大陷阱、过拟合的识别方法,以及唯一可靠的样本外验证体系,让"历史胜率"不再骗你。

一、回测为什么总是"好看":四个系统性偏差

任何回测结果,先别急着兴奋。回测数字天然偏乐观,因为有四个偏差藏在里面,它们会让历史绩效系统性虚高:

偏差表现对结果的影响怎么排除
未来函数公式用了当时不存在的数据信号失真,胜率虚高逐根 K 线核对信号是否收盘即固定
前视偏差用当日收盘价产生信号、当日就买入买点永远"精准"信号次日开盘价成交
幸存者偏差只测现在还活着的股票池退市股亏损被剔除用含退市股的历史成分池
成本忽略不算手续费、滑点、印花税高换手策略假盈利双边万三到千一成本入模

这四个偏差叠加,一个平庸的策略也能回测出 80% 胜率。所以第一步不是优化公式,是把回测环境做干净——信号、成本、股票池都得贴近实盘。

二、过拟合:历史胜率骗你的核心机制

把 1000 组参数组合在历史数据上挨个跑一遍,选收益最高那组——这不是发现了规律,是玩了一场多重比较:1000 次随机尝试里,总有一组"碰巧"表现好。统计上这叫多重比较问题,你试得越多,撞大运的概率越大。

过拟合公式的共同特征:参数被精调到历史噪声上,换一段行情就失效。五个信号帮你快速识别:

一个参数敏感度测试立刻见分晓:把每个参数上下浮动 20%,跑一遍绩效。若绩效剧烈波动,这就是过拟合的铁证。参数从 20 改成 24 就从赚钱变亏钱,这样的公式不可能在实盘稳定。

三、样本外验证:唯一可靠的检验方法

防过拟合没有捷径,只有一条:样本外验证——用没参与过调参的数据来检验公式。三种主流做法:

方法做法优点缺点
时间分割前 70% 调参,后 30% 验证简单直观只测一段行情,运气成分大
滚动前推每半年滚动一次窗口,前 3 年调参、后 1 年验证覆盖多段行情,最接近实盘工作量最大
分段交叉把历史切成 4-5 段,轮流留一段验证样本利用充分对行情结构变化不敏感
个人投资者推荐滚动前推:前 3 年定参数、接下来 1 年验证,然后窗口前移每半年重复一次。三段行情都通过,才叫真的稳。验证段里任何参数都不许再动——动了就是污染样本外。

四、从回测到实盘:七步检验流程

把上面内容串成一条可执行的流水线,任何新公式按这七步走:

  1. 清洗数据:补全复权、剔除退市股遗漏、修正停牌跳空
  2. 查未来函数:源码过一遍 ZIG、XMA、PEAK 类函数,逐根核对信号固定性
  3. 设定真实成本:双边手续费加滑点按千一以上计入
  4. 样本内调参:参数控制在 2-3 个,整数区间,优先逻辑成立的取值
  5. 样本外验证:滚动前推至少两轮,绩效与样本内差距 30% 以内可接受
  6. 压力测试:分别跑牛市、熊市、震荡市三段,看是否只在一个市场风格赚钱
  7. 实盘小仓跟踪:小仓位跑 1-3 个月,逐笔记录,与回测对账

七步里任何一步不过,公式就回炉。多数被淘汰的公式,都倒在第五步之前。

五、回测工具怎么落地这套流程

不同工具做法不同,但原理一致:

无论用哪个工具,记住一条:回测报告里没有"样本外"三个字的,等于没验证。

别用回测胜率做卖点。正规的公式交付,应该给的是样本内外对比、参数敏感性、分行情表现这三组数字,而不是一个孤零零的 90%。看到只报胜率的公式,直接问样本外数据。

常见问题

Q: 回测胜率 90% 为什么实盘还是亏钱?

A: 大概率是过拟合:公式在历史数据上被反复优化,记住了过去的具体走势而不是规律。同时可能混入未来函数、前视偏差、没算手续费滑点。回测 90% 的胜率如果没做样本外验证,参考价值很低。

Q: 怎么判断公式是不是过拟合?

A: 三个快速测试:参数动 10% 到 20% 看绩效是否剧烈变化,剧烈变化就是过拟合;把时间切两段只拿前 70% 调参,后 30% 直接跑,绩效大幅缩水就是过拟合;换一段完全没见过的行情(如不同牛熊阶段)验证,失效就是过拟合。

Q: 样本外验证怎么做最靠谱?

A: 最推荐滚动前推:用前 3 年定参数,在接下来的 1 年验证;然后窗口前移,每半年重复一次。这样覆盖了不同行情阶段,比单次切分更接近真实使用场景。注意验证段任何参数都不许再调整。

Q: 未来函数和过拟合是一回事吗?

A: 不是一回事但经常同时出现。未来函数是公式用了当时不存在的数据(如 ZIG、XMA),属于数据污染,回测直接失真;过拟合是参数被优化到历史噪声上,属于方法论问题。未来函数是硬伤,过拟合是软伤,都要排除。

Q: 实盘跟踪多久才能确认策略有效?

A: 至少覆盖一个完整行情周期或 3 到 6 个月,且经历过一次与回测段不同的市场风格。跟踪期小仓位运行,逐笔记录实际信号与回测对比,胜率差在 10 个百分点以内、最大回撤在预期内,才算初步验证通过。

想要一套过样本外验证的选股公式?

回测体检 · 未来函数检测 · 样本外验证 · 源码交付

立即免费咨询
风险提示与免责声明:本文所述公式、指标与回测方法仅为软件工具与数据筛选技术的演示与交流,结果基于历史数据统计,不构成任何投资建议,不代表未来收益保证。股市有风险,入市需谨慎。本服务为软件开发与数据筛选工具服务,不提供证券投资咨询。