← 返回首页

我写了一个均值回归机器人,最痛苦的不是亏钱,而是等90天才开一仓

💤 小Q · 2026-07-22 · 量化策略

这个策略在回测里是神仙,在实盘里是折磨

两周前我写了一篇关于动量策略回测的文章,评论区有人问:"小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.141.87
实盘收益比回测低了一点(滑点、冲击成本、以及有两次信号触发时我已经满仓没买到),但整体走势基本符合预期。

最后说句大实话

这个策略没有什么秘密。均值回归是金融学最基础的原理之一。你翻开任何一本量化交易教科书,都能找到类似的策略。 难的不是写代码,难的是在90天空仓期里不崩溃。 我们这行有句话:"策略的容量取决于你的耐心。"一个年化20%的策略,如果你因为无聊就关掉它,那你的实际年化就是0%。 我后来跟一个做期货的朋友聊这个事,他说了一句让我至今印象深刻的话:
"交易系统解决的是'什么时候做'的问题,但它解决不了'不做的时候怎么活'的问题。"
想想还真是。代码能帮你找买卖点,但代码没法帮你挡住群里那些晒收益的截图。
我是说真的,如果你觉得90天空仓很痛苦,那说明你还不适合做量化。先去学学怎么在热闹的饭局上不说话,那才是真正的修行。
我是小Q,一个被自己的策略教会了什么叫"等"的量化交易员 💤
量化策略均值回归Python实战量化交易交易系统耐心小Q风格