ZLEMA (Zero Lag Exponential Moving Average) — Экспоненциальное скользящее среднее с нулевым запаздыванием

Zero Lag Exponential Moving Average (ZLEMA) — модификация экспоненциальной скользящей средней (EMA), разработанная Джоном Элерсом (John F. Ehlers), и он написал о них в книге, которую опубликовал в 2001 году, под названием ‘Rocket Science for Traders.’ Эта книга познакомила мир торговли с концепцией ZLEMA. Цель которой уменьшить запаздывание индикатора относительно цены. Это достигается смещением входных данных (обычно цены закрытия) назад на величину задержки, рассчитываемую через период, и последующим применением стандартной EMA к скорректированному ряду. ZLEMA не устраняет лаг полностью, но заметно снижает его по сравнению с классической EMA, сохраняя сглаживание.
Ключевые свойства:
— Быстрее реагирует на новые ценовые движения, чем EMA с тем же периодом.
— Менее склонна к ложным срабатываниям, чем просто уменьшение периода EMA (поддерживает сглаживание).
— Используется для более раннего выявления смен тренда при сохранении фильтрации шума.
Расчёт индикатора Zero Lag Exponential Moving Average, ZLEMA
Обозначения:
— P_t — цена в момент t (обычно Close)
— N — период ZLEMA
— Lag = (N — 1) / 2 (часто дробное; некоторые реализации используют округление)
— EMA(·, N) — стандартная экспоненциальная скользящая средняя с периодом N и коэффициентом α = 2/(N+1)
Последовательность вычислений:
1. Рассчитать скорректированную (de-lagged) цену:
X_t = P_t + (P_t — P_{t — Lag}) = 2·P_t — P_{t — Lag}
(если Lag дробный, обычно используют округление; некоторые реализации интерполируют P_{t-Lag}.)
2. Применить EMA к серии X_t:
ZLEMA_t = EMA(X_t, N)
Эквивалентная рекурсивная запись (через коэффициент α = 2/(N+1)):
ZLEMA_t = α·X_t + (1−α)·ZLEMA_{t-1}
Начальное значение ZLEMA_0 обычно задают равным P_0 или простому среднему первых N значений.
Примечание: в литературе и скриптах встречаются вариации (например, Lag = (N−1)/2, либо Lag = round((N−1)/2), либо другой способ вычисления корректировки). Суть — использовать разницу между текущей ценой и ценой с отставанием, умножить на корректирующий коэффициент и применить EMA к скорректированному ряду.
Второй вариант для расчета
1. Расчет лага как половины периода:
lag = (Length — 1) / 2
2. Вычисление «детрендированной» цены:
detrendedPrice = 2 * Price — Price[lag]
Это ключевой шаг, который позволяет «заглянуть вперед» и устранить запаздывание.
3. Применение экспоненциального сглаживания к детрендированной цене:
k = 2 / (Length + 1)
ZLEMA = k * detrendedPrice + (1 — k) * ZLEMA[previous]
Возьмем пример
Нам нужно найти ZLEMA цены акции на 20-дневный период. Цена сегодня составляет ₹580, а 10 дней назад была ₹540. Предыдущий ZLEMA был ₹560.
Во-первых, мы найдем отставание на 20-дневный период,
Лаг = (20-1)/2 = 9,5
Мы округлим эту цифру и возьмем цену 10 периодов назад.
Теперь мы рассчитаем отложенную или скорректированную цену:
Скорректированная цена = ₹580 + ₹(580-540) = ₹580 + ₹40 = ₹620
Теперь найдите множитель сглаживания (k) = 2/(Период+1)
За 20-дневный период k = 2/(20+1) = 0,095
ZLEMA = [Скорректированная цена*k]+[Предыдущий ZLEMA*(1−k)]
= [620*0,095]+[560*(1−0,095)] = 58,9 + 560*0,905 = 58,9 + 506,8
ЗЛЕМА = ₹ 565,7
Применение в трейдинге Zero Lag Exponential Moving Average, ZLEMA:
● Определение тренда: цена выше ZLEMA → бычий фон; ниже → медвежий. Благодаря меньшему лага тренд определяется чуть раньше, чем по обычной EMA.
● Сигналы пересечений:
— Цена ↔ ZLEMA: пробой/пересечение дают сигналы входа/выхода (вход при пересечении в сторону тренда; выход при обратном пересечении).
— Перекрёст двух ZLEMA с разными периодами (короткая/длинная) — аналог сигнала «золотого креста»/»смертельного креста», но с меньшим запаздыванием.
— Пересечения ZLMA и EMA могут использоваться как сигналы для входа в позицию или выхода из нее:
— Когда ZLMA пересекает EMA снизу вверх, это может быть сигналом для открытия длинной позиции.
— Когда ZLMA пересекает EMA сверху вниз, это может быть сигналом для открытия короткой позиции или закрытия длинной.
● Подтверждение импульсов: при резком движении ZLEMA быстрее отклоняется, помогая подтверждать импульс раньше, чем EMA.
● Трейлинг-стопы и управление позицией: ZLEMA может использоваться как динамический уровень для трейлинга стопа, где меньший лаг позволяет раньше фиксировать прибыль или сокращать убытки.
● Фильтрация сигналов: сочетание ZLEMA с осцилляторами (RSI, MACD) и объёмом помогает отделить истинные сигналы от ложных в боковом рынке.
● Таймфреймы и параметры: ZLEMA хорошо подходит как для интрадей (короткие периоды, быстрый отклик), так и для свинг-трейда (более длинные периоды). Параметры подбирают эмпирически под инструмент и волатильность.
● Идентификации уровней поддержки и сопротивления. ZLEMA может служить как динамический уровень поддержки или сопротивления: если цена выше ZLEMA, она может действовать как поддержка, если ниже — как сопротивление.


















