什么是回测?量化策略为什么一定要先回测
什么是回测?量化交易回测是什么意思

如果你想到一个交易方法,比如:
“股价站上20日均线就买入,跌破20日均线就卖出。”
这个方法听起来很简单。
但问题是:它真的能赚钱吗?
你不能拿真钱先试几年,再决定这个方法好不好。
所以量化交易里有一个非常重要的步骤,叫做:
回测。
简单来说,回测就是把你的交易规则放到过去的历史数据里跑一遍,看看如果当时真的按照这个方法交易,最后会发生什么。
一、回测到底在做什么
假设现在是2026年。
你设计了一个策略:
- 股价突破过去20天最高价时买入;
- 跌破10日均线时卖出;
- 每次只买一只股票;
- 每次投入10万元。
你可以把这套规则放到过去10年的历史行情里。
程序会按照每天真实出现过的价格,一天一天往前跑。
比如:
2018年3月5日,满足买入条件。
程序记录一次买入。
2018年4月2日,满足卖出条件。
程序再记录一次卖出。
然后继续往后跑。
直到把10年的数据全部跑完。
最后,你可能得到这样一份结果:
初始资金:10万元
最终资金:18万元
累计收益:80%
最大回撤:22%
胜率:46%
一共交易:137次
这就是一次最基础的回测。
它回答的其实只有一个问题:
如果过去真的按照这套规则交易,会发生什么?
注意,是“过去会发生什么”。
不是“未来一定会发生什么”。
这两个概念一定要分清楚。
二、为什么做量化策略之前一定要回测
很多交易策略听起来都很有道理。
比如:
“跌得多了就会反弹。”
“强者恒强。”
“突破新高说明趋势来了。”
“低估值股票长期收益更高。”
每一句话听上去都可以讲出一套逻辑。
但市场里最不缺的就是“听起来有道理”。
真正的问题是:
历史数据支不支持这个说法?
举个很简单的例子。
有人告诉你:
每次股价连续下跌5天,第6天买入,持有3天,大概率赚钱。
如果没有回测,这只是一个观点。
如果你把它放到过去15年的全部股票数据里测试,发现:
测试了20万次交易机会,
平均收益只有0.03%,
再扣掉手续费和滑点以后,变成负收益。
那这个策略基本就没有继续研究的必要了。
回测最大的价值,就是帮你把:
“我觉得有效”
变成:
“历史数据到底怎么说”。
这也是量化交易和纯主观判断之间非常重要的区别。
三、回测不是为了证明自己是对的
这是很多刚接触量化的人最容易犯的错误。
有了一个策略之后,他们会不断修改参数。
比如最开始测试的是:
20日均线上穿60日均线买入。
发现效果一般。
于是改成:
18日和55日。
还是一般。
继续改:
17日和53日。
收益突然很好。
于是得出结论:
“17日均线和53日均线是最佳参数。”
这时候就要小心了。
因为你有可能不是发现了市场规律,而只是不断修改参数,直到碰巧找到了一组最适合过去数据的数字。
这有点像做一张已经知道答案的试卷。
你不断改答案,最后当然可以考100分。
但换一张新试卷,可能马上就不及格。
这就是量化交易里非常重要的一个问题:
过拟合。
所以真正好的回测,不是为了证明你的策略有多厉害。
而是要尽可能找出:
这个策略为什么可能失效。
四、一个策略回测赚钱,就能直接实盘吗
不能。
这是回测里最重要的一句话之一。
假设一个策略过去10年的回测结果是:
年化收益25%,
最大回撤12%,
夏普比率1.8。
看起来非常漂亮。
但真实交易时,还会遇到很多回测没有完全体现的问题。
例如:
1. 手续费
交易次数越多,成本越高。
如果一个策略每天交易几十次,看起来每次赚一点点,手续费可能就把利润吃掉了。
2. 滑点
回测里可能显示:
你在10.00元买入。
但现实中你下单时,真正成交的价格可能是10.02元。
这2分钱,就是滑点的一部分。
3. 流动性
有些股票每天成交量很小。
回测可能默认你能一次买入1000万元。
现实中却可能根本没有那么多卖单给你成交。
4. 数据问题
如果历史数据本身有错误,回测结果也会跟着错。
比如:
股票复权处理错误;
退市股票被删除;
停牌数据没有正确处理。
这些问题都可能让策略看起来比实际更好。
所以一个完整的量化研究流程,一般不是:
策略 → 回测 → 实盘
而更接近:
想法 → 回测 → 检查数据 → 检查交易成本 → 样本外测试 → 模拟交易 → 小资金实盘
回测只是其中非常重要的一步,但不是最后一步。
五、做回测时最应该看什么
很多新手看到回测报告,第一眼只看一个数字:
收益率。
比如:
策略A:年化30%
策略B:年化18%
于是马上得出结论:
策略A更好。
其实远远不够。
一个最基础的回测,至少要看下面几个指标:
收益率
赚了多少钱。
最大回撤
最差的时候亏了多少。
夏普比率
为了获得这些收益,你承担了多大的波动。
胜率
一共交易这么多次,有多少次是赚钱的。
盈亏比
赚钱的时候平均赚多少,亏钱的时候平均亏多少。
交易次数
结果是不是只靠少数几次交易撑起来的。
交易成本
手续费和滑点有没有算进去。
这些指标组合起来,才比较接近一个策略真实的样子。
所以后面我们会分别讲:
什么是收益率;
什么是最大回撤;
什么是夏普比率;
什么是胜率;
什么是盈亏比。
当这些概念看懂以后,你基本就能读懂大部分量化策略的回测报告了。
六、举一个最简单的回测例子
假设我们有一个非常简单的策略:
当沪深300指数站上200日均线时持有,跌破200日均线时空仓。
初始资金10万元。
我们把它放到过去15年的数据里。
程序会做几件事:
第一步,读取每天的沪深300指数价格。
第二步,计算每天的200日均线。
第三步,判断当天指数是否高于均线。
第四步,根据规则决定持有还是空仓。
第五步,计算每天资金的变化。
最后画出一条资金曲线。
这样我们就能看到:
这套策略过去15年赚了多少钱;
在哪一年亏得最多;
什么时候表现最好;
什么时候表现最差;
有没有连续几年跑输市场。
这时候你看到的,已经不再是一句:
“长期均线可以过滤熊市。”
而是一整套可以检查的数据结果。
这就是回测的意义。
七、回测最容易给人一种错觉
回测图经常非常漂亮。
尤其是一条从左下角慢慢涨到右上角的资金曲线,很容易让人产生一种感觉:
找到赚钱机器了。
但要记住:
回测研究的是过去。
而交易发生在未来。
过去有效的规律,未来可能继续有效,也可能变弱,甚至完全消失。
所以一份好的回测报告真正应该告诉你的,不只是:
这个策略过去赚了多少钱。
还应该告诉你:
它在哪些环境下赚钱;
在哪些环境下亏钱;
最差的时候会怎样;
如果参数稍微变化,结果还是否成立;
如果换一段历史数据,结果是否还成立。
这些问题,往往比“年化收益是多少”更加重要。
最后
可以把回测理解成量化交易里的“历史模拟考试”。
你先把自己的交易规则放到过去的市场里跑一遍。
如果连过去的数据都经不起检验,就没有必要急着拿真钱交易。
但如果回测结果很好,也不能说明未来一定赚钱。
回测真正的作用,是帮助我们筛掉明显无效的想法,同时更清楚地了解一个策略可能赚多少钱,又可能承担多大的风险。
所以以后当你看到一个量化策略,第一件事不要问:
“这个策略赚钱吗?”
更应该先问:
“它是怎么回测的?”
因为很多时候,真正决定一份回测报告是否可信的,并不是最后那条漂亮的收益曲线,而是它背后的测试方法。
