EFT (Ehlers Fisher Transform) — Преобразование Элерса‑Фишера

Преобразование Элерса‑Фишера (EFT) — это технический индикатор, предложенный Джоном Элерсом (John F. Ehlers). Цель индикатора — преобразовать ценовую серию таким образом, чтобы распределение значений стало максимально близким к нормальному (Gaussian) и при этом «острые» поворотные точки цены выдавались как выраженные экстремумы в индикаторе. Это делает определения локальных разворотов и сигналов на вход/выход более удобными и предсказуемыми.
Цель: сделать колебания цен более заметными, чтобы легче идентифицировать точки разворота рынка. Преобразование делает крайние значения цены более редкими, что помогает лучше выявлять потенциальные развороты.
Ключевые свойства и идеи:
— Преобразование стремится растянуть и центрировать значение цены в диапазон примерно от −1 до +1, затем применяет функцию обратного гиперболического тангенса (обычно арктангенс/логарифм отношения), чтобы получить распределение, близкое к нормальному.
— Индикатор чувствителен к резким изменениям направленности цены и часто показывает четкие пики и впадины на местах разворотов.
— Обычно используется в сочетании с пороговыми уровнями (например, сигналы покупок при пересечении высокого отрицательного минимума вверх и продаж при пересечении высокого положительного максимума вниз), а также с подтверждением объемом, трендом или другими индикаторами.
— Чаще используется на закрытии бара (close) или на усреднённом значении цены (например среднее (high+low+close)/3), в зависимости от варианта реализации.
— В оригинале Элерс рекомендовал использовать нормализацию на основе диапазона (high−low) или экстремума средних значений за N периодов, чтобы получить значение в интервале (−1, +1) перед применением Fisher Transform.
— Выявления перекупленных и перепроданных условий.
— Обнаружения скрытых дивергенций между ценой и индикатором.
— Генерации более точных сигналов для входа и выхода с рынка.
Формула расчёта EFT (Ehlers Fisher Transform) — Преобразование Элерса‑Фишера
Ниже — пошаговый расчёт EFT в классическом варианте, который часто приводится в литературе и торговых платформах.
Обозначения: цена p_t — выбранное значение цены в момент t (например, close или (high+low+close)/3).
Параметр N — длина окна для нормализации (обычно 10). Значения индексируются по времени t = 1,2,…
1) Вычисляем входную серию — выбор цены
p_t = close_t (или: p_t = (high_t + low_t + close_t) / 3)
2) Нормализуем значение по диапазону за N периодов
Найдём максимум и минимум за N периодов (включая текущий):
— maxN_t = max(p_{t−N+1}, …, p_t)
— minN_t = min(p_{t−N+1}, …, p_t)
Вычислим нормализованное значение x_t в интервале (−1, +1):
▪ если maxN_t != minN_t:
— raw = 0.66 * ( (p_t − minN_t) / (maxN_t − minN_t) − 0.5 )
— x_t = clamp(raw, −0.999, +0.999)
▪ иначе (диапазон нулевой): x_t = 0
Пояснение: множитель 0.66 и сдвиг −0.5 используются Элерсом, чтобы масштабировать значения и сделать преобразование устойчивым; пределы ±0.999 предотвращают математические проблем с последующим шагом.
3) Применяем рекурсивное сглаживание (обычно используется двухэтапный рекурсивный фильтр)
Элерс предлагает рекурсивную формулу для smoothed (назовём v_t), которая учитывает предыдущие значения:
v_t = 0.33 * x_t + 0.67 * v_{t−1}
(альтернативы: более сложные фильтры с несколькими коэффициентами встречаются в различных реализациях; важно инициализировать v_0 = 0)
4) Собственно Fisher Transform (EFT)
Fisher_t = 0.5 * ln( (1 + v_t) / (1 − v_t) )
или эквивалентно: Fisher_t = atanh(v_t) (где atanh — обратный гиперболический тангенс)
Для удобства визуализации часто берут конечный сигнал:
— EFT_t = Fisher_t
Также часто рассчитывают сигнальную линию — например, задержанную на 1 период версию:
— signal_t = Fisher_{t−1}
5) Интерпретация сигналов
▪ Сигнал на покупку: Fisher_t пересекает снизу вверх значение signal_t (или пересечение определённого отрицательного порога).
▪ Сигнал на продажу: пересечение сверху вниз.
▪ Экстремумы Fisher (высокие положительные или низкие отрицательные) указывают на потенциальные развороты.
Пример полной формулы в шаговом виде (вариант, близкий к оригиналу):
— raw_t = (p_t − minN_t) / (maxN_t − minN_t) (если деление возможно)
— x_t = 0.66 * (raw_t − 0.5)
— x_t = clamp(x_t, −0.999, +0.999)
— v_t = 0.33 * x_t + 0.67 * v_{t−1}
— Fisher_t = 0.5 * ln( (1 + v_t) / (1 − v_t) )
6) Инициализация
— v_0 = 0 обычно.
— Для первых N−1 баров maxN/minN берутся по доступным данным; пока окно короче, расчёт идёт по имеющимся данным.
7) Варианты и модификации
▪ Вместо 0.33/0.67 и множителя 0.66 некоторые реализации используют другие коэффициенты или несколько этапов рекурсивного сглаживания.
▪ Некоторые реализации применяют простую формулу:
— value = 0.5 * ln( (1 + x_t) / (1 − x_t) )
где x_t уже серия нормализованных значений с более агрессивным сглаживанием.
▪ Для шумных рынков полезно увеличить N или добавить дополнительный фильтр.
Пример псевдокода
input: N = 10
initialize v_prev = 0
for t = 1 to T:
p = price[t] // e.g., close
maxN = max(price[t-N+1 .. t])
minN = min(price[t-N+1 .. t])
if maxN != minN:
raw = (p - minN) / (maxN - minN)
x = 0.66 * (raw - 0.5)
else:
x = 0
x = max(min(x, 0.999), -0.999)
v = 0.33 * x + 0.67 * v_prev
Fisher = 0.5 * ln( (1 + v) / (1 - v) )
signal = Fisher_prev // или задержка на 1
// сохранить Fisher, signal
v_prev = v
Fisher_prev = Fisher
Торговля с индикатором EFT (Ehlers Fisher Transform) — Преобразование Элерса‑Фишера
▪ Экстремальные значения:
— Значения выше +2 часто указывают на перекупленность рынка.
— Значения ниже -2 часто указывают на перепроданность рынка.
▪ Пересечение нулевой линии:

— Пересечение нулевой линии снизу вверх может рассматриваться как бычий сигнал.
— Пересечение нулевой линии сверху вниз может рассматриваться как медвежий сигнал.
▪ Разворот индикатора:
— Разворот индикатора от экстремальных значений часто предшествует развороту цены.
▪ Дивергенции:
— Бычья дивергенция: цена формирует новый минимум, а EFT формирует более высокий минимум.
— Медвежья дивергенция: цена формирует новый максимум, а EFT формирует более низкий максимум.
▪ Наклон линии индикатора:
— Крутой наклон вверх указывает на сильный восходящий импульс.
— Крутой наклон вниз указывает на сильный нисходящий импульс.
▪ Пересечение линий индикатора:

На диаграмме выше вы можете видеть, что когда синяя линия фишера пересекает оранжевую триггерную линию после достижения минимума, мы видим восходящий тренд.


















