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

Индекс среднего направленного движения (ADX)

Индикатор ADX измеряет силу тренда по шкале от 0 до 100, не указывая его направление. Советники используют его как фильтр режима: трендовые стратегии ждут высокого значения, стратегии возврата к среднему — низкого.

также: ADX, Average Directional Movement Index, DMI

Обновлено

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

Число, которое говорит, насколько сильно рынок движется в одну сторону, но не говорит, в какую именно. Низкое значение означает, что он никуда конкретно не идёт; высокое — что он куда-то идёт, а знак направления приходится брать из другого источника.

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

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

  • Он разделяет два семейства, которые уничтожают друг друга. Сеточный советник или советник возврата к среднему стабильно теряет в сильном тренде, а трендследящий истекает кровью в боковике; один порог удерживает каждого вне чужой погоды.
  • По своей конструкции он лишён направления, что делает его фильтром, а не сигналом, — и объясняет, почему его всегда сочетают с чем-то, что направление имеет.
  • Он медленный. Сглаживание, которое делает его устойчивым, одновременно означает, что тренд он подтверждает уже после его начала, поэтому он лучше исключает плохие условия, чем рано ловит хорошие.
  • Фильтр поддаётся проверке: запустите ту же стратегию с ним и без него и сравните разницу по просадке, а не только по прибыли.

В MetaTrader 5

Где это в MT5

  • Вставка → Индикаторы → Трендовые → Average Directional Movement Index
  • Окно индикатора рисует три линии: саму линию ADX, +DI и −DI
  • Пара DI несёт направление, которого у ADX нет: +DI выше −DI — бычья конфигурация
  • Тестер стратегий → Входные параметры: период и порог являются входами, причём именно порог провоцирует переподгонку

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

  • Создайте хендл в OnInit — iADX(_Symbol, PERIOD_CURRENT, 14) — и читайте буфер 0 для ADX, буфер 1 для +DI и буфер 2 для −DI.
  • Как ворота перед правилом входа: трендовый советник немедленно выходит, пока ADX не выше своего порога; диапазонный выходит, пока тот не ниже.
  • Как проверку направления, когда используются линии DI: +DI выше −DI для покупок, наоборот для продаж, а ADX подтверждает, что тренд, за которым можно идти, вообще существует.
  • Читайте последний завершённый бар, а не формирующийся: значение ADX, мерцающее вокруг порога внутри бара, порождает входы, которые невозможно воспроизвести в тесте.
  • Некоторые советники дополнительно требуют, чтобы ADX рос, а не просто был высоким, что отсеивает сильные, но уже затухающие значения ближе к концу движения.

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

Параметр Обычное значение Примечание
Период 14 Общепринятое значение по умолчанию. Более короткие периоды реагируют быстрее и пересекают порог чаще — в обе стороны.
Трендовый порог 20–25 Выше этого уровня включается трендследящая логика. Точное значение важно меньше, чем его устойчивость относительно соседних величин.
Диапазонный порог ниже 20 Сеточные советники и советники возврата к среднему обычно требуют этого, прежде чем вообще что-то открыть.
Сильный тренд выше 40 Здесь контртрендовые входы и возврат к среднему, как правило, блокируются полностью.
Таймфрейм чтения таймфрейм входа или на один выше Чтение старшего таймфрейма даёт более медленный и устойчивый сигнал режима ценой более поздней реакции.

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

  • Хендлы создаются внутри OnTick вместо OnInit, что приводит к утечке и рано или поздно возвращает INVALID_HANDLE.
  • CopyBuffer падает на старте, пока не загружено достаточно баров, что читается как нулевой ADX и молча отключает — или включает — фильтр.
  • Порог стоит ровно там, где индикатор проводит большую часть времени, поэтому фильтр постоянно щёлкает, и поведение советника определяется шумом.
  • Порог оптимизируется под лучшее значение бэктеста, что даёт число, работающее только на протестированном окне.
  • ADX читается как направленный, и на высоком значении открывается покупка на падающем рынке.

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

iADX(symbol, timeframe, adx_period)
Создаёт хендл; один вызов в OnInit, сохраняемый на всё время жизни советника.
CopyBuffer(handle, 0, …)
Сама линия ADX — сила тренда, без направления.
CopyBuffer(handle, 1, …) / CopyBuffer(handle, 2, …)
+DI и −DI, направленная пара, из которой выводится линия ADX.
iTime(symbol, timeframe, 1)
Отметка времени завершённого бара, по которой советники убеждаются, что значение стабильно.

Пример

Одно правило входа, два фильтра режима, противоположные условия. Правило не меняется; меняется момент, когда ему разрешено сработать.

ADX ниже 20
режим диапазона
Логика возврата к среднему и сетки разрешена; трендовые входы заблокированы.
ADX 20–40
умеренный тренд
Трендовые входы разрешены; контртрендовые обычно нет.
ADX выше 40
сильный тренд
Возврат к среднему заблокирован полностью — именно этот режим его уничтожает.
+DI против −DI
направление
ADX говорит, насколько сильно; эта пара говорит, куда.

Измеримый эффект фильтра режима — обычно меньшая просадка, а не большая прибыль: он убирает убытки, а не добавляет выигрыши.

Расчёт if (adx[1] < TrendThreshold) return; // в диапазоне трендовый советник ничего не делает

Результат Стратегия, которая воздерживается ровно в тех условиях, в которых никогда не была хороша

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

Судите о фильтре по тому, что он убирает. Правильное сравнение — та же стратегия с ним и без него, на одном и том же окне, прочитанная по просадке не меньше, чем по чистому результату.

Диапазон Что означает
ADX ниже 20 Действующего тренда нет. У трендследящих входов здесь худшее матожидание, а пробойные сигналы в основном ложные.
ADX 20–40 Идёт настоящий тренд. Обычный рабочий диапазон для трендовой логики.
ADX выше 40 Сильный тренд, и часто уже поздняя его стадия. Трендовые входы всё ещё работают; контртрендовые и сеточные стратегии в этот момент наиболее опасны.
Порог, подогнанный под лучшее значение бэктеста Подогнанный параметр. Прежде чем ему верить, проверьте, дают ли соседние пороги схожий результат.
  • Тестируйте фильтр как отдельное изменение, а не как часть пакета: прогоните стратегию с выключенным фильтром на тех же данных и сравните просадку, число сделок и профит-фактор.
  • Ожидайте меньше сделок. Фильтр, который не снижает их количество, ничего не фильтрует.
  • Читайте ADX на завершённом баре и рассмотрите старший таймфрейм для решения о режиме, чтобы стратегия не меняла характер несколько раз за сессию.
  • Не используйте его в одиночку для направления. Знак должна давать пара +DI/−DI или скользящая средняя.

Страница `/indicators` про ADX разбирает расчёт и чтение графика; эта статья — о его применении как фильтра режима для советников.

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

Читать ADX как бычий или медвежий

Это мера силы без знака. Высокое значение во время обвала ровно настолько же высоко, как и во время ралли, — именно поэтому его всегда сочетают с чем-то направленным.

Ставить порог там, где индикатор живёт

Если ADX большую часть времени держится около порога, фильтр переключается постоянно, и поведение стратегии решает шум. Порог полезен тогда, когда он пересекается редко и решительно.

Считать фильтр бесплатным

Любой фильтр убирает сделки, в том числе прибыльные. Проверка в том, убирает ли он больше убытка, чем прибыли, — а это измерение, а не предположение.

Использовать короткий период ADX, чтобы реагировать раньше

ADX сглажен дважды по своей конструкции. Укорочение периода заставляет его пересекать порог чаще в обе стороны, что обычно добавляет пилу, а не ранние входы.

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

Какое значение ADX указывает на тренд?
Значения примерно выше 20–25 считаются общепринятым порогом, начиная с которого рынок трактуют как трендовый, а выше 40 — как сильный тренд. Точное число важно меньше, чем его устойчивость: порог, работающий только при одном конкретном значении на одном конкретном тестовом окне, — это подогнанный параметр, а не правило режима.
Показывает ли ADX, растёт тренд или падает?
Нет. Линия ADX измеряет только силу. Направление берётся из линий +DI и −DI, из которых он построен (+DI выше −DI — бычья конфигурация), либо из отдельного направленного индикатора, например скользящей средней.
Как советники используют ADX в качестве фильтра?
Как ворота перед правилом входа. Трендследящий советник не делает ничего, пока ADX не выше своего порога; сеточный или работающий на возврате к среднему не делает ничего, пока тот не ниже. Эффект обычно проявляется как меньшая просадка, а не большая прибыль, потому что фильтр убирает сделки, взятые в условиях, с которыми стратегия справляется хуже всего.
Почему мой фильтр по ADX ухудшает результаты?
Две частые причины. Порог может стоять там, где индикатор проводит большую часть времени, и тогда он переключается на шуме; либо фильтр оптимизировали на том же окне, что и правило входа, и тогда он подогнан под режимы этого окна, а не под понятие режима. Тест стратегии с фильтром и без него на данных вне выборки разделяет эти два случая.

Похожие статьи