← 返回文章库

什么是回测,怎么避免过拟合

2026-06-16 · L5

在量化的世界里,有一句话值得刻在脑门上:回测赚钱 ≠ 实盘赚钱。 回测是检验策略的核心工具,但它也是最容易自欺欺人的地方。我早年做策略时,最兴奋的一刻就是看到那条回测收益曲线一路向右上方爬,年化翻了好几倍,恨不得第二天就上真金白银。真上了之后才发现,实盘走得跟回测完全不是一回事——那种落差,是很多人交学费才买来的教训。这篇讲清回测到底在做什么、它的最大敌人”过拟合”是怎么回事,以及怎样让回测结果更值得信。

回测是什么

回测,就是把一套事先定好的规则,拿到历史数据上去模拟运行,看看”如果过去一直这么做,结果会怎样”。

这里的关键词是”事先定好”。规则必须在看数据之前就写死,比如”20日均线上穿60日均线就买入、下穿就卖出”。你把这套规则丢进2015年到2025年的行情里,让程序一天一天地走一遍,每一笔模拟的买卖都记下来,最后统计出一张成绩单。整个过程不掺杂你事后的判断,这才叫回测;如果你是一边看着历史走势、一边”觉得这里该买那里该卖”,那不叫回测,叫开着后视镜编故事。

它的价值在于:让策略的好坏可以被数据检验,而不是靠嘴说、靠感觉。一个策略历史上的收益、波动、最大回撤、胜率、盈亏比等等,都能通过回测算出来,供你判断它值不值得进一步验证。举个例子,两个人都说自己的方法”能赚钱”,一个只会拍胸脯,另一个能拿出”过去十年年化12%、最大回撤22%、胜率48%但盈亏比2.1”的数字——后者哪怕结论一样,可信度也高出一大截。可以说,回测是量化”用证据说话”精神的直接体现。想系统理解回测在整个流程里的位置,可以先补一下 /article/shenme-shi-lianghua/ 里对量化交易的整体介绍。

但回测有一个致命的前提假设:历史会以某种方式重演。一旦这个假设不成立,再漂亮的回测也只是镜花水月。市场结构会变——注册制来了、涨跌停规则改了、某类资金撤了,过去有效的规律可能悄无声息地失灵。所以拿到一张漂亮的回测成绩单,第一反应不该是激动,而该是警惕:它到底是抓住了真规律,还是只是恰好背对了这段历史的答案?这就引出了下一个,也是最要命的话题。

过拟合:回测最大的陷阱

过拟合是回测里最危险、也最隐蔽的坑。一句话解释:你的策略不是学到了市场的”规律”,而是死记硬背了历史数据里的”偶然噪音”。

打个比方:一个学生为了应付考试,不去理解知识点,而是把往年真题的答案全背了下来。在”做过的题”上他能拿满分,可一遇到新题就原形毕露。过拟合的策略就是这个背题的学生——在历史数据上完美无缺,一到没见过的实盘行情就崩盘。这个词的更严谨定义可以看 过拟合

过拟合通常是这样产生的:你为了让回测曲线更漂亮,不停地加条件、调参数、试不同组合,直到那条收益曲线光滑诱人。举个我见过的真实例子——有人做A股择时,一开始只用一个均线信号,回测年化20%,他不满意;于是加了成交量过滤、加了RSI阈值、又把止损点从8%改成7.3%,把持仓周期从5天调成4天,一顿操作猛如虎,回测年化飙到60%,曲线光滑得像用尺子画的。你猜实盘怎么样?头三个月就把回测里最大回撤的记录给刷新了。他”调”出来的那些精确到小数点的参数,根本不是市场规律,而是恰好套住了这段历史里独有的、不会重复的巧合

这里有个反直觉但极其重要的判据:回测越完美、参数越多、曲线越光滑,越要怀疑它过拟合了。 新手的本能正好相反,看到曲线越漂亮越兴奋。你得强迫自己扭转过来——世界上不存在稳赚不赔的策略,一条完美到不真实的曲线,大概率是你亲手把噪音”喂”进去的结果。

怎么识别和避免过拟合

没有办法百分百杜绝过拟合,但有一些经过实践检验的原则能大大降低风险:

  • 逻辑优先,而非数据优先:先有一个站得住脚的逻辑(为什么这个规律应该存在),再去用回测验证;而不是先在数据里乱挖,挖到个好看的就编个故事解释。没有逻辑支撑的规律,极可能是噪音。 我判断一个策略靠不靠谱,常常先不看收益,而是问一句:“如果它真的一直有效,为什么别人不抢着做、把它做没了?”——这个问题回答不上来,再漂亮的曲线我也不敢碰。
  • 样本内 / 样本外分开:把历史数据切成两段,只用前一段(样本内)开发和调试策略,留后一段(样本外)从没看过的数据来检验。比如你有2015到2024的数据,就只拿2015到2021去开发,把2022到2024雪藏起来当”模拟考”。等策略定稿了再拿它去跑那段没见过的行情,如果收益、回撤大幅缩水,警报就该拉响了。新手最容易犯的坑,是没忍住偷看了样本外——测完发现不理想,回头又去改参数,改完再测样本外……这么来回几轮,样本外早就被你”看穿”了,等于没留。规矩是:样本外只能用一次。
  • 越简单越好:参数越少、规则越朴素的策略,过拟合的空间越小,也越稳健。别迷信复杂,复杂常常是过拟合的温床。 一个只有两三个参数的策略,你能想清楚每个参数为什么这么设;一个塞了十几个条件的策略,连你自己都说不清哪个在起作用,那基本就是在给噪音让路。
  • 警惕过度优化:不要为了那”最优”的一组参数斤斤计较。一个健康的策略,应该在参数附近一片区域里都还不错——比如均线周期取18、20、22天结果都差不多,才说明这个规律是稳的;如果只有精确取20天才灵,19天和21天就翻车,那这个”最优”几乎注定是过拟合。挑参数时,宁可选一个”周围一片都平稳”的次优值,也别选那个孤零零的尖峰。
  • 留足够长、足够多样的历史:只在一段单边牛市里测出来的策略,根本没经历过熊市和震荡的考验,样本太少、太单一,结论不可信。理想的回测区间,得同时盖住牛市、熊市和长时间的横盘震荡——一个策略如果只在2019到2021测,那它连2018年和2022年的下跌都没见过,你怎么知道它扛不扛得住?能跨越完整牛熊周期还活着的策略,才有资格谈下一步。

回测之外:别忘了现实摩擦

即便避开了过拟合,回测和实盘之间还隔着一层现实摩擦,新手很容易忽略:

  • 交易成本:手续费、税费在回测里若不计入,会凭空”赚出”很多并不存在的利润,尤其是高频策略;
  • 滑点:理论成交价和实际成交价的差距,行情越急、流动性越差,滑点越大;
  • 流动性:回测假设你想买就能买到、想卖就能卖掉,但真实市场里大额交易会冲击价格,甚至根本成交不了;
  • 幸存者偏差:如果历史数据只包含”活到今天”的标的,而剔除了那些已经退市、清盘的,回测结果会被系统性地高估。这个坑特别隐蔽——你从行情软件里拉出来的股票池,默认就是现在还在交易的,那些爆过雷、退过市的早被剔掉了。用这样一份”幸存者名单”去测,相当于只统计了考上大学的人,却假装全班都考上了。

把这些摩擦诚实地计入,回测才更接近现实。这里有个简单的自检办法:把手续费、滑点故意往高了估一档再跑一遍,如果收益立刻从盈利变成亏损,说明这个策略的利润薄得经不起现实磨损,大概率是靠”理想成交”撑起来的假象。一个不计成本就赚钱、计入成本就亏钱的策略,实盘里只会亏得更多。 尤其是那些看起来胜率很高、每次只赚一点点的高频类策略,交易成本往往是压垮它的最后一根稻草。

正确看待回测

说到底,回测是一个证伪工具,而不是证明工具

它最大的作用,是帮你淘汰掉那些明显不靠谱的想法——如果一个策略连历史都跑不赢,就更别提未来了。但反过来,回测好看绝不等于未来一定赚钱。它只是提高了”这个策略可能有效”的概率,而非给出保证。

真正成熟的做法,是把回测当成漫长验证链条里的第一关:回测跑通了,再切到样本外检验;样本外过关了,再拿很小的仓位做一段真实的实盘,亲眼看看成交、滑点、心理压力跟你想的差多少;实盘也稳了,才慢慢加仓,同时持续监控它有没有偷偷失效。这一路下来,能活到最后的策略,十里挑一都算多。而且你得永远为”它随时可能失效”做好准备——市场会变,任何策略都有保质期,没有一劳永逸这回事。

我常跟刚入门的朋友说一句话:回测最大的用处,不是让你相信一个策略能赚钱,而是帮你早点放弃那些注定不行的想法,省下真金白银的学费。带着这份谦卑去用它,把每一条漂亮曲线都先当成”嫌疑犯”来审,你才不会在真正下场的时候,被那段回不去的历史狠狠上一课。关于回撤这个衡量风险的核心指标,可以再看看 最大回撤


本文仅为投资教育科普,不构成任何投资建议。量化与回测均存在局限,历史表现不代表未来收益,投资有风险,决策需谨慎。