Индекс среднего направления (ADX, average directional movement index)

Больше
3 нед. 6 дн. назад - 3 нед. 6 дн. назад #209 от roman
Индикатор ADX используется, чтобы количественно определить силу тренда.
Система состоит из двух составляющих:
- индекс среднего направления (ADX, average directional movement index)
- индикатор направленности движения (DMI, directional movement index).

Рассмотрим алгоритм расчета показаний индикатора ADX можно разложить на четыре этапа.
Этап 1.
Вычисляется параметр, называемый Delta или DM (направленное движение). Параметр имеет две величины: +DM и –DM.
+DM = High-High[i-1], где
High – максимум текущей свечи
High[i-1] – максимум предыдущей свечи

При этом если High<High[i-1], то вычисление параметра не производится.

-DM = Low[i-1]- Low , где
Low – минимум текущей свечи
Low [i-1] – минимум предыдущей свечи

При этом если Low > Low [i-1], то вычисление параметра не производится.
Таким образом, параметр +DM и –DM всегда либо положительный, либо равен нулю. Одна величина показывает, насколько текущий верх бара выше предыдущего верха, а другая – насколько текущий низ ниже предыдущего.

Затем абсолютные значения +DM и –DM сравниваются и меньшее из них приравнивается к нулю. То есть для любой свечи одна из величин будет равна нулю. Исключение составляет только паттерн Inside Bar (Внутренний день) – на внутренней свече High ниже предыдущего, а Low выше предыдущего и обе величины (+DM и –DM) равны нулю.

Этап 2.
Вычисляется параметр, называемый истинным диапазоном (True Range, TR).
В этом случае берется максимальное значение из следующих трех величин:
TR=max{
 High – Low
 High – Close[i-1]
 Close[i-1] – Low[i}
}

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

Этап 3.
Вычисляется величина DM/TR, после чего от этой величины берется экспоненциальная скользящая средняя. Полученный параметр называется Индексом направленного движения (Directional Movement Index, DMI). Эта величина изображается на графике в виде двух линий: +DMI и –DMI.
+DMI = EMA(+DM/TR, Period)
-DMI  = EMA(-DM/TR, Period)
[/i]

Также в литературе иногда встречается и другой вариант расчета, когда +DM или –DM сглаживаются отдельно, а затем уже делятся на так же отдельно сглаженный истинный диапазон. То есть формула принимает следующий вид:
+DMI = EMA(+DM, Period)/ EMA(TR, Period)
-DMI = EMA(-DM, Period) / EMA(TR, Period)
[/i]

Этап 4.
Вычисляется средний индекс направленности движения (Average Directional Index, ADX). Он представляет собой экспоненциальную скользящую среднюю с тем же периодом, что и на предыдущем шаге от величины, называемой направленным движением (Directional Index, DX):
DX = | (+DMI)-(-DMI) | / ((+DMI)+(-DMI))
В связи с тем, что мы берем модуль разницы, значение DX будет всегда положительно и для растущего и для падающего рынка, характеризуя не направление, а силу тренда.

ADX = EMA(DX, Period)[/i]
Вложения:
Последнее редактирование: 3 нед. 6 дн. назад пользователем roman.

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

Больше
3 нед. 6 дн. назад - 3 нед. 1 день назад #210 от roman
Рассмотрим алгоритм создания технического индикатора ADX с помощью языка Pine в торговой платформе TradingView.
//@version=4
//Код представлен для TradingView. Версия PineCode v4.
study(title="ADX, average directional movement index") 
//Общие переменные
AD_period=40
 
//Этап 1.
DM_p=high>high[1]?(high-high[1]):0
DM_m=low[1]>low?(low[1]-low):0
DM_pp=DM_p>DM_m?DM_p:0
DM_mm=DM_m>DM_p?DM_m:0
 
//Этап 2.
TR=max(high-low,high-close[1],close[1]-low)
 
//Этап 3.
DMI_p=ema(DM_pp/TR,AD_period)
DMI_m=ema(DM_mm/TR,AD_period)
 
//Этап 4.
DX=abs(DMI_p-DMI_m)/(DMI_p+DMI_m)
ADX=ema(DX,AD_period)
 
//Вывод результата на график
plot(100*ADX,color=color.blue, linewidth = 3)


Умножение ADX на множитель 100 позволяет вывести индикатор в диапазон от 0 до 100 относительных единиц.
Последнее редактирование: 3 нед. 1 день назад пользователем roman.

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

Время создания страницы: 0.463 секунд