ZLEMA 指标:公式、参数与读法
ZLEMA(零滞后指数移动平均,zero-lag exponential moving average)是一种价格叠加线,它平滑的是调整后的收盘价序列,而不是收盘价本身。每个调整值都加上当前收盘价与大约半个周期之前收盘价之间的变化,然后对这个序列计算长度为 N 的指数均线。
Senzoukria · 指标 · Updated September 2026
ZLEMA — 均线与波动率, 叠加在价格图上.
ZLEMA 测量的是什么
这条线是调整后序列的指数均线,而不是价格的指数均线。调整公式为 adj[i] = 2 × close[i] − close[i − lag],其中 lag = floor((N − 1) / 2),默认周期 20 时为 9 根 K 线。换一种写法,adj[i] = close[i] + (close[i] − close[i − lag]):最近 lag 根 K 线的涨跌幅在当前收盘价之上再叠加一次。价格在这段区间内持平时,两个收盘价相等,调整值回落为收盘价;价格上涨时调整值高于收盘价,下跌时低于收盘价。由于平滑作用在这个被放大的序列上,快速单边行情中绘出的线可能位于当前 K 线范围之外。调整序列在 K 线索引 lag 之前不存在,指数均线又以 N 个值的简单平均为初值,因此第一个绘制点位于索引 lag + N − 1,默认周期下为索引 28。更早的 K 线为 null,而不是零。
公式:代码中的实现
这不是别处常见的定义,而是所发布代码实际计算的内容,记录在实现旁边:
ZLEMA — Zero-Lag EMA (Ehlers & Way, 2010) : lag = floor((N−1)/2) (convention usuelle « zero-lag ») adj[i] = 2·close[i] − close[i−lag] (dé-laggage par extrapolation) ZLEMA = EMA_N(adj) adj indéfini avant l'indice `lag`, EMA graine SMA ensuite → premier point à lag + N − 1, null avant. Défaut N=20 (lag = 9).
如何解读
- 先看方向:当近期调整值高于均线前值时,线条上升;由于调整序列已经包含最近 lag 根 K 线的变动,这个拐头比同样 N 的收盘价指数均线来得更早。
- 收盘价穿越这条线,应视为平滑序列的状态变化,而不是入场点。在有订单流背景的图表上,先看穿越那根 K 线实际成交了什么,即价格上的成交量、哪一方是主动方,再考虑是否据此行动。
- 当价格与这条线紧紧缠绕时,参与调整的两个收盘价几乎相等,去滞后项几乎不起作用,这条线的表现就像普通的价格均线。
- 价格与线之间持续的大间距,反映的是近期行情的幅度,而不是目标位。它会通过价格回撤,或价格横盘而均线追上来收窄。
- 单条线只提供方向和距离。如果需要可以解读的关系,请再绘制一个不同周期的线,比较两个时间尺度,而不是孤立地解读一条线的斜率。
参数与默认值
周期(默认 20,整数,1 到 500)同时决定平滑长度和调整的回看长度,因为 lag 由它推导而来,即 floor((N − 1) / 2),默认下为 9 根 K 线。周期短时两项同时缩小:均线平滑更少,外推回看的 K 线也更少,线条贴近价格并频繁改变方向。周期长时平滑更多,但外推的跨度也更长,行情反转时冲过头的幅度更大。N = 1 时 lag 为 0,调整相互抵消,结果就是收盘价本身。颜色(默认 #26c6da)只是外观设置,只影响叠加线在你的图表主题上的显示效果。
| 参数 | 类型 | 默认值 | 取值范围 |
|---|---|---|---|
| Period | number | 20 | 1 – 500 |
它无法显示的内容
ZLEMA 只是减少滞后,并没有消除滞后,而且它去除滞后的唯一输入是收盘价,足迹图和热图显示的买价 × 卖价分布、主动方以及挂单流动性,它都看不到。外推项同时也是它的主要弱点:一段持续行情反转后,close[i] − close[i − lag] 在最多 lag 根 K 线内仍指向旧方向,因此在趋势中让线条灵敏的这一项,在拐点处会把它推过价格。最初 lag + N − 1 根 K 线不绘制任何内容,默认周期下为 28 根,所以刚加载或数据稀疏的图表完全可能暂时没有线。在流动性差的品种或成交稀疏的时段,单笔成交就能移动收盘价,把这个收盘价加倍只会放大这笔成交,而不是过滤它。行情数据来自你的数据提供商并由其单独收费,与订阅无关;指标只能平滑这些数据生成的 K 线。
相关指标
其他语言版本
Frequently asked questions
- ZLEMA 和普通 EMA 有什么不同?
- 普通 EMA 直接平滑收盘价,因此总是落后于价格。ZLEMA 平滑的是 adj[i] = 2 × close[i] − close[i − lag],其中 lag = floor((N − 1) / 2),这意味着在做任何平滑之前,输入就已经朝最近 lag 根 K 线的方向倾斜。同样的周期下,这条线对行情反应更早,行情反转后冲过头也更远。
- ZLEMA 需要多少根 K 线才会开始绘制?
- 调整序列从 K 线索引 lag 起才存在,其中 lag = floor((N − 1) / 2),而指数均线以 N 个值的简单平均为初值。第一个绘制点位于索引 lag + N − 1,默认周期 20 时为索引 28,因为此时 lag 为 9。此前的每根 K 线都返回 null,图表会留空,而不是画在零位。
- 周期应该设多少?
- 该参数接受 1 到 500 的整数,默认 20,即 20 根 K 线的均线配合 9 根 K 线的调整回看。调高会推迟第一个绘制点,并加大反转后的冲过头;调低会让线条贴近价格,并增加变向次数。请根据你实际交易的周期和品种来选择,并在依赖它之前,先看看该设置下这条线在反转时的表现。