TradingView - платформа для просмотра и анализа биржевых котировок. Преимуществом данной платформы является то, что разработчиками был создан свой собственный язык программирования Pine, который позволяет создавать свои собственные индикаторы и сигналы.

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

Больше
01 сен 2022 20:47 #32 от 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]

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

Больше
01 сен 2022 20:49 #33 от roman
Рассмотрим алгоритм создания технического индикатора ADX с помощью языка Pine в торговой платформе TradingView.//Код представлен для TradingView. Версия PineCode v4.
//@version=4
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 относительных единиц.

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

Работает на Kunena форум
Пользовательское соглашение.

По всем возникшим вопросам Вы можете обратиться к администрации сайта по электронной почте (administrator@simenergy.ru) или с помощью формы обратной связи.

Статистика сайта:
Яндекс.Метрика