我曾花三年优化一条趋势策略,纸面年化 28%。我用 5 万美元上线,四周亏掉约 10%;两个月后亏到停手,不得不问自己最狠的问题:我测的是策略,还是幻想?
量化交易里令人不安的答案是:我测的根本不是策略,而是一个不存在的市场。
策略在实盘失效时,多数人怪信号——改指标、加过滤、重新优化。那是在治症状。病根往往是:回测假设了只存在于「电子游戏」里的成交条件。
我想用自己的经历说明发生了什么、为什么发生,以及如何避免。
没人愿意承认的模式
社区里反复出现:
- 回测:年化 30%
- 纸交易一个月:22%
- 实盘第一个月:-10%
纸交易到实盘的落差常被说成「运气」或「行情变了」。回测到纸交易的落差常被甩给滑点——好像滑点是「发生在你身上的天灾」,而不是你必须主动建模的东西。
真相是:回测在系统性撒谎——而且你越相信边缘越大,谎言越大。
回测悄悄建造的「假市场」
标准回测里藏着默认假设,平台常常替你选了,你却不质疑。
假设 1:信号价完美成交
信号在 100.50 买入,回测就在 100.50 成交——不多不少。现实里,订单到交易所时价格已经动了:对 HFT 是毫秒级,对散户经纪商可能是数百毫秒。
假设 2:零滑点
历史 K 线只有 OHLC,没有逐笔路径;滑点天然「缺席」,回报被系统性高估。
假设 3:零延迟
信号 14:32:15 产生,成交也在同一瞬间——现实有网络、撮合与确认链条。
假设 4:无流动性约束
回测里你可以一口气按「市价」买到任意数量;现实里中小盘、薄流动性会让你显著推动价格甚至无法完成。
它们单独看都不算「小细节」,合在一起足以解释:纸面好看的策略,现实里普遍打折。
真实市场:一个算给你看的例子
我的系统做美国中盘股,日均成交约 50 万股,单笔约 5000 股(约 1% 日量)。回测假设:
- 信号触发在日收盘价买入,出场也在收盘
- 零佣金、零滑点
回测结果: 胜率 62%,平均盈利 +2.1%,平均亏损 -1.8%,年化 28%,最大回撤 12%。
然后我加单笔 0.2%(20bp)滑点——对中盘股已算保守:
- 年化掉到 9.2%
- 最大回撤升到 18%
从 28% 到 9.2%,一个温和调整就削掉约 67% 的名义回报。
再加佣金:单笔 3 美元,5000 股约合每股 0.0006 美元,约单笔 0.06%,往返约 0.12%。
0.2% 滑点 + 0.12% 佣金:
- 年化约 2.1%
- 最大回撤约 22%
再考虑「想收在收盘,但量薄、成交偏离」的现实,把总摩擦放宽到约 0.3%:
- 年化约 -0.8%
也就是说:承诺 28% 年化的系统,在真实摩擦下可能是轻微亏损。 那 28% 里很大一部分是幻影——市场从未承诺给你。
滑点的三种味道
买卖价差滑点
想买时买一 100.00、卖一 100.10,你吃卖一,立刻付出约 0.1%。小盘股价差更大,流动性差时可达 0.5% 甚至更糟。
时序滑点(延迟衰减)
信号在 15:59:50,订单 15:59:51 才到,价格已不利于你。临近收盘的算法交易里,这可能是 0.05%–0.5% 量级,取决于波动与流动性。
冲击滑点(市场冲击)
你自己的成交量在抬升卖价或压低买价——你在和自己交易。相对日量过大的单子,这一项可能是主要摩擦。
冲击问题:与自己为敌
简化例子:股价 100,卖盘深度很好时,5000 股可能都在 100.10 成交;若深度呈阶梯状,你一路「扫」上去,均价会明显高于第一档。
对 5 万美元仓位(假设 500 股),几美分的均价恶化也是可见的损耗。机构在中盘股里上千万美元的头寸,0.3%–0.5% 量级的冲击并不罕见——且与点差无关,是你自己造成的。
真实数字:执行缺口(implementation shortfall)
业界把「决策价」与「实际加权成交价」的差距叫执行缺口。实证研究大致量级:
- 小盘、流动性差:约 0.5%–1%
- 中盘、正常环境:约 0.15%–0.3%
- 大盘蓝筹:约 0.05%–0.15%
这些来自真实成交分析,不是回测幻想。若单笔边缘 0.5%,执行缺口 0.3%,净边缘只剩 0.2%——刀锋上走路。
回测应该怎样做
1. 把执行摩擦建成一层模型
点差(随波动、时段、最小跳动变化)、冲击(相对日量)、延迟(API 常见 100–500ms,可折算为滑点区间)。
2. 用「棒内路径」思维,而不是迷信官方收盘价
收盘信号往往意味着更差的可实现价格。
3. 部分成交与排队
大单相对成交量过大时,建模排队时间与填单过程中的漂移。
4. 真实佣金
股票:直连路由、经纪商阶梯、每股计费;期货:每手往返几美元到十几美元都常见。
5. 跨流动性环境测试
高成交量 vs 低成交量、财报前后、不同牛熊与波动制度——在平静流动性里完美的策略,可能在量缩日灾难性失效。
纸交易不够(但仍然有用)
纸交易比历史回测更接近现实,但仍不是真钱:成交可能偏理想、心理不同、券商模拟成交与实仓未必一致。它适合查代码与流程,不适合证明执行质量。
我纸交易一个月看到 22%,部分因为滑点建模不全、部分因为那段行情配合,还有「无本金压力」的心理差异。真测试从真金白银开始。
执行:信号之后才是大头
我后来的心态转变:信号约占 30% 问题,执行约占 70%。 55% 胜率、2% 盈利 vs 1.8% 亏损的系统,若执行糟蹋,边缘会消失。
聪明执行包括:分拆大单、选择时段(开盘半小时与收盘往往更贵)、尊重流动性(持仓相对日量是否能在可接受冲击内退出)、随 VIX/成交量调整规模或暂停。
「足够真实」的回测长什么样
我见过严谨的回测会纳入:按成交量分布的 TWAP 风格假设、历史点差或逐笔数据、成交量上限与冲击模型、延迟区间、大单更差价格、佣金与融券等。
同一策略在这种框架下,数字往往不是少 10%,而是少 50%–80%——这不是悲观,是更准确。
危险的真相
纸面回报越炫,往往对执行滑点越敏感——高频交易、小单笔边缘、紧止损、高换手,都会把幻影放大。
回测 50% 年化的,现实里可能是 5%;回测 10% 也许是 7%;回测 2% 也许是 -2%。回测越好,你越可能活在幻想里。
在优化信号之前,先问自己
- 回测里有没有合理滑点?(常见品种至少考虑 0.1%–0.3% 量级起)
- 有没有佣金?(单独一项就可能削掉 20%–50% 名义回报)
- 订单规模相对日量是否合理?(若动辄吃到日量 20%,必须建冲击模型)
- 是否跨多种行情制度测试?
- 纸交易是否用偏真实的成交假设?
- 若只能交易一半的日子(流动性或规则限制),边缘还在吗?
多数答不上来,那你测的不是策略,是梦。
更好的路
我学到的痛教训:执行是你的竞争优势之一,而不只是信号。
两个信号相同、执行不同的人,结果可以天差地别。理解微观结构、耐心拆单、控制规模——往往比多一个指标更重要。
从一开始就用现实摩擦建模型;把滑点当核心层,不当补丁;接受实盘低于回测(若长期「差不多」,反而要怀疑哪里造假)。
难的、让人脸红的回测,才可能真的帮你赚钱;幻想回测只会让你破产。
策略亏钱,往往不是因为信号「错」,而是因为测试从未真实。开始测那个真实存在的市场,你才知道自己有没有值得交易的东西。