Осцилляторы волатильности > ATR (Average True Range) – средний истинный диапазон

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 363 раза
Контактная информация:

ATR (Average True Range) – средний истинный диапазон

Непрочитанное сообщение evge » 08 фев 2016, 09:26

Истинный диапазон (TR – TRUE RANGE) – это истинный размах движения за выбранный период, величина которого определяется как максимальное значение из трех расстояний (см. рис.).

ATR-01.png
ATR-01.png (7.24 КБ) 37422 просмотра


Для вычисления TR используется следующее выражение:

TRt = max{(D1), (D2), (D3)} = max{(Ht - Lt), (Ht – Ct-1), (Ct-1 – Lt)},

где Ht – максимальная цена за последний период (бар), Lt – минимальная цена за последний период (бар), Ct-1 – цена закрытия предыдущего периода (бара).

Средний истинный диапазон – показывает средний размер бара за выбранный тайм-фрейм, вычисляется как усредненное значение от истинного диапазона (TR)

ATRt = ATRt-1*(N-1)/N + TRt/N,

где ATRt и ATRt-1 – значение индикатора на последнем и предыдущем периоде (баре) соответственно, N – период усреднения. Часто при расчете индикатора, в отличии от авторского варианта, применяется простое или экспоненциальное сглаживание.

Индикатор в такой интерпретации более пригоден только для дневного тайм-фрейма, т.к. при его использовании внутри дня и при наличии гэпа, индикатор будет неинформативен приблизительно 3*N первых баров.

Типовые параметры

Значение периода усреднения выбирается N = 14 или Т = 7 для дневного тайм-фрейма.

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

Сигналы

  • Если цена отклоняется от экстремума на M значений индикатора ATR в противоположную сторону от направления предыдущего движения, то позиция закрывается по стопу.

Автор: Уэллс Уайлдер (Welles Wilder).
Первоисточник: Welles Wilder. New Concepts in Technical Trading Systems. 1978.

Пример:

ATR-00.png
ATR-00.png (41.72 КБ) 37422 просмотра


Исходный текст:

Код: Выделить всё

function Initialize()
{
 IndicatorName = "ATR";                               
 AddInput("Input", Inputs.Candle);
 PriceStudy = false;                                       
 AddParameter("Period", 10);                        
 AddSeries("ATR", DrawAs.Line, Color.LightBlue);   
}

function Evaluate()
{
// AlfaDirect. 2014. OX 
// Средний истинный диапазон (ATR - Average True Range).
// Автор - Уэллс Уайлдер (Welles Wilder).
  var TR = 0.0;
  if (CurrentIndex < 1)
     ATR = Input.High[0]-Input.Low[0];
  else
  { 
     TR = ( Math.Max(Input.High[0] , Input.Close[-1]) - Math.Min(Input.Low[0], Input.Close[-1]));
      ATR = ((Period-1.0)*ATR[-1] + TR)/Period;
  }
}


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

Tshibo
Сообщения: 20
Зарегистрирован: 20 окт 2019, 20:07
Благодарил (а): 4 раза
Поблагодарили: 13 раз

Re: ATR (Average True Range) – средний истинный диапазон

Непрочитанное сообщение Tshibo » 20 окт 2019, 20:18

Приветствую!
А как получить его же MA на том же графике?Типа такого.
Спасибо!

Уже сделал, осталось закрасить.

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 363 раза
Контактная информация:

Re: ATR (Average True Range) – средний истинный диапазон

Непрочитанное сообщение evge » 21 окт 2019, 07:41

Здравствуйте!

Это можно сделать без кода, указав в параметрах серию входящую для MA не Close, а ATR (добавленный до этого).

ATR-MA-01.png
ATR-MA-01.png (32.08 КБ) 35356 просмотров

ATR-MA-02.png
ATR-MA-02.png (38.71 КБ) 35356 просмотров
никогда такого не было и вот опять

Tshibo
Сообщения: 20
Зарегистрирован: 20 окт 2019, 20:07
Благодарил (а): 4 раза
Поблагодарили: 13 раз

Re: ATR (Average True Range) – средний истинный диапазон

Непрочитанное сообщение Tshibo » 21 окт 2019, 11:24

Спасибо!
А для наглядности как закрасить область между линиями?

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 363 раза
Контактная информация:

Re: ATR (Average True Range) – средний истинный диапазон

Непрочитанное сообщение evge » 21 окт 2019, 11:45

Здесь уже понадобится написать код нового индикатора:

Код: Выделить всё

function Initialize()
{
IndicatorName = "ATRMA";
PriceStudy = false;
AddInput("Input", Inputs.Candle);
AddSeries("A", DrawAs.Custom, Color.Red);
AddSeries("M", DrawAs.Custom, Color.Green);
AddParameter("PeriodATR", 14);
AddParameter("PeriodMA", 10);
}
function Evaluate()
{

// evge 21.10.2019 https://alfadirect4.ru

var xA = ATR(Input, PeriodATR);
var xM = SMA(xA, PeriodMA);

A[0] = xA[0];
M[0] = xM[0];

if (A[0] > M[0])
A.DrawChannel(M);
else
M.DrawChannel(A);
}


ATR-MA-03.png
ATR-MA-03.png (36.71 КБ) 35317 просмотров
никогда такого не было и вот опять

Tshibo
Сообщения: 20
Зарегистрирован: 20 окт 2019, 20:07
Благодарил (а): 4 раза
Поблагодарили: 13 раз

Re: ATR (Average True Range) – средний истинный диапазон

Непрочитанное сообщение Tshibo » 21 окт 2019, 13:08

Спасибо!

STiTcH
Сообщения: 12
Зарегистрирован: 01 ноя 2019, 09:34
Благодарил (а): 1 раз

Re: ATR (Average True Range) – средний истинный диапазон

Непрочитанное сообщение STiTcH » 26 ноя 2019, 12:37

Как можно исключить из его расчета аномальные бары?
Например когда TR текущего бары более чем в 3 раза больше TR предыдущего, то такой бар при расчете индикатора ATR подставляется равным TR[1].

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 363 раза
Контактная информация:

Re: ATR (Average True Range) – средний истинный диапазон

Непрочитанное сообщение evge » 26 ноя 2019, 13:00

А разве тут такое есть чтоб в 3 раза?
По графику там диапазон ATR от 0.9 до 1.1 (грубо)
никогда такого не было и вот опять

STiTcH
Сообщения: 12
Зарегистрирован: 01 ноя 2019, 09:34
Благодарил (а): 1 раз

Re: ATR (Average True Range) – средний истинный диапазон

Непрочитанное сообщение STiTcH » 26 ноя 2019, 13:09

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

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 363 раза
Контактная информация:

Re: ATR (Average True Range) – средний истинный диапазон

Непрочитанное сообщение evge » 26 ноя 2019, 13:45

доп. параметр Smooth - во сколько раз текущий TR больше предыдущего TR, тогда игнорируем.

Код: Выделить всё

function Initialize()
{
 IndicatorName = "ATRs";                               
 AddInput("Input", Inputs.Candle);
 PriceStudy = false;                                       
 AddParameter("Period", 10);                       
 AddParameter("Smooth", 3);                       
 AddSeries("ATR", DrawAs.Line, Color.Red);   
}

function Evaluate()
{
// AlfaDirect. 2014. OX
// Средний истинный диапазон (ATR - Average True Range).
// Автор - Уэллс Уайлдер (Welles Wilder).

// evge 26.11.2019 https://alfadirect4.ru
// add smooth
  var TR = 0.0;
  if (CurrentIndex < 1)
     ATR = Input.High[0]-Input.Low[0];
  else
  {
     TR = ( Math.Max(Input.High[0] , Input.Close[-1]) - Math.Min(Input.Low[0], Input.Close[-1]));
     var TR1 = ( Math.Max(Input.High[1] , Input.Close[-2]) - Math.Min(Input.Low[1], Input.Close[-2]));
     if (TR > TR1 * Smooth) TR = TR1;
     ATR = ((Period-1.0)*ATR[-1] + TR)/Period;
  }
}


ATRs-01.png
ATRs-01.png (36.13 КБ) 34672 просмотра
никогда такого не было и вот опять


Вернуться в «Осцилляторы волатильности»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость