rss

Профиль компании

Финансовые компании

Блог компании Os_Engine | Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.

Сегодня мы рассмотрим индикатор ADX. Узнаем историю создания индикатора и то, как он рассчитывается.

 Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.

Также к данной статье будут прикреплены готовые скрипты роботов на этом индикаторе с возможностью торговать на нашей платформе OsEngine.

Оглавление.

1.      История создания индикатора.

2.      Как проводятся расчеты индикатора ADX.

3.      Какие сигналы может подавать индикатор.

4.      Роботы для OsEngine на индикаторе ADX (Average Directional Index).

4.1.   Стратегия пробой канала из двух Ema и Adx.

4.2.   Торговая система ADX и EMA.

4.3.   Стратегия с ADX, Stochastic Oscillator и три ЕМА.

4.4.   Стратегия торговли на пересечении +DI и –DI.

5.      Итоговая таблица результатов.

 

1. История создания индикатора.

Индикатор ADX был разработан Уэллсом Уайлдером в 1978 году и опубликован в его книге «Новые концепции в технических торговых системах».

Уэллс был известным аналитиком и трейдером, который внес значительный вклад в область технического анализа.

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

В процессе исследования Уайлдер разработал формулы для расчета плюс-направленного движения (+DI) и минус-направленного движения (-DI), которые отражают направление движения цены вверх и вниз соответственно. Затем он использовал эти два значения, чтобы вычислить сам индикатор ADX.

ADX был представлен как независимый индикатор, который может подавать сигналы самостоятельно, и использоваться совместно с другими индикаторами. Он позволяет трейдерам определить, насколько сильным или слабым является тренд на рынке и принять соответствующие торговые решения.

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

 

2. Как проводятся расчеты индикатора ADX.

Индикатор ADX рассчитывается в несколько этапов, используя следующие формулы.

1. Расчет плюс-направленного движения (+DI) и минус-направленного движения (-DI):

  1. Находим разность между текущим максимумом свечи и предыдущим максимумом (High — Previous High).
  2. Находим разность между предыдущим минимумом свечи и текущим минимумом (Previous Low — Low).
  3. Рассчитайте позитивное направление (Positive Directional Movement, +DM) так: если текущий максимум больше или равен предыдущему, и разность между максимумами больше или равна разности между минимумами, то +DM записываем как разность между этими максимумами. В противном случае, +DM равен 0.
  4. Рассчитываем негативное направление (Negative Directional Movement, -DM) так: если текущий минимум меньше или равен предыдущему, и разность между максимумами меньше или равна разности между минимумами, то -DM записываем как разность между этими минимумами. В противном случае, -DM равен 0.
  5. Рассчитываем скользящую среднюю +DM и -DM.

2. Расчет True Range (TR):

  1. Вычислите истинный диапазон (TR), который представляет собой наибольшее значение из трех следующих величин:
  • Разность между текущими максимумом и минимумом (High — Low).
  • Разность между предыдущей ценой закрытия и текущим максимумом (|High- Previous Close|).
  • Разность между предыдущей ценой закрытия и текущим минимумом (|Low — Previous Close|).

              2. Вычислите скользящую среднюю истинного диапазона (TR) на определенном периоде (обычно 14 дней или свечей), чтобы получить сглаженного TR.

3. Сглаживаем движение через истинный диапазон:

  1. Вычислите плюс-направленное движение (+DI) как процент от среднего истинного диапазона (TR) и +DM: +DI = 100 * (+DM / TR).
  2. Вычислите минус-направленное движение (-DI) как процент от среднего истинного диапазона (TR) и -DM: -DI = 100 * (-DM / TR).

4. Расчет индикатора ADX:

  1. Вычислите позитивное направление индекса (+DI) и негативное направление индекса (-DI) на основе предыдущих шагов.
  2. Вычислите относительное направление (Relative Direction, DX), как процент разницы между +DI и -DI (100 * (|+DI — -DI|) / (+DI + -DI)).
  3. Рассчитайте индикатор ADX, как скользящую среднюю DX на основе сглаженного TR.

ADX будет принимать значения от 0 до 100, где более высокие значения указывают на сильный тренд, а более низкие значения означают слабый или отсутствующий тренд.

Расчёт индикатора в OsEngine можно посмотреть вот в этом файле:

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/ADX/ADX.cs

 

3. Какие сигналы может подавать индикатор.

Индикатор ADX может предоставлять следующие сигналы для трейдеров:

1. Сигналы силы тренда: Высокие значения ADX, обычно выше 25, указывают на сильный тренд на рынке. Это может быть сигналом для трейдера, чтобы войти в позицию в направлении тренда или удерживать текущую позицию.

2. Сигналы отсутствия тренда: Низкие значения ADX, обычно ниже 25, указывают на отсутствие сильного тренда на рынке. В этом случае трейдеры могут избегать входа в позицию, так как рынок может находиться в фазе бокового движения или внутри более слабого тренда.

3. Сигналы изменения тренда: Пересечение плюс-направленное движение (+DI) и минус-направленное движение (-DI) могут предоставить сигналы о смене направления тренда. Если +DI пересекает -DI  снизу-вверх и ADX увеличивается. Это может указывать на переход от медвежьего тренда к бычьему тренду и наоборот.

4. Сигналы о слабости тренда: Если ADX начинает падать после достижения высоких значений, это может указывать на утрату силы тренда. Трейдеры могут использовать это в качестве сигнала для закрытия текущей позиции.

5. Сигналы о паузе в тренде: Если ADX временно снижается после высоких значений, а затем снова возрастает, это может указывать на паузу в тренде, но не на его окончательное изменение. Трейдеры могут использовать это для ожидания подтверждения тренда перед принятием решения о торговле.

 

4. Роботы для OsEngine на индикаторе ADX (Average Directional Index).

4.1. Стратегия пробой канала из двух Ema и Adx.

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/BreakADXChannel.cs

Ссылка на Ema:

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/Ema.cs

Канал состоит из двух Ema одинаковой длинны. Одна Ema строится по максимальным ценам свечей, а другая по минимальным ценам свечей. Также у нас есть параметр «Критическое значение ADX», он нам понадобится в логике входа.

Логика входа:

  • Покупаем, когда цена инструмента выше верхней линии канала Ema, а ADX растущий и ниже критического значения.
  • Продаем, когда цена ниже нижней линии канала Ema, а ADX растущий и ниже критического значения.

Выход из позиций осуществляется по стопу и профиту в процентах от цены входа.

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 1. Пример логики.

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 2. Si, TF15 min, 2021-23, P/L 1 contract: 1,00%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 3. BR, TF15 min, 2021-23, P/L 1 contract: 0,76%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 4. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,77%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 5. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 2,08%

  

4.2. Торговая система ADX и EMA.

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyEmaADX.cs

Ссылка на Ema:

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/Ema.cs

Логика входа:

  • Покупаем, когда предыдущая свеча находилась выше Ema. Минимум последней свечи ниже или равен Ema, и при этом Adx должен быть выше 25. Выставляем лимитную заявку на покупку по максимальной цене этой свечи.
  • Продаем, когда предыдущая свеча находилась ниже Ema. Максимум последней свечи выше или равен Ema, и при этом Adx должен быть выше 25. Выставляем лимитную заявку на покупку по минимальной цене этой свечи.

Выход:

  • Из покупки. Устанавливаем трейлинг-стоп в процентах от минимума свечи, на которой вошли.
  • Из продажи. Устанавливаем трейлинг-стоп в процентах от максимума свечи, на которой вошли.


Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 6. Пример логики.

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 7. Si, TF15 min, 2021-23, P/L 1 contract: 2,36%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 8. BR, TF15 min, 2021-23, P/L 1 contract: 0,49%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 9. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 1,75%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 10. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 1,41%

 

4.3. Стратегия с ADX, Stochastic Oscillator и три ЕМА.

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyADXStohAndThreeEMA.cs

Ссылка на Stochastic Oscillator:

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/Stochastic.cs

Ссылка на Ema:

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/Ema.cs

Логика входа:

Покупаем, когда

  1. быстрая Ema выше средней Ema и средняя выше медленной;
  2. Stochastic пересекает уровень 50 снизу-вверх;
  3. Adx растущий и пересекает уровень 20 снизу-вверх.

Продаем, когда

  1. быстрая Ema ниже средней Ema и средняя ниже медленной;
  2. Stochastic пересекает уровень 50 сверху-вниз;
  3. Adx растущий и пересекает уровень 20 снизу-вверх.

Выход:

  1. Из покупки, когда быстрая Ema ниже средней Ema;
  2. Из продажи, когда быстрая Ema выше средней Ema.


Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 11. Пример логики.

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 12. Si, TF15 min, 2021-23, P/L 1 contract: 1,40%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 13. Br, TF15 min, 2021-23, P/L 1 contract: 0,57%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 14. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,19%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 15. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,70%

 

4.4. Стратегия торговли на пересечении +DI и –DI.

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/ADXBreakPlusMinus.cs

Логика входа:

  1. Покупаем, когда +DM выше -DM, а сам ADX выше -DM и растет.
  2. Продаем, когда +DM ниже -DM, ADX выше +DM и растет.

Выход:

  1. Из покупки, когда +DM ниже -DM.
  2. Из продажи, когда +DM выше -DM.


Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 16. Пример логики.

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 17. Si, TF15 min, 2021-23, P/L 1 contract: 0,08%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 18. Br, TF15 min, 2021-23, P/L 1 contract: 0,40%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 19. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,44%

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.
Рис. 20. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 1,21%

  

5. Итоговая таблица результатов.

Индикатор ADX (Average Directional Index) и бесплатные роботы на нём.

Лучшие результаты у нас показала стратегия, основанная Ema и Adx.

Ссылки на роботов на GitHub:

  1. https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/BreakADXChannel.cs
  2. https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyEmaADX.cs
  3. https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyADXStohAndThreeEMA.cs
  4. https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/ADXBreakPlusMinus.cs

Что почитать по алготрейдингу?

1) Сборник статей по парному арбитражу: https://smart-lab.ru/company/os_engine/blog/948250.php

2) Сборник статей по валютному арбитражу: https://smart-lab.ru/company/os_engine/blog/965051.php

3) Сборник статей по индексному арбитражу: https://smart-lab.ru/company/os_engine/blog/997533.php

4) Сборник статей про индикаторы и роботы к ним: https://smart-lab.ru/company/os_engine/blog/966919.php

5) Как стать программистом и изменить свою жизнь: https://smart-lab.ru/company/os_engine/blog/982134.php 

OsEngine: https://github.com/AlexWan/OsEngine
FAQ: https://o-s-a.net/os-engine-faq
Поддержка OsEngine: https://t.me/osengine_official_support


Комментарии открыты только для друзей, добавляйтесь.

 

★7

UPDONW
Новый дизайн