在新标签页中打开
跳至正文
寻找适合我的经纪商

RSI 背离:指标标记什么,以及何时才能识别

明确的枢轴点与背离规则、包含失败案例的真实 EURUSD 小时图示例,以及经过交叉核对的 MQL5 下载文件。

技术指标 / RSI 背离

背离工具看似简单:价格创出新的极值,而 RSI 没有。真正有用的问题是,哪些波动算数,您查看的是哪一种 RSI,以及工具需要等待多少根 K 线收盘后才能识别。本页通过明确的规则、真实的小时图和可供您核查的代码来回答这些问题。

Wilder RSI · EURUSD · 小时 K 线 (H1) · 仅使用已收盘 K 线
示例数据:5,000 根已收盘 K 线,终端时间从 2025-12-04 08:00 至 2026-09-24 15:00(交易服务器时钟,采集时为 UTC+3),导出日期为 2026年9月24日。来源

导出数据最近部分的 EURUSD 小时蜡烛图,下方为 RSI 面板。字母对 A 至 D 标记每个看涨背离的波动低点,两个面板中均以绿色线条连接,带三角形的金色虚线标记确认 K 线。
图 1. 检测器在导出数据中最近 240 根小时 K 线上的输出,时间从 2026-09-10 16:00 至 2026-09-24 15:00。在默认设置下,4 个常规看涨背离和 0 个常规看跌背离的两个枢轴点及确认 K 线都位于此窗口内。成对字母标记每个背离的枢轴点 1 和枢轴点 2;三角形与金色虚线标记其收盘使枢轴点 2 得到确认的 K 线。图表数据

RSI 衡量什么

相对强弱指数比较近期平均上涨幅度与平均下跌幅度,并将结果映射到 0 至 100 之间。根据 MT5 帮助文档,Wilder 在推出该指数时建议使用 14 个周期,此后 9 周期和 25 周期的版本也逐渐流行。同一帮助文档指出,RSI 通常在 70 以上见顶,在 30 以下见底。MT5 帮助:RSI

在本下载版本中,30 和 70 水平线仅供参考,不用于筛选任何背离。代码

背离比较什么

背离比较两个价格波动点与相同两根 K 线上的 RSI 读数。MT5 帮助文档将其描述为:价格创出新高或新低,而 RSI 未以自身的新高或新低予以确认。本下载版本将这一描述转化为明确的形态:MT5 帮助:RSI

  • 常规看跌背离:价格形成更高的波动高点,但第二个高点处的 RSI 更低。
  • 常规看涨背离:价格形成更低的波动低点,但第二个低点处的 RSI 更高。
  • 隐藏看跌背离(默认关闭):波动高点更低,但第二个高点处的 RSI 更高。
  • 隐藏看涨背离(默认关闭):波动低点更高,但第二个低点处的 RSI 更低。

本页不测试背离后价格是否反转,而是展示规则会标记什么、何时能够标记,以及价格仍然越过第二个波动点的真实案例。图表数据

本下载版本如何计算 RSI

该指标使用收盘价与 Wilder 平滑法。每根 K 线的价格变动拆分为上涨幅度和下跌幅度,其中一个始终为零,随后分别进行平滑处理。K 线从已加载的最早一根开始计数,起始编号为零:

change[t]  = Close[t] − Close[t−1]
gain[t]    = max(change[t], 0)        loss[t] = max(−change[t], 0)

K 线 N 处的初始值:
AvgGain[N] = (gain[1] + … + gain[N]) / N
AvgLoss[N] = (loss[1] + … + loss[N]) / N

后续 K 线:
AvgGain[t] = (AvgGain[t−1] × (N − 1) + gain[t]) / N
AvgLoss[t] = (AvgLoss[t−1] × (N − 1) + loss[t]) / N

RSI[t]     = 100 − 100 / (1 + AvgGain[t] / AvgLoss[t])

N 为周期,默认为 14。平滑步骤采用 MT5 帮助文档中的平滑移动平均:前一个平均值乘以 N − 1,加上新值,再除以 N。MT5 的 RSI 帮助文档给出了最终公式,但未说明应使用哪一种平均值,因此本页明确说明代码所采用的方法。MT5 帮助:平滑移动平均 MT5 帮助:RSI 代码

初始值与预热

最初的平均上涨幅度和平均下跌幅度是前 14 次价格变动的简单平均值,因此第一个 RSI 值需要 15 个收盘价。在本次导出数据中,该值位于 2025-12-04 22:00 的 K 线上,等于 42.78。更早的 K 线保持空白;若只有 14 根或更少 K 线,指标则完全不绘制任何内容。代码 本页使用的数值

初始值的影响会衰减,却不会完全消失。每一步保留前一个平均值的 (N − 1) / N,因此经过 100 根 K 线后,初始值在每个平均值中的权重仍约为 0.06%。所以,从不同的首根 K 线开始或采用不同初始值的 RSI,起初会显示不同数值。在收盘价和平滑方法相同的情况下,平均值之间的差距会在每根 K 线上按该因子缩小。本页使用的数值

价格完全不变时

如果平均下跌幅度为零,公式就会出现除以零的情况。代码在平均上涨幅度为正时返回 100,在两个平均值均为零、即价格完全没有变动时返回 50。如果平均上涨幅度为零而平均下跌幅度为正,公式本身就会得出 0。代码

真实数据从未出现这些情况:一个也没有——其中 4,986 个 RSI 值没有任何一个恰好等于 0、50 或 100。测试中改用合成的横盘与单向价格序列覆盖这些情况。交叉核对

在相同条件下比较。只有收盘价、周期、平滑方法、初始值和首根 K 线都相同时,两条 RSI 线才会一致。两个背离列表还需要采用相同的枢轴点和配对规则。

指标如何发现背离

波动枢轴点

当一根 K 线的最高价严格高于其前方 5 根 K 线的最高价,且其后方 5 根 K 线的最高价均未超过它时,这根 K 线就是枢轴高点。枢轴低点则对最低价应用相反的规则:

K 线 p 处的枢轴高点:  High[p] > High[j]  对于 j = p − L … p − 1
                      High[p] ≥ High[j]  对于 j = p + 1 … p + R
K 线 p 处的枢轴低点:  Low[p]  < Low[j]   对于 j = p − L … p − 1
                      Low[p]  ≤ Low[j]   对于 j = p + 1 … p + R

L 是 PivotLeftBars,R 是 PivotRightBars。这种不对称性用于处理相等情况:右侧相同的最高价不会使枢轴点失效,左侧相同的最高价则会,因此在彼此比较范围内出现两个相同高点时,较早的 K 线成为枢轴点。真实数据中确实存在相等情况。在本次导出数据中,10 个枢轴高点和 4 个枢轴低点的右侧存在相同极值;另有 14 个高点和 4 个低点仅因左侧存在相同极值而未被选中。导出数据共有 313 个枢轴高点和 311 个枢轴低点。代码 计数

配对与背离检验

新的枢轴点得到确认后,代码仅将其与前一个同类型枢轴点比较。当两个枢轴点相距 5 至 60 根 K 线,且第一个枢轴点处已经存在 RSI 值时,才会检验这一配对。较近的枢轴点始终会阻止与更早枢轴点的比较。代码

常规看跌背离:     High[p2] > High[p1]  且  RSI[p2] < RSI[p1]
常规看涨背离:     Low[p2]  < Low[p1]   且  RSI[p2] > RSI[p1]
隐藏看跌背离:     High[p2] < High[p1]  且  RSI[p2] > RSI[p1]
隐藏看涨背离:     Low[p2]  > Low[p1]   且  RSI[p2] < RSI[p1]
报告所在的 K 线:  c = p2 + R

所有比较均为严格比较,因此价格相同或 RSI 读数相同都不会构成背离。左侧取 5 根 K 线、右侧取 5 根时,两个同类型枢轴点之间始终至少相隔 6 根 K 线,因此默认设置下的最小距离不会产生约束。规则

设置

以下是本下载版本的输入参数。本页所有图表均采用默认值;这些值是用于说明的起点,并非优化结果。

输入参数 默认值 控制内容
RsiPeriod 14 对收盘价应用 Wilder 平滑法时使用的 RSI 周期。
PivotLeftBars 5 枢轴点之前的 K 线数量,其极值必须被枢轴点严格超越。
PivotRightBars 5 枢轴点之后不得超过其极值的已收盘 K 线数量。这也是确认延迟。
MinPivotDistance 5 一对枢轴点之间允许的最少 K 线数量。
MaxPivotDistance 60 两个枢轴点之间允许的最多 K 线数量。对前一个枢轴点的搜索到此为止。
ShowHidden false 添加隐藏背离,以点线及各自的箭头显示。

输入参数定义

周期决定每次新变动的权重。Wilder 平滑法在默认周期下赋予其 1/14 的权重;采用 MT5 帮助文档提及的其他周期时,权重为 1/9 或 1/25,因此周期越短,对每根 K 线的反应越大。PivotRightBars 在速度与确认之间取舍:增大此值绝不会增加枢轴点,却会使每个背离的检测推迟相应增加的 K 线数量。MT5 帮助:RSI 本页使用的数值

解读真实案例

图 2 至 4 按照固定筛选规则从导出数据中选取。图 2 和 3 的规则根据枢轴点之间的 RSI 差值对检测结果排序,不考虑此后的价格走势。图 4 则特意选择了一个失败案例。筛选规则

EURUSD 小时蜡烛图,下方为 RSI 面板。红线连接一个波动高点与略高的第二个波动高点,而 RSI 面板中相同 K 线之间的红线向下倾斜。阴影区域覆盖第二个波动点之后直到确认 K 线的区间,金色虚线与向下箭头标记确认 K 线。
图 2. 常规看跌背离。枢轴点 1 位于 2026-08-28 04:00:最高价为 1.16549,RSI 为 47.82。枢轴点 2 位于 2026-08-28 17:00:最高价为 1.16588,RSI 为 28.83。检测结果在 22:00 的 K 线收盘时出现,即枢轴点 2 之后有 5 根 K 线收盘时;该确认 K 线的收盘价为 1.15853。此例是在枢轴点 1 之前有 12 根 K 线、确认 K 线之后有 24 根 K 线的常规看跌背离中,RSI 差值最大的一个。图表数据

图 2 中,第二个高点比第一个高出 0.00039,而 RSI 低了 18.99 点。两个序列基于不同的价格:枢轴点使用最高价和最低价,RSI 使用收盘价。创出第二个高点的 K 线收于 1.16168,比自身最高价低 0.00420,比前一收盘价低 0.00212,因此 RSI 恰好在创出新高的那根 K 线上记录了下跌。本页使用的数值

EURUSD 小时蜡烛图,下方为 RSI 面板。绿线连接一个波动低点与略低的第二个波动低点,而 RSI 面板中相同 K 线之间的绿线向上倾斜。阴影区域止于确认 K 线,金色虚线与向上箭头标记该 K 线;点线将第二个低点向右延伸。
图 3. 常规看涨背离。枢轴点 1 位于 2026-05-20 11:00:最低价为 1.15830,RSI 为 32.46。枢轴点 2 位于 2026-05-20 17:00:最低价为 1.15821,RSI 为 58.68。在 22:00 的 K 线收盘时得到确认,即枢轴点 2 之后有 5 根 K 线收盘时;该确认 K 线的收盘价为 1.16273。采用与图 2 相同的筛选规则,但应用于看涨背离。图表数据

图 3 中的第二个低点仅比第一个低 0.00009,即 9 个点,该品种的最小价格变动单位为 0.00001;与此同时,RSI 高出 26.22 点。规则未设置最小幅度,因此如此微小的差异与其他差异一样有效。此处枢轴 K 线的收盘价同样远离其极值:收于 1.16176,比自身最低价高 0.00355,比前一收盘价高 0.00272。本页使用的数值

这两个案例都不是根据结果挑选的。图 2 确认后,接下来 24 根 K 线中没有任何最高价超过枢轴点 2。图 3 确认后,价格在 2026-05-21 16:00 跌破枢轴点 2,最低价为 1.15757,距确认 K 线已有 18 根 K 线。图表记录

EURUSD 小时蜡烛图,下方为 RSI 面板。红线连接一个波动高点与略高的第二个波动高点,而两者之间的 RSI 下降。在确认 K 线之后,价格后来在一根带有洋红色标签的 K 线上升至表示第二个高点水平的点线上方。
图 4. 一个失败的常规看跌背离。枢轴点 1 位于 2026-04-06 10:00:最高价为 1.15682,RSI 为 71.11。枢轴点 2 位于 2026-04-06 17:00:最高价为 1.15710,RSI 为 53.23。在 22:00 的 K 线收盘时得到确认。在 2026-04-07 11:00,即确认 K 线之后 13 根 K 线处,最高价 1.15751 超过了枢轴点 2。这是刻意选取的案例:在图 2 和 3 之外、价格于 24 根 K 线内越过枢轴点 2 的常规背离中,它的 RSI 差值最大。图表数据

图 4 的检测符合规则:价格高点更高,RSI 却低了 17.88 点。未能实现的是对反转的预期。价格先跌至 1.15237 的低点,时间为 2026-04-07 05:00,随后继续上涨,创出更高的高点。图表记录 本页使用的数值

样本显示了什么

在默认设置下,导出数据包含 73 个常规背离:29 个看跌背离和 44 个看涨背离。开启 ShowHidden 后,新增 43 个隐藏看跌背离和 29 个隐藏看涨背离,总数为 145。这些计数仅描述该样本在这些规则下的情况,并非命中率,也未测试任何交易表现。计数

背离描述的是两个已经发生的波动。价格接下来如何变化,是另一个问题。

何时才能识别背离

确认延迟

枢轴点需要右侧有 5 根已收盘 K 线,因此检测器必须等到其中最后一根 K 线收盘后,才能识别枢轴点 2。代码将箭头放在该确认 K 线上,而非枢轴点 2 上;两个 RSI 读数之间的连线也在同一时刻出现。图表上最新的 K 线被视为仍在形成,因此它绝不会用于确认枢轴点。代码

放大的 EURUSD 小时图,带有 RSI 面板。绿线连接一个波动低点与略低的第二个波动低点。第二个低点之后的阴影区域逐根计数至确认 K 线,金色虚线标记该 K 线;RSI 面板中的注释说明,连线与箭头仅在该 K 线收盘后出现。
图 5. 最近一个枢轴点间距不超过 30 根 K 线的常规背离的确认延迟。枢轴点 2 是 2026-09-24 05:00 的 K 线,于 06:00 收盘。当 10:00 的 K 线在 11:00 收盘时,检测结果才成为已知信息,此时又有 5 根 K 线收盘。导出数据在此后 5 根 K 线处结束;这些 K 线中的最低价为 1.13611,出现在 13:00,低于枢轴点 2 的最低价 1.13683。图表数据

它会重绘吗?

检测结果一旦写入,只要已收盘的历史数据不变,就会保持原位。原生测试逐根重放全部 5,000 根 K 线,先为最新 K 线提供一个发生变化的中间报价,再提供其最终值,并在每一步检查检测结果是否只在确认 K 线上出现,且此后不再改变。与任何 RSI 一样,最新 K 线上的 RSI 值仍会随每次报价而变动。如果价格历史本身发生变化,例如下载了更早的历史数据,终端会将 prev_calculated 设为零传入,指标则基于新数据重新计算全部内容。原生测试 MQL5 参考:OnCalculate

在用于定义波动的 K 线收盘之前,无法确认该波动。

与其他工具结合

检测器仅比较两个波动点与两个 RSI 读数,不涉及其他内容。任何附加条件都是需要您自行定义和测试的独立规则。本指南未测试以下任何附加条件:

  • 价格水平。图 2 至 5 中的点线延伸了枢轴点 2 的价格水平。价格之后是否越过该水平,可从图表中看出;图 3 至 5 中确实发生了这种情况。
  • RSI 水平。例如仅保留低于 30 的看涨背离,这样的筛选条件将构成新的输入。本下载版本绘制了 30 和 70 水平线,但不以此筛选。
  • 其他 RSI 读数。MT5 帮助文档还描述了 RSI 线本身的顶部与底部、图表形态、失败摆动以及支撑或阻力。检测器不寻找这些情况。
  • 趋势筛选与更高时间周期。采用移动平均线等趋势筛选条件,或在更高时间周期上应用相同规则,都会改变最终保留的检测结果。本页未衡量这两种做法。

MT5 帮助:RSI

局限性

  • 检测器描述过去的 K 线,不进行预测,也不报告任何命中率或交易结果。
  • 按照设计,每个检测结果都在枢轴点 2 之后 5 根 K 线收盘时出现。
  • 微小差异也算数。在 621 对被检验的枢轴点中,最小价格差为 0.00001,即该品种的最小价格变动单位;最小 RSI 差为 0.05 点。有 1 对枢轴点的价格完全相同,按照规则不构成背离。
  • 枢轴点使用最高价和最低价,而 RSI 使用收盘价。带有长影线的 K 线可能创出新的极值,却仍收在远离该极值的位置,图 2 和 3 就是如此。
  • 只比较相邻的枢轴点,间距最多为 60 根 K 线。非相邻波动点之间的背离不会被报告。
  • 已加载历史数据起始位置附近的数值取决于初始值,可能与其他 RSI 实现不同。
  • 时间采用交易服务器时钟,采集时为 UTC+3;未对历史夏令时变更建模。图表压缩了周末及其他时间间隔。
  • MQL4 文件尚未在 MT4 中编译或运行。

判定余量 代码

使用指标

以下步骤适用于 MT5。.mq4 文件面向 MT4,尚未在该平台上测试。

  1. 下载下方的 .mq5 源码或已编译的 .ex5 文件。
  2. 打开数据文件夹(在 MetaEditor 中选择“文件 › 打开数据文件夹”),然后将文件复制到 MQL5\Indicators 文件夹。
  3. 如果您使用源码,请在 MetaEditor 中打开并按 F7 编译。这将生成 .ex5 文件。
  4. 在 MT5 的 Navigator 窗口中,将指标拖到图表上。它会在独立指标窗口中打开,使用自己的刻度,固定范围为 0 至 100。
  5. 保留默认值以与本页一致,或在加载指标时修改设置表中的输入参数。

数据文件夹 指标文件夹与编译 加载指标

MQL5 源码

可编辑的原生 MQL5 代码:在独立窗口中显示 RSI 及背离连线和箭头。不下单、不发出提醒、不导入 DLL,也不发起网络请求。

下载 .mq5 →

MQL5 编译版

使用 MetaEditor 从此源码构建:0 个错误,0 个警告。尚未测试将其加载到实时图表上。

下载 .ex5 →

MQL4 源码

相同的计算部分,配以 MT4 风格的缓冲区设置。仅进行过静态审查:未在 MT4 中编译或运行。

下载 .mq4 →

检查了哪些内容

MQL5 文件的计算部分仅重命名了入口函数,随后编译为测试程序,并在 MT5 数学测试器中对相同的 5,000 根 K 线运行。采用相同规则的独立参考实现处理了相同的数据行。其 Wilder 平均值使用指数加权平均,这是同一递推关系的另一种算术形式。测试框架范围 MQL5 参考:测试 指数加权平均

全部 4,986 个 RSI 值的差异均在 4.97e-14 点以内,其中 2,139 个逐位一致。通过测试的容差为 1e-9 点:远高于预期约 1e-13 点的浮点噪声,也远比指标显示的 2 位小数精细。开启 ShowHidden 后,全部 145 个检测结果在类型、确认 K 线和两个枢轴 K 线上完全一致。没有任何判定接近容差:所有被检验配对中的最小 RSI 差为 0.05 点。交叉核对 构建日志

原生程序通过了 41 项检查,总计 41 项,覆盖预热与初始值、横盘与单向价格、相等的高低点、答案已知的背离、历史数据不足、重复报价、变化中的未收盘 K 线、新增 K 线、逐根 K 线重放,以及默认 ShowHidden 设置。交叉核对脚本通过了 24 项比较,总计 24 项。原生测试 交叉核对

这些检查覆盖算术计算与更新逻辑,不涵盖实时图表上的绘制、MT4 或交易结果。测试框架范围

风险警告。交易存在风险,您可能亏损。该指标仅标记过去的价格与 RSI 形态:它不预测价格、不下单、不保护订单,也不管理风险。示例用于说明规则,并非交易信号,本页任何内容均不承诺结果。

常见问题

什么是 RSI 背离?

它指两个价格波动点与相同两根 K 线上的 RSI 读数不一致。在常规看跌背离中,价格形成更高的波动高点,而第二个高点处的 RSI 更低。在常规看涨背离中,价格形成更低的波动低点,而第二个低点处的 RSI 更高。

本下载版本如何计算 RSI?

它使用收盘价和 Wilder 平滑法,周期为 14。最初的平均上涨幅度和平均下跌幅度是前 14 次价格变动的简单平均值;之后,每次新变动以 1/14 的权重计入。使用不同平滑方法的 RSI 在整个序列中都会产生不同数值。若平滑方法相同,但初始值或首根 K 线不同,则差异在历史数据起始位置附近最大,随后逐渐减小。

为什么背离会在波动点之后 5 根 K 线才出现?

只有当波动点右侧的 5 根 K 线都已收盘,且未超过该波动点的极值时,它才成为枢轴点。指标在这些 K 线中的最后一根上报告背离,不会将其移回枢轴 K 线,因此图表显示的是指标在当时能够获知的信息。

指标会重绘吗?

确认后,只要已收盘的历史数据不变,就不会重绘。对全部 5,000 根 K 线进行原生重放,并在每根新 K 线上加入一个中间报价,未发现任何提前出现、后来移动或改变的检测结果。正在形成的 K 线上的 RSI 值仍会随每次报价变化;若已加载的历史数据发生变化,例如下载了更早的历史数据,指标就会重新计算全部内容。

什么是隐藏背离?

隐藏看跌背离是波动高点更低、RSI 却更高;隐藏看涨背离是波动低点更高、RSI 却更低。它们默认关闭。将 ShowHidden 设为 true 后,会以点线及各自的箭头绘制。交叉核对在开启此设置的情况下对其进行了比较;原生测试确认,默认设置不会绘制任何隐藏背离,并且常规背离保持不变。

背离是否意味着价格会反转?

本页并未证明这一点。它描述的是固定规则下的一个样本,图 3、4 和 5 均显示价格在确认后越过了第二个波动点。未测试任何命中率或交易结果。

我可以在 MT4 中使用 MQL4 文件吗?

.mq4 文件包含与已测试的 MQL5 文件相同的计算部分,并采用 MT4 风格的缓冲区设置。它仅经过静态审查:未在 MT4 中编译或运行。使用前,请在 MT4 随附的 MetaEditor 中编译,并检查编译日志中的错误和警告。

来源与可复现性

MT5 帮助:相对强弱指数:范围、Wilder 建议的周期与常用替代周期、通常的顶部与底部、背离及公式。

MT5 帮助:移动平均线:平滑移动平均公式。

MQL5 参考:OnCalculate:prev_calculated 值,以及价格数据变化后的完整重算。

MQL5 参考:copy_rates_from_pos:导出时的 K 线位置;位置零为当前 K 线,导出时跳过该 K 线。

MQL5 参考:测试:原生测试使用的数学计算模式。

参考库文档:指数加权平均:独立核对使用的 adjust=False 递推关系。

MetaEditor 帮助:平台结构:数据文件夹与指标文件夹。

MT5 帮助:算法交易:MQL5\Indicators 文件夹及使用 F7 编译。

MT5 帮助:技术指标:从 Navigator 加载指标以及独立指标窗口。

本页和图表使用的数值 · 导出的 K 线 · 导出数据来源记录 · 参考 RSI 与枢轴点 · 参考检测结果 · 原生 MQL5 缓冲区 · 原生 MQL5 检测结果 · 交叉核对 · 原生测试运行 · 构建日志 · 编译日志 · 规格说明

图表压缩了 K 线之间的周末及其他时间间隔。时间为导出时终端的交易服务器时钟。示例固定不变,以便复现,并非实时市场评论。

杠杆产品可能迅速造成亏损;中国大陆居民不得通过境外经纪商进行差价合约或外汇零售交易。

继续阅读

外汇经纪商监管机构排名:从 1 级监管到离岸监管

模拟交易:如何使用虚拟资金练习

订单区块详解:定义、规则与测试结果