ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

你的回测年化300%,实盘亏了80%——量化交易最大的谎言,叫“回测“

你的回测年化300%,实盘亏了80%——量化交易最大的谎言,叫“回测“ 一、回测是量化交易最诱人、也最危险的环节每一个刚接触量化交易的人都经历过这样的时刻你花了一个星期写出了一个策略。你跑了一下历史回测。屏幕上的资金曲线一路向上年化收益率300%最大回撤不到5%夏普比率3.2。你激动了。你觉得你找到了财富自由的密码。然后你上了实盘。第一个月亏了12%第二个月亏了18%第三个月你的账户已经腰斩。你开始怀疑人生明明回测那么好为什么实盘完全是另一个世界欢迎来到量化交易最残酷的课堂回测陷阱。二、回测为什么会骗人因为它太容易骗自己了回测的本质是用历史数据验证一个策略在过去是否有效。但过去有效不等于未来有效。这个简单的道理人人都懂但90%的量化新手都在犯同一个错误他们在回测中无意识地优化策略直到回测结果看起来完美为止。这个过程是渐进的、潜移默化的第一步你写了一个简单的双均线策略回测年化15%你觉得不够好。第二步你加了一个过滤条件比如只在MACD金叉时做多回测年化变成了45%。第三步你又加了一个波动率过滤回测年化变成了120%。第四步你调整了所有参数的组合找到了最优参数回测年化300%。每一步看起来都有理有据每一步都是在优化策略。但最终的结果是什么你创造了一个完美适配历史数据的弗兰肯斯坦它在未来注定会死。三、回测的六大致命陷阱陷阱一过度拟合Overfitting这是回测的头号杀手。过度拟合的意思是你的策略太聪明了聪明到它把历史数据中的随机噪声也当成了规律。打个比方你让一个机器学习模型去拟合10个数据点。如果模型很简单比如一条直线它可能拟合得不太好但它捕捉到的是趋势这个真正的规律。如果模型很复杂比如一条九次多项式曲线它可以完美穿过每一个数据点但它记住的是噪声而不是规律。过度拟合的策略在回测中表现完美在实盘中表现灾难。因为你永远不知道模型学到的是规律还是噪声。陷阱二未来函数Look-ahead Bias未来函数的意思是策略在做出决策时“偷看了未来的数据。听起来很荒谬但新手犯这个错误非常普遍。比如你用当天的收盘价来计算信号然后在当天开盘时执行交易——但你当天开盘时根本还不知道收盘价是多少。再比如你在回测中使用财务数据但没有考虑财务数据的发布时间。你用三季度的财报数据在9月底做了交易决策但实际上那份财报是10月25日才发布的。这些错误在回测中不会报错但它们让你的回测结果完全失真。陷阱三幸存者偏差Survivorship Bias如果你回测A股策略时用的是当前所有上市股票的历史数据——恭喜你你已经掉进了幸存者偏差的陷阱。为什么因为当前上市的股票都是活下来的股票。那些退市的、ST的、曾经暴跌90%的股票你的数据集中可能根本没有它们。这意味着你的回测只在成功者身上做测试自然结果会好得离谱。陷阱四滑点与手续费被低估回测中你以为你在10块钱买到了但实际上你可能10.05才能成交。回测中你以为手续费是万分之三但实际上你的券商收的是万分之一加上交易所的规费加起来远不止这个数。对于高频策略或者低利润策略来说滑点和手续费的差异足以让一个盈利策略变成亏损策略”。陷阱五参数优化陷阱你用历史数据找到了一组最优参数。但问题是市场是变化的。上个月最优的参数这个月可能已经失效。这就好比你根据去年北京最好的穿衣温度来决定今天穿什么——去年今天25度你穿了短袖很舒服但今年今天可能只有10度。陷阱六样本内与样本外混淆你把全部历史数据用来优化参数然后宣称策略有效。但正确的做法是用一部分数据样本内来优化参数用另一部分数据样本外来验证策略。如果样本外表现远差于样本内说明你的策略大概率过度拟合了。四、如何判断你的回测是否可靠说了这么多陷阱那回测还能信吗能信但你必须学会审问你的回测结果你的策略逻辑是否简洁如果一个策略需要10个以上的条件才能盈利它大概率过度拟合了。参数是否稳健把参数上下浮动20%策略是否还能盈利如果不能说明参数太尖了。样本外是否有效用最后30%的数据做样本外验证结果是否与样本内一致是否考虑了真实的交易成本滑点、手续费、冲击成本全部加上再跑一次。是否在不同品种、不同时间段都有效如果一个策略只在2020-2021年的牛市中有效在其他时段全部亏损那它只是牛市策略不是好策略。识别回测中的每一个坑哪些回测结果是真实有效的哪些是自欺欺人的设计一个科学的回测框架从根源上避免六大陷阱实盘与回测不符时需要诊断和修复
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进