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

ZLEMA
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, она может действовать как поддержка, если ниже — как сопротивление.