halo 的技术博客

返回

你肯定用过 RSI:价格涨多了 RSI 冲上 70,你就想「超买了,该卖」。但在强趋势里,这个想法会让你亏到怀疑人生——趋势能超买再超买,RSI 在 70 上方能挂很久,你卖飞在半山腰

问题出在哪?出在「RSI 的绝对高低」衡量的是当下热不热,而趋势能不能延续,取决于动能还在不在上升。真正领先的信号不是「RSI 到 70」,而是价格与 RSI 的背离:价格还在创新高,RSI 却创不出新高(顶背离),说明推动上涨的动能已经跟不上价格——这是趋势衰竭的前兆,比「超买」早一步。

本文用 Wilder RSI(14) 从零复现背离的识别逻辑,并用自包含合成数据把「背离到底有没有用」跑出数字来。

一、问题:RSI 超买超卖是滞后确认,背离才是领先信号#

Wilder(1978)的 RSI 定义:

RSI=1001001+RS,RS=平均上涨幅度平均下跌幅度\text{RSI} = 100 - \frac{100}{1 + \text{RS}}, \quad \text{RS} = \frac{\text{平均上涨幅度}}{\text{平均下跌幅度}}

它的平滑用的是 Wilder 自己的指数加权(α=1/period\alpha = 1/\text{period}),不是普通 EMA。代码:

RSI 冲上 70 只说明「最近涨的比跌的多很多」——这是已经发生的事,是滞后确认。它不预言接下来涨不动。要把它变成领先信号,得看动能的斜率,也就是 RSI 本身在高位的走势

二、背离的定义:价格创新高,RSI 不创新高#

背离的本质是「价格与动能脱钩」。用两个相邻的 swing(局部极值)比较:

  • 顶背离(看跌):两个相邻价格高点 P2>P1P_2 > P_1,但对应 RSI 高点 RSI2<RSI1\text{RSI}_2 < \text{RSI}_1——价格更高,动能却更弱;
  • 底背离(看涨):两个相邻价格低点 P2<P1P_2 < P_1,但对应 RSI 低点 RSI2>RSI1\text{RSI}_2 > \text{RSI}_1——价格更低,动能却没那么弱。

识别的两个关键步骤:(1) 找 swing 极值点;(2) 比较相邻极值的「价格方向」与「RSI 方向」是否相反

注意 tol=2 的容差:RSI 的极值点不可能每次都精确低于前高,留 2 个点容差避免漏掉「肉眼可见但数值差 1 点」的背离。

价格创新高但 RSI 创不出新高 = 顶背离(趋势衰竭前兆)

上图是一段「上行 + 末端反转」的合成序列:价格在第 123 附近再创新高,RSI 却从之前的 60+ 掉到 60.6 且创不出新高——这就是顶背离。它比「RSI 跌破 70」早出现,因为它是动能掉队的瞬间,不是已经回落的确认。

三、顶背离 vs 底背离:示意图#

顶背离:价格更高高、RSI 更低高(动能跟不上)

下行衰竭段对应底背离:价格还在往下踹,RSI 却已经不愿再创新低——空头动能耗尽,反弹在即。两类背离是同一枚硬币的两面:价格与动能的脱钩,脱的是「趋势还能延续」的钩。

四、它到底有没有用?蒙特卡洛命中率#

我必须诚实给数字,不吹。用 600 段自包含合成序列(每段 V 形:前段强趋势、末段真实反转),在背离信号后 20 根内如果出现 ≥2.5% 的折返,算「命中反转」。对照是随机点位当伪信号:

信号类型20 根内反转命中率对照(随机点位)
顶背离(熊)56.4%24.2%
底背离(牛)24.7%27.3%

结果很重要,也很有信息量:

  1. 顶背离有明显信息量:56% vs 随机 24%,约 2.3 倍。价格创新高、RSI 不跟——这个「动能掉队」信号,比随便挑个点位更能预示随后回落。
  2. 底背离信息量很弱(24.7% vs 随机 27%):在合成数据里,下跌末端的「价格更低、RSI 更高」并没有比随机更好。这其实符合经验:底部比顶部更难用背离抓——下跌常是「钝化再钝化」,RSI 底背离会反复失效,直到真反转。实务上顶背离更可靠,底背离要配合放量/结构才敢用。

这就是诚实的回答:背离不是圣杯,顶背离尤其值得跟踪,底背离要打折

五、趋势越强,末端越容易出背离#

背离是「趋势末端」的产物。趋势斜率 slope|\text{slope}| 越大,末端的「价格继续冲、动能跟不上」越剧烈,背离越密集。扫描不同强度(同时测上行→顶背离、下行→底背离):

趋势斜率强度顶背离均数/段底背离均数/段
0.02(弱)0.800.98
0.052.082.23
0.083.082.93
0.12(强)2.952.73

趋势越强、末端越易出背离

从弱趋势到中等趋势,背离数从约 0.8 跳到约 3.1——趋势越强,末端动能脱钩越明显,背离信号越密集。但到 0.12 极强趋势时反而略回落,因为极强趋势里价格单边冲太猛,RSI 一直贴着 70/30,「相邻高点 RSI 更低」的窗口反而变窄。实务含义:背离最适合「有趋势、但已运行一段时间」的中段偏末端,而不是刚启动或极端单边。这也和上一篇文章的结论呼应——当价格进入 Hurst 指数 H>0.5H>0.5 的强趋势时,你不该用朴素均值回复去逆它,而该等 RSI 背离这种「动能先掉队」的信号,趋势才是真的累了。

六、把框架用起来:带过滤的背离信号#

裸背离信号噪声大(尤其底背离)。加两层过滤,质量立刻上来:

两条过滤逻辑:

  1. RSI 位置过滤:顶背离只在 RSI 仍偏高(>55)时算数——它得是「热市里掉队」,而不是「冷市里反弹」。冷市里的「价格新低 RSI 不新低」可能只是下跌中继。
  2. 趋势背景过滤:背离信号点之前,价格得确实在对应方向上运行过——背离是「趋势内的衰竭」,不是「横盘里的假动作」。

这两层把前文「底背离信息量弱」的问题部分缓解:底背离如果要求信号点 RSI 仍偏低(<45)且之前确实在跌,假信号会少很多(代价是漏掉一部分真反转)。

七、六类真实陷阱(实战必看)#

  1. RSI 平滑必须用 Wilder 法,不是普通 EMA:很多库用 EMA 算 RSI,权重衰减略不同,极端序列上差几个点,背离阈值 tol 要跟着调,否则跨库结果对不上。
  2. 顶背离比底背离可靠,不要对称对待:本文蒙特卡洛里底背离命中率(24.7%)≈随机(27%),实战里底部常「钝化」,RSI 底背离会连续失效。顶背离(56% vs 24%)才是主战信号。
  3. swing 的 order 窗口是灵敏度开关:order 太小,极值太密,满屏假背离;order 太大,敏感信号漏掉。日线常用 order=5(约一周),要按交易周期调。
  4. lookback 限制相邻极值距离:太大把「相隔半年的两个高点」也算背离(毫无意义),太小只允许紧挨的摆动。本文 lookback=70(约 3 个月)是折中。
  5. 容差 tol 不能省:RSI 极值很少「精确」低于前高,留 2 点容差才能抓到肉眼可见的背离,否则只抓到极端完美的少数。
  6. 背离是「衰竭信号」不是「反转信号」:它告诉你趋势可能累了,不告诉你一定反转、更不告诉何时反转。必须配止损——价格继续新高(顶背离失效)就该认错,别死扛「背离一定会回来」。

八、小结#

RSI 超买超卖是滞后确认,真正领先的是价格与动能的背离:价格创新高、RSI 不创新高(顶背离),是趋势动能掉队、即将衰竭的领先信号。用 Wilder RSI(14) 从零复现识别后,蒙特卡洛 600 段证明顶背离信号后 20 根内反转命中率 56%,远超随机点位的 24%,而底背离(24.7% vs 27%)信息量有限须打折使用;趋势越强,末端背离越密集(斜率 0.02→0.08 顶背离均数 0.8→3.1)。它抓的是「趋势累了」,不是「一定反转」——配止损、重顶轻底,才是正用。


代码与图表均由 Python(numpy + matplotlib)真实计算,数据为带结构的可复现合成序列(种子 20260718, V 形趋势+末端反转),非占位符。命中率用严格 20 根内 ≥2.5% 折返定义,并以随机点位作对照,未夸大底背离效果。

RSI 背离交易:用价格与动能的背离捕捉趋势衰竭
https://blog.halo26812.eu.org/blog/rsi-divergence
Author halo
Published at 2026年7月18日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨