2018 年我照着一本旧书,把规则写死成「RSI 跌破 30 就补一点」。回测跑 2015–2017 三年,曲线往上翘,夏普也过得去——我当真了。实盘接进去正好是单边阴跌段:RSI 进超卖、弹两天、再创新低、再超卖。账户没爆,但整个人被磨钝了,每笔小亏叠起来比一次大亏还恶心。

后来我才明白,问题不在 RSI 算错,在于我把「超卖 = 该反弹」当成了普适真理。超卖在震荡里偶尔管用;在趋势里,它更像减速带——车还在往下冲,你只是多颠几下。下面把这套教训写成能回测、能筛选、能复盘的说法。编辑器示例来自 青柠量化,口径按 A 股日线后复权、收盘确认信号、下一根开盘成交并计佣金滑点——别用「信号当根收盘价全仓买入」自欺。

超卖口语,得先变成引擎认的字

群里聊抄底,有人说「RSI 很低了」,有人说「进入超卖区」,还有人说「底背离」——三套话,回测里可能是三种完全不同的规则。你要先选定一种,写进策略名里,否则改来改去,对比全是废话。

最直白的一种:RSI(14) 低于 30,算 RSI超卖。在编辑器里加 RSI 指标,再用「区间判断」组件,模式选「低于阈值」,阈值填 30。这就是一条可计算的条件,筛选和回测共用同一套语义。

稍微严一点:要求 RSI 从上方跌破 30,而不是已经在 28 横盘三天。口语叫「刚进入超卖」,实现上可以用 SEQUENCE:前一根 RSI ≥ 30,当前根 RSI < 30。信号会少很多,但能滤掉「长期趴在超卖区」的标的——那种票往往是趋势坏掉,不是便宜。

无论哪种,别在回测里偷看未来。RSI 用的是截至当根收盘的数据;成交放在下一根开盘,和日常「收盘后看指标、次日挂单」更接近。我吃过「信号 K 线收盘价买入」的亏,曲线好看一截,全是幻觉。

还有一种写法我后来才试:用 SEQUENCE 把「先超卖、再等 RSI 拐头」拆开——第一步 RSI 低于 30,第二步 RSI 高于 35(或区间趋势选 RSI 近 3 根抬升)。意思是不要接正在下坠的刀,等短周期动能先喘口气。信号会更少,但在阴跌段能少几次「买在半山腰继续滑」的单子。SEQUENCE 的第一步尽量用事件型条件(刚进入超卖),第二步别用「收盘价大于 MA60」这种长期为真的状态硬塞,否则序列推进会很快,失去「等待确认」的意义。

三种市况里,同一套 RSI超卖 长得完全不一样

回测不能只看全样本年化,至少心里分三块:

震荡箱体里,纯 RSI超卖 有时能来回吃波段,加 MA 过滤反而把箱体中段的便宜货筛掉。这时摩擦来自「出场太慢」多于「入场太勤」——RSI 回到 50 才卖,可能错过箱体上沿。

慢熊或阴跌里,纯超卖是摩擦重灾区;加「收盘价 > MA60」通常能砍掉一半以上无效单,但也会错过深 V。我的取舍是熊段宁可少做,不在 MA 下方和趋势对着干。

快牛或强反弹段,超卖信号本来就少,过滤后可能长期 0 命中——这不是策略坏了,是市况不需要你抄底。强市里更适合趋势突破或 MACD零轴上方 那类规则,别硬拿超卖策略刷存在感。

把同一策略按年份切片看(2018、2020、2022 各跑一遍),比一条十年曲线更能认清 RSI超卖 的适用边界。免费版若只有近三年,就如实写「近三年样本内的结论」,别外推。

单边下跌里,越跌越买就是送钱

把纯 RSI超卖 策略丢进 2018 或 2022 那种年份跑一遍,你多半会看到密集的小额交易:买、小反弹、卖或止损、再创新低、再买。单笔不一定大亏,交易次数一多,佣金和滑点先把你啃一层;更麻烦的是心理——你会觉得自己「纪律很好,只是运气差」。

这类摩擦的根子是指标语义和市场结构错位。RSI 衡量的是近期涨跌幅的相对强弱,不是「价格够便宜」。阴跌里每天跌一点、偶尔阳包阴,RSI 可以反复进出超卖区,但 MA60、MA120 仍向下。你在接飞刀,刀柄上贴了个「超卖」标签而已。

回测页跑批量模式,常把每只股票当独立账户,信号全成交,曲线比真实乐观。换成单账户、设最大持仓 3–5 只、每次 25% 仓位,同一天超卖信号涌进来,你只能买前几只,后面的「理论盈利」根本不会发生。看策略不能只看年化;要看交易次数、平均持仓天数、单账户下有没有大量跳过。超卖策略若批量好看、单账户拉胯,多半是信号太密、槽位不够,不是参数微调能救的。

策略编辑器:RSI 区间判断与 AND 趋势过滤接入场
策略编辑器:RSI 区间判断与 AND 趋势过滤接入场

加一层趋势过滤:便宜只在「跌不动的地方」买

我后来加的第一条过滤,不是更复杂的指标,就一句:收盘价在 MA60 上方,才允许做 RSI超卖。逻辑很土——只在还站得稳的票里找短期回调,不在自由落体里接。

编辑器里加 MA(60),用「数值比较」:收盘价 > MA60。再用 AND 把「RSI 低于 30」和「收盘价 > MA60」合并,接到入场信号。出场可以简单点:RSI 回到 50 以上,或 RSI 上穿 70 减一部分,或固定持有 10 个交易日——先定一个能跑通的,别入场出场同时大改。

过滤还可以再严:MA20 > MA60,表示中期结构也还凑合;或加「区间趋势」,要求 MA60 近 5 根整体抬升,避免均线走平但价格虚挂在上面的假突破。每加一条,去筛选页看全市场命中数——从每天 80 只掉到 8 只,是正常现象。超卖本来就该稀缺;若过滤后仍每天几十只,说明过滤没起作用,或者市场全面弱,此时硬做超卖,摩擦照旧。

有人会把 AND 叠到四五层,筛选结果归零,然后抱怨「策略太严」。松紧没有标准答案,但我个人习惯把「可研究」定在每天 5–15 只左右:够抽样回测,又不至于手动完全看不过来。严了可以略放宽 MA 周期;松了就把 MA60 改成 MA120 或加成交量条件。别同时动 RSI 阈值和均线周期,否则你不知道是哪一刀起效。

和 MACD、量能怎么配,别堆成杂货铺

RSI超卖 单独用已经够吵;再加 MACD零轴下方金叉、再加缩量、再加 KDJ,很容易凑出「历史上极少出现」的形态。我的做法是一次只加一个维度,跑完对比再决定留不留。

MACD 配 RSI 的常见写法:RSI 超卖 AND MACD 的 DIF 仍大于 0——意思是短期弱,中期动能还没完全坏。这和「零轴下方抄底」是反方向,别混在同一策略里又不改名。若做真正的逆势抄底,DIF < 0 反而常见,但那就要接受趋势过滤弱化,回测区间里必须包含完整熊段,不能只用牛市样本验收。

量能过滤用「数值比较」:成交量 > 近 20 日均量 × 1.2。超卖日放量,有时是恐慌盘出清,有时是最后一跌;没有银弹,只能看回测里这类信号的平均收益是不是比无量的那组好。若好不了多少,就删掉,少一个参数少一分过拟合。

AI 生成草稿可以帮你搭 RSI + AND 的骨架,我会让它先出结构,再人工改阈值和命名。机器爱给「RSI<30 且 RSI>40」这种自相矛盾的条件,验收时逐条点一遍,比修文案重要。

回测结果:纯超卖 vs 加 MA 过滤的收益与交易次数对比
回测结果:纯超卖 vs 加 MA 过滤的收益与交易次数对比

回测区间怎么选,才看得见摩擦

超卖策略最怕样本偏乐观:只跑 2019–2021,可能得出「越跌越买真香」的错觉。我至少会覆盖一段阴跌或慢熊,再看 2015 那种波动段做压力测试。免费版若只有近三四年数据,就把结论写窄:「在某某市场环境下,加 MA 过滤后交易次数降了多少」,别吹成十年圣杯。

同一策略开两组回测:A 组仅 RSI超卖;B 组 RSI超卖 AND 收盘价 > MA60。对比这几项就够:年化、最大回撤、交易次数、胜率、平均持仓天数。超卖加过滤后,年化不一定更高,但交易次数应明显下降,最大回撤常常收敛——若回撤反而变大,可能是过滤把「跌深反弹」的大肉删了,只剩小打小闹,这时要看出场是不是太急。

出场若完全不做,引擎往往默认持有到样本末,入场质量会被「死拿」搅浑。至少加一个 RSI 回到 50 或 55 的离场,或固定止损 8%(固定仓位组件里能填止损比例)。A 股 T+1,止损最早在买入次日生效,别幻想买入当日跌破 7% 就卖——日线回测里写错了,止损会像神仙一样精准。

筛选:先看今天全市场有几只「够便宜且站得稳」

筛选只用入场信号,不看出场和仓位。改完 AND 条件,保存,跑最新 K 线全市场——这比盯一只票更有用。纯 RSI超卖 在弱市里可能一天几十只,你根本选不过来;加 MA60 过滤后变成个位数,才谈得上「今晚研究哪几只」。

记录每次改条件的命中数,建一张自己的日志(Excel 就行,别搞复杂)。「RSI<30 单条件:62 只 → 加 MA60:11 只 → 再加 MA20>MA60:4 只」。数字比感觉可靠。若命中长期为 0,要么市场真的没机会,要么规则写反——比如把 MA 周期选错、比较符搞成小于。

筛选页:超卖信号在全市场的命中数量
筛选页:超卖信号在全市场的命中数量

动画复盘:摩擦长什么样,一眼能认

批量回测告诉你「平均赚多少」,动画复盘告诉你「怎么赚的」。我习惯挑三类票:过滤后仍大亏的、小赚频繁摩擦的、少数大肉。播放器里看 RSI 进超卖那根 K 线,前后十根就够:是不是 MA60 已经拐头向下?是不是超卖后 RSI 钝化在 25 以下躺很久?

纯超卖策略的典型画面:买在下跌中继,反弹 3%–5%,RSI 回到 40,你的出场信号还没触发,价格又下去了——或者触发出场,赚个手续费。加趋势过滤后,无效单往往少一截,但你会看到另一种遗憾:真 V 型反转的妖股,因为还没站上 MA60,整段吃不到。这是过滤的成本,不是失败;回测里算清楚「少做了多少笔、少亏了多少、错过了多少」,心里才有数。

可视化:RSI 与 MA60 叠加看超卖触发位置
可视化:RSI 与 MA60 叠加看超卖触发位置

回测报告里别只盯年化,这几项和「摩擦」直接相关

我复盘超卖策略,固定看五列:交易次数、胜率、平均持仓天数、最大回撤、单笔最大亏损。摩擦型策略往往是:交易次数高、胜率接近 50% 或更低、平均持仓短、回撤不算最深但曲线锯齿多——靠几笔偶然大肉把年化拉正。

加 MA 过滤后,若交易次数降了 40%、最大回撤降了 2–3 个百分点、年化差不多,这通常是我愿意接受的版本。若交易次数降了,年化也明显掉,回去看出场是不是把反弹肉切太碎,而不是继续加过滤。

夏普比率在超卖策略里常常误导:样本短、波动人为压低,夏普可以很好看。我更信「单账户下跳过率」和「动画里随机十笔的观感」——若十笔里有七笔是「买后横两天再小亏」,纸上夏普救不了你的睡眠。

佣金滑点在超卖策略里占比更高。每笔赚 1.5%、一年做 80 笔,和每笔赚 8%、一年做 15 笔,毛收益可能接近,但净收益差一截。回测务必打开佣金滑点,别在零成本幻想里优化 RSI 阈值。

单账户与仓位:超卖策略更容易「买满」

超卖信号在恐慌日容易扎堆——大盘跌 2% 那天,筛选列表会突然变长。单账户 30% 仓位、最多持 4 只,第 5 个信号自动跳过。批量回测里那第 5 笔「漂亮反弹」可能根本进不了你的账户,曲线分叉就是这么来的。

把最大持仓和单次仓位写进回测配置,和入场规则一起保存版本。我宁可单次 20%、持仓 5 只,也不在超卖策略里单次 50%——趋势过滤失败时,一次重仓接刀太疼。倒金字塔那种越跌越买,和 RSI超卖 在哲学上是一路的,但 A 股 T+1 下更难控;新手先把固定比例跑明白,再碰加仓模型。

写策略时我踩过的坑

参数扫太狠:RSI 周期从 6 扫到 24,阈值从 25 扫到 35,再加 MA 周期网格——总能找到一段样本惊艳的组合,样本外一塌。先固定 RSI(14) 和 30,只动过滤层,是更老实的节奏。

把「背离」当入场:底背离需要找低点对比,可视化组件不总能一行表达,硬写容易含未来信息。除非你很清楚自己在做什么,否则先用简单的 RSI超卖 + 趋势过滤,别上来就玩高级形态。

忽略流动性:超卖列表里常有冷门小票,回测能买,实盘滑点巨大。筛选后可加成交额门槛,比如 amount 大于某值,用数值比较绑在 AND 里。

把筛选当「每日体检」:同一策略连续跑五个交易日,看命中数是否随大盘暴跌而激增。若激增,说明你的规则主要在接恐慌盘——这时更要盯 MA 过滤和仓位,而不是庆祝「机会来了」。

ST、退市整理、长期横盘的票,RSI 会长期贴底,技术上「超卖」但基本面在恶化。若筛选结果里这类票占比高,加一个简单的价格门槛(如收盘价 > 3 元)或换手率门槛,能去掉一部分「便宜没好货」的噪声。这不是价值选股,只是风控。

版本管理也简单:每次只改一个旋钮就另存策略名后缀 _v2_v3,别在同一个名字下改 MA 周期又改 RSI 阈值——两周后你会忘了哪版是「能用的」。本地保存的好处就在这里,策略 JSON 在机器上,对照回测结果和文件名就能追溯。

AI 草稿生成后需人工核对 RSI 条件与 AND 结构
AI 草稿生成后需人工核对 RSI 条件与 AND 结构

收束:超卖不是入场理由,是「在合适结构里找回调」

RSI 跌破 30 只说明短期卖压释放了一部分,不说明下跌结束。趋势里反复摩擦,是规则在错误的市场结构里开火;加 MA 过滤、控制信号密度、用单账户回测和动画复盘对齐预期,摩擦会少很多,但不会消失——过滤掉的那些大肉,是你要付的保险费。

如果你刚把「超卖抄底」从群聊口号改成可回测策略,建议今天就做两件事:同一套规则跑「仅超卖」和「超卖 + 收盘价 > MA60」两组,对比交易次数与最大回撤;然后开动画复盘,随机挑五笔亏损单,看 MA60 在买入日是什么姿态。数据会比你我写的都冷酷,也更有用。

最后一句实话:RSI超卖 策略在 A 股很难做成「低回撤高年化」的圣杯,更现实的定位是「在可控摩擦下捡回调」——接受这一点,回测和实盘的心理落差会小很多。你若需要的是趋势大肉,请去写 MACD零轴上方 或均线突破,别和超卖策略较劲。

有人问我「RSI 25 比 30 更超卖,是不是更好」——回测答案经常是:信号更少、单笔略好,但年化未必更高,因为错过的反弹也多了。阈值是旋钮,不是道德题;用筛选命中数和分段回测定,别凭直觉把 30 改成 23。

同一策略跑批量和单账户,若结论相反,优先信单账户。超卖信号扎堆的日子,批量会把「每只都买到」的幻想平均进曲线;你的账户只有一份钱,这才是真实摩擦来源。

想从零搭 RSI 条件、AND 过滤并跑完整回测,可以在 青柠量化 产品页 下载桌面端,策略数据在本地,改一版条件、跑一版筛选,闭环自己控。

免责声明: 本文仅作量化研究方法与软件使用说明,不构成任何投资建议。历史回测不代表未来表现,请独立判断并自行承担交易风险。