Категория
Технические
Уровень
Начальный
Где применяется
Разработка стратегииРабота в MT5

Экспоненциальная скользящая средняя

Скользящая средняя, которая придаёт недавним ценам больший вес, чем старым, и потому разворачивается раньше простой средней. Трендовые фильтры и входы по пересечению в советниках строятся на ней чаще, чем на любом другом индикаторе.

также: EMA, ЕМА, экспоненциальная средняя

Обновлено · Проверено

Простыми словами

Средняя недавних цен, которая уделяет больше внимания только что произошедшему, чем тому, что было некоторое время назад. Она разворачивается быстрее простой средней, а потому полезнее в тренде и разговорчивее в боковике.

Почему это важно

Экспоненциальная средняя — стандартный строительный блок трендовой логики советника: она даёт направление, которого индикаторы вроде ADX намеренно не дают. Она же — самый заезженный и сильнее всего переоптимизированный компонент розничных советников, потому что правило пересечения легко написать, а два его периода легко подкручивать до тех пор, пока любая история не начнёт выглядеть прибыльной.

  • Она даёт стратегии знак. Сила тренда и волатильность лишены направления; именно сравнение цены со средней или быстрой с медленной вводит в правила «вверх» и «вниз».
  • Она реагирует быстрее простой средней, и это важно на разворотах — там решается большая часть результата трендовой стратегии.
  • По построению это запаздывающая мера. Любая скользящая средняя описывает уже случившееся, поэтому пересечение подтверждает, а не предсказывает.
  • Два периода — это два параметра, и перебор по сетке всегда найдёт пару, которая на любом отдельно взятом окне выглядит отлично. Это классическая ловушка переподгонки в проектировании советников.

В MetaTrader 5

Где это в MT5

  • Вставка → Индикаторы → Трендовые → Moving Average, затем метод переключается на Exponential
  • В окне свойств средней задаётся и применяемая цена — Close выбирают обычно, и она заметно меняет значения
  • На графике она рисуется в основном окне, на ценовой шкале, в отличие от ATR или ADX
  • Тестер стратегий → Входные параметры — быстрый и медленный периоды чаще всего и переоптимизируют

Как это используют советники

  • Создавайте хендлы в OnInit — iMA(_Symbol, PERIOD_CURRENT, 21, 0, MODE_EMA, PRICE_CLOSE) — по одному на период и храните их всю жизнь советника.
  • Как фильтр направления: покупать только пока цена или быстрая средняя выше медленной, продавать только ниже.
  • Как вход по пересечению: быстрая средняя пересекает медленную на закрытом баре, для чего нужно читать и бар 1, и бар 2, чтобы поймать именно пересечение, а не состояние.
  • Как ориентир для трейлинга: выходить, когда цена закрывается по другую сторону выбранной средней — правило трейлинга, подстраивающееся под собственный темп тренда.
  • Средние старших таймфреймов читаются тем же вызовом с другим аргументом периода; именно так советник на M15 берёт направление с H4.

Типичные настройки

Параметр Обычное значение Примечание
Пара быстрая/медленная, краткосрочная 8 / 21 Реагирует быстро; даёт много пересечений, большинство из которых не тренды.
Пара быстрая/медленная, среднесрочная 50 / 200 Пара, за которой следят все. Сигналов мало, и те приходят поздно.
Единственный трендовый фильтр средняя 200 на таймфрейме входа Используется как направляющий шлагбаум, а не как вход.
Применяемая цена Close Обычный и устойчивый вариант. Медианная или типичная цена сглаживает сильнее и меняет любой результат тестирования.
Сигнальный бар последний закрытый бар Чтение формирующегося бара порождает пересечения, которые появляются и исчезают внутри бара.

Частые эксплуатационные проблемы

  • Проверять состояние (быстрая выше медленной) вместо события (быстрая пересекла медленную) — это заново входит на каждом баре всё время, пока держится тренд.
  • Читать индекс 0, из-за чего пересечение мерцает на каждом тике и даёт результаты тестирования, которые реальная торговля воспроизвести не может.
  • Хендлы, создаваемые в OnTick, утекают, пока iMA не вернёт INVALID_HANDLE.
  • CopyBuffer на старте, до того как у медленного периода наберётся история, возвращает нули, которые сравниваются как пересечение.
  • Оптимизировать оба периода на одном окне и выпустить пик — самый частый способ для советника выглядеть отлично в тестах и провалиться сразу после.

Связанные функции MT5

iMA(symbol, timeframe, period, shift, MODE_EMA, applied_price)
Создаёт хендл; именно MODE_EMA делает среднюю экспоненциальной, а не простой.
CopyBuffer(handle, 0, start, count, array)
Читает среднюю из её единственного буфера.
ArraySetAsSeries(array, true)
Делает индекс 0 текущим баром — соглашение, которое предполагает почти весь код пересечений.
iTime(symbol, timeframe, 0)
Нужна, чтобы действовать раз в бар, а не раз в тик.

Пример

Разница между чтением состояния и чтением события — самая частая ошибка со средними в коде советника.

Бар 2 — быстрая против медленной
быстрая ниже медленной
Бар 1 — быстрая против медленной
быстрая выше медленной
Именно пара измерений превращает это в пересечение, а не в условие.
Результат проверки состояния
срабатывает на каждом баре
Столько, сколько длится тренд, добавляя каждый раз новую позицию.
Результат проверки события
срабатывает один раз

Обе версии в сильном тренде выглядят на тестах прибыльно. Но задуманной стратегией является только одна из них.

Расчёт if (fast[2] <= slow[2] && fast[1] > slow[1]) → пересечение вверх

Результат Один вход на пересечение вместо одного на бар

Как это используется

Правило на экспоненциальной средней легко написать и легко подогнать. Всё, что стоит проверять, сводится к тому, переживут ли параметры сдвиг.

Диапазон Что означает
Результат рушится, когда период сдвигают на 10 % Подогнано под тестовое окно. У устойчивой настройки соседние значения работают тоже.
Широкий диапазон пар периодов работает похоже Эффект скорее структурный, чем подогнанный, — именно это и означает плато на поверхности оптимизации.
Пересечение без фильтра режима Сигналы срабатывают и в боковике, где они по большей части убыточны. Именно это обычно и исправляют добавлением ADX или фильтра волатильности.
Читается на формирующемся баре Невоспроизводимо. Один и тот же рынок даёт разные входы в зависимости от момента прихода тиков.
  • Выбирая периоды, предпочитайте плато пику. Лучший отдельный результат теста повторяется с наименьшей вероятностью.
  • Сочетайте пересечение с фильтром режима. Трендовое правило без него совершает худшие сделки ровно в тех условиях, где оно слабее всего.
  • Обнаруживайте пересечения по двум барам, а не одним сравнением, и действуйте только на закрытых барах.
  • Помните, что скользящая средняя следует за ценой. Она не может её опережать, поэтому построенная на ней стратегия — стратегия участия, а не предсказания.

Страница `/indicators` о скользящих средних разбирает расчёт и сравнение с простой средней; эта статья — о том, как экспоненциальная средняя вплетается в логику советника.

Частые ошибки

Путать состояние с событием

Проверка «быстрая выше медленной» истинна весь тренд. Проверка «пересекла» требует ещё и предыдущего бара, и разница между ними — это один вход против десятков.

Оптимизировать оба периода и выпустить лучшую пару

Два свободных параметра на гладкой поверхности всегда дадут впечатляющий тест. Значение имеет то, ведут ли себя соседние пары похоже, — в этом и разница между эффектом и подгонкой.

Использовать пересечение без фильтра рыночных условий

В боковике скользящие средние пересекаются постоянно, и почти все эти пересечения убыточны. Фильтр — не оптимизация стратегии, а то, что вообще делает её применимой.

Считать, что экспоненциальная строго лучше простой

Она реагирует быстрее, и это режет в обе стороны: более ранние входы в настоящих трендах и больше ложных сигналов в шуме. Что предпочтительнее, зависит от стратегии, а разница меньше, чем выбор периода.

Подробнее

Что опубликованные советники используют для направления вместо неё

Здесь опубликованы четырнадцать советников с полными списками закрытых сделок. Ни один из них не берёт направление из экспоненциальной скользящей средней.

Механизм направленияСоветникиЧто это
Пересечение Tenkan/Kijun из Ichimoku5Kestrel Hover, Orrery, Peregrine, Tessera, Zerqon
Стек простых скользящих средних1Lanternfish — SMA 25/50/75 на M30, входы на M5
Экспоненциальная скользящая средняя0
Что-то, кроме пересечения8Экстремумы RSI, работа от границ конверта, свечные модели

Эти пятеро сохранили пересечение и отказались от подкрутки: периоды Tenkan/Kijun заданы определением индикатора, а не перебором по сетке. Все пятеро читают закрытый бар, а Orrery и Peregrine действуют только тогда, когда тело сигнального бара превышает кратное его недавнему среднему, — это и есть фильтр режима, который нужен голому пересечению. Их профит-факторы лежат в диапазоне от 1,27 до 1,46, в той же полосе, что и остальной каталог.

Вкладка «Входные параметры» тестера стратегий принимает старт, шаг и стоп для каждого периода. Читайте весь набор результатов, а не верхнюю строку: плато соседних пар — это эффект, одиночный пик — это подгонка. Это и есть переподгонка на практике, и именно поэтому фильтр вроде ADX появляется раньше, чем очередной настраиваемый период.

Часто задаваемые вопросы

Какие периоды экспоненциальной средней используют советники MT5?
Пара 8/21 для краткосрочных систем и 50/200 для среднесрочного определения тренда встречаются чаще всего, а одиночная средняя 200 нередко служит просто направляющим шлагбаумом. Конкретные числа значат меньше, чем то, работает ли стратегия после их сдвига: результат, который держится на одной точной паре, подогнан под тестовое окно.
Экспоненциальная средняя лучше простой для советника?
Она реагирует быстрее, что даёт более ранние входы в настоящих трендах и больше ложных сигналов в шуме. Ни одна не лучше безусловно, и разница между ними обычно меньше разницы между двумя выборами периода внутри любой из них.
Почему мой советник на пересечении средних открывает так много позиций?
Почти всегда потому, что код проверяет, выше ли быстрая средняя медленной, вместо того чтобы проверять, только что ли она её пересекла. Первое условие остаётся истинным весь тренд и срабатывает на каждом баре; чтобы поймать пересечение, нужно сравнить и с предыдущим баром.
Может ли экспоненциальная средняя предсказать разворот тренда?
Нет. Это средняя уже случившихся цен, поэтому она неизбежно следует позади. Пересечение подтверждает, что изменение произошло, а не что оно приближается, и это запаздывание — плата за сглаживание.