WHMA (Weighted Hull Moving Average) — Взвешенная скользящая средняя Халла

Индикатор Weighted Hull Moving Average — модификация классического Hull Moving Average (HMA), цель которой сохранить быструю реакцию на смену тренда (как у HMA), но улучшить устойчивость к шуму за счёт взвешенного (weighted) усреднения цен с учётом более информативных весов (например, линейных или экспоненциально убывающих).
— В основе лежит принцип уменьшения лагов стандартных скользящих средних путём комбинирования двух скользящих средних с разными окнами и последующего сглаживания результирующей разницы/комбинации. WHMA добавляет веса в расчёты (WMA вместо SMA) и/или использует адаптивные веса для снижения влияния удалённых наблюдений.
Особенности реализации:
— Каузальность: WHMA реализуется каузально — использует только прошлые и текущие цены; пригодна для реального времени.
— Быстродействие: за счёт использования WMA (вместо SMA) и хитрой композиции окон достигается меньшая задержка по сравнению с обычными SMA/EMA той же «эффективной» сглаженности.
— Параметры: основная свободная переменная — окно N (положительное целое). Дополнительно — тип весов (линейные, экспоненциальные), опциональная нормировка или ограничение веса краёв окна.
— Чувствительность к шуму: уменьшается относительно простых WMA за счёт построения двух (или более) уровней комбинирования (короткое окно, длинное окно, финальное сглаживание).
— Отношение к HMA: при выборе тех же весов WHMA эквивалентен HMA; отличие — явное использование WMA с настраиваемыми весами и возможная модификация финального сглаживания (например, дополнительный WMA с малым окном или медианная фильтрация для шумозащиты).
Интерпретация:
— WHMA трактуется как оценка локального тренда/центрального поведения цены с малыми запаздываниями. Положительное значение наклона — бычий тренд, отрицательное — медвежий.
— Расстояние между ценой и WHMA даёт меру отклонения/перепроданности-перекупленности относительно текущего тренда.
Формула расчёта Индикатора Weighted Hull Moving Average (WHMA)
Ниже — формула в пошаговом виде. Обозначения:
— p[t] — цена в момент t (например, закрытие, close).
— WMA(p, k)[t] — взвешенная скользящая средняя для серии p с окном k, рассчитанная каузально по времени t.
— N — базовый период (целое >1).
— round(·) — округление до ближайшего целого (для HMA применяется чаще всего round(N/2) и round(sqrt(N))).
— WHMA[t] — итоговое значение индикатора в момент t.
Шаг 0 — определение WMA:
— Общая формула каузального WMA с линейными весами (веса для i = 1..k: w_i = i):
WMA(p, k)[t] = (sum_{i=0 to k-1} w_{k-i} * p[t — i]) / (sum_{i=1 to k} i)
где w_{k-i} = k — i (или использовать w_{i} = i, эквивалентно, при соответствующей индексации).
Более удобно записать:
WMA(p,k)[t] = ( sum_{j=0}^{k-1} (k-j) * p[t-j] ) / (k*(k+1)/2)
Шаг 1 — вычислить две WMA с окнами N1 и N2:
— N1 = round(N/2)
— N2 = N
— A[t] = WMA(p, N1)[t]
— B[t] = WMA(p, N2)[t]
Шаг 2 — взвешенная комбинация
— C[t] = 2 * A[t] — B[t]
Шаг 3 — финальное сглаживание
— M = round(sqrt(N))
— WHMA[t] = WMA(C, M)[t]
Комментарии к формуле и вариации
— Альтернативные веса: в WMA можно использовать не только линейные веса i, но и экспоненциально убывающие (w_j = α^(j)) или адаптивные веса, зависящие от волатильности; при этом нормировка должна сохраняться: WMA = sum(w_j * p_j) / sum(w_j).
— Каузальность: все WMA вычисляются каузально (используют p[t], p[t-1], … p[t-k+1]). Это обеспечивает пригодность индикатора для реального времени.
— Перенормировка после усечения: если реализовать WMA через усечённое ядро (например, для ускорения), важно пересчитать нормировочный знаменатель sum(w_j) для используемого окна — иначе смещение.
— Расчёт задержки: для каждого WMA можно вычислить задержку (delay_k = sum_{j=0}^{k-1} j * w_{k-j} / sum_{j=1}^{k} w_j). Для WHMA суммарная задержка приближённо равна комбинации задержек на каждом шаге (учитывать коэффициенты 2 и -1 и последующее сглаживание). Формально:
delay_WHMA ≈ delay_WMA(N1) * 2 — delay_WMA(N2) + delay_WMA(M)
где delay_WMA(k) — каузальная задержка WMA с окном k. Это приближение — при вычислениях с конечной точностью и округлениями нужно проверять эмпирически.
— Числовая стабильность: при использовании больших N следите за переполнением сумм весов; для плавающей арифметики обычно достаточно нормировки, но при длинных окнах стоит использовать двойную точность.
Применение в трейдинге Индикатора Weighted Hull Moving Average
Основные применения:
— Определение направления тренда: знак и величина наклона WHMA (производная/разность соседних значений) указывают направление и силу тренда.
— Сигналы входа/выхода:
— Пересечение цены с WHMA: цена пересекает WHMA сверху вниз — потенциальный короткий сигнал; снизу вверх — длинный сигнал. Требуется подтверждение по объёму или другому индикатору для снижения ложных входов.
— Кроссоверы двух WHMA с разными N (короткая vs длинная): классический тренд-фильтр и сигналы при пересечении.
— Наклон/производная WHMA: пороговая фильтрация по величине наклона (нормировать через ATR или σ остатков) для отсева слабых сигналов.
— Динамические уровни: использовать WHMA как уровень поддержки/сопротивления; расстояние price − WHMA применять для расчёта тейк‑профитов/стопов (в сочетании с ATR).
— Фильтрация шума: WHMA быстрее EMA/SMA при той же «гладкости», поэтому лучше подходит для краткосрочных TF, где важна скорость реакции.
Практические рекомендации по параметрам:
— Короткие TF (минутные): N = 6–20 (как старт; типичные HMA-практики: 9, 14)
— Средние TF (часовые): N = 20–60 (например, 21, 34)
— Длинные TF (дневные и выше): N = 50–200 (например, 55, 89, 144)
— Для быстрых сигналов используйте меньшие N1 = round(N/2) и M = round(sqrt(N)); для более гладкой линии увеличьте M или добавьте дополнительный шаг сглаживания.
Фильтрация и подтверждение (кратко, поскольку в спецификации уже подробно описано):
— Нормировка наклона через ATR или стандартное отклонение остатков.
— Порог SNR = |slope| / std(residuals) — отбрасывать сигналы при SNR < SNR_min (эмпирически 0.5–1.5 в зависимости от TF


















