这个策略在回测里是神仙,在实盘里是折磨
两周前我写了一篇关于动量策略回测的文章,评论区有人问:"小Q,那你有没有真正在用的策略?"
有。而且说出来你可能不信——
我实盘跑得最好的策略,是一个极其无聊的均值回归策略。
回测数据很漂亮:年化收益率22.3%,最大回撤-11.7%,夏普比率1.82。听起来是不是像在卖课?
但实盘跑起来之后,我才发现这个策略最大的敌人不是市场,是我自己。
策略长什么样
先说原理,不卖关子:
当一只股票在20个交易日内下跌超过15%,且RSI低于25,且成交量萎缩到20日均量的60%以下时,买入。持有直到涨幅达到8%或时间超过30个交易日,取先到者卖出。
就这么简单。没有什么深度学习,没有什么LSTM,没有任何花里胡哨的东西。
参数我是用2020-2024年的沪深300成分股数据优化出来的:
```python
核心信号条件
signal = (
(close.pct_change(20) < -0.15) & # 20日跌幅>15%
(rsi_14 < 25) & # RSI超卖
(volume < volume_ma_20 * 0.6) # 量缩到6成以下
)
出场条件
exit_long = (pct_gain >= 0.08) | (holding_days >= 30)
```
回测结果(2020.1 - 2024.12,沪深300成分股,等权,每次满仓一只):
| 指标 | 数值 |
| 总交易次数 | 89次 |
| 年化收益率 | 22.3% |
| 最大回撤 | -11.7% |
| 胜率 | 61.8% |
| 盈亏比 | 2.14 |
| 夏普比率 | 1.82 |
| 年均交易次数 | 17.8次 |
看起来很美对吧?
年均交易不到18次,一个月才1.5次。
这意味着什么?意味着你有大把的时间在干等着。
实盘第一周:我是不是代码写错了
今年1月我把这个策略部署到实盘。第一周,零信号。第二周,零信号。第三周,还是零信号。
到第三周末的时候,我开始怀疑人生了。我检查了三次代码,重新跑了回测,数据没问题。然后我去看了看市场——确实,那段时间市场没什么大跌,条件不满足是正常的。
但理智归理智,情绪是另一回事。
同期我的朋友们在群里晒收益:"今天半导体又涨了3%""AI应用太猛了,又加仓了"。而我呢?我坐在空仓里,看着别人赚钱。
这种感觉,比你亏钱还难受。亏钱至少你在"做事",空仓你连"做事"的幻觉都没有。
第23天:终于开仓了
实盘第23天,策略终于触发了第一个信号:某建材股,20日跌了18.7%,RSI=21.3,成交量萎缩到均量的54%。
我买了。然后接下来的两周,这只股票继续跌了4%。
群里的朋友说:"你怎么买这种垃圾?"
我说:"我的策略让我买的。"
他说:"你的策略是不是有bug?"
我没有回答,因为那一刻,
我自己也在怀疑。
第18天,这只股票开始反弹。到第25天,涨幅达到了8.7%,触发了止盈条件。我卖了,赚了8.7%。
从买入到卖出,25天。这25天里,我的情绪经历了一个完整的过山车:
1.
买入时:紧张又兴奋,终于有信号了
2.
浮亏时:怀疑策略,怀疑人生,想手动止损
3.
反弹时:开始相信策略
4.
止盈时:觉得自己是天才
而整个过程中,
策略什么也没做,就是按规则执行。
最长空仓期:90天
到目前为止,这个策略实盘运行了大约半年。最让我崩溃的是3月到5月的那段时间——整整90天,没有一次交易信号。
90天。三个月。一个季度。
那段时间市场在干什么呢?AI概念炒得飞起,低空经济各种政策利好,半导体板块反复活跃。整个市场都在涨,各种群里每天都在讨论"今天的涨停板"。
而我,一个写了量化策略的交易员,
三个月没有开过一次仓。
那段时间我差点干了三件蠢事:
1.
想关掉策略手动操作 —— 因为我"感觉"错过了太多机会
2.
想放宽条件让策略多交易 —— 比如把RSI阈值从25调到35
3.
想给策略加一个"追涨"模块 —— "既然它不追涨,我自己加一个嘛"
最后我什么都没做。不是因为我的定力有多强,而是因为我回测过放宽条件后的结果——
年均交易次数从18次变成47次,但年化收益率从22.3%掉到了9.1%,最大回撤从-11.7%扩大到了-23.4%。
交易次数越多,收益越差。这个反直觉的结论,是我写代码之前绝对想不到的。
半年实盘数据
截至目前(2026年7月中旬),实盘数据如下:
| 指标 | 回测预期 | 实盘实际 |
| 交易次数 | ~9次(半年) | 7次 |
| 收益率 | ~11.1% | +9.4% |
| 最大回撤 | -11.7% | -6.8% |
| 胜率 | 61.8% | 71.4% |
| 盈亏比 | 2.14 | 1.87 |
实盘收益比回测低了一点(滑点、冲击成本、以及有两次信号触发时我已经满仓没买到),但整体走势基本符合预期。
最后说句大实话
这个策略没有什么秘密。均值回归是金融学最基础的原理之一。你翻开任何一本量化交易教科书,都能找到类似的策略。
难的不是写代码,难的是在90天空仓期里不崩溃。
我们这行有句话:"策略的容量取决于你的耐心。"一个年化20%的策略,如果你因为无聊就关掉它,那你的实际年化就是0%。
我后来跟一个做期货的朋友聊这个事,他说了一句让我至今印象深刻的话:
"交易系统解决的是'什么时候做'的问题,但它解决不了'不做的时候怎么活'的问题。"
想想还真是。代码能帮你找买卖点,但代码没法帮你挡住群里那些晒收益的截图。
我是说真的,如果你觉得90天空仓很痛苦,那说明你还不适合做量化。先去学学怎么在热闹的饭局上不说话,那才是真正的修行。
我是小Q,一个被自己的策略教会了什么叫"等"的量化交易员 💤