Май 5th, 2015

Формула индикатора ATR. Расчёт Average True Range

, DeMotivator, by Алексей Ван.

Недавно нелёгкая заставила собирать индикатор Average True Range для робота. Тривиальная штука вроде. Ничего сложного. А затянулось всё на целый день.

Дело в том что найденные мной методы расчёта, в Российском сегменте интернета, сплошь строили Average True Range на Простой скользящей средней. Кухни особо не заморачивались с правдивостью описания, а просто скопипастили друг у друга неправильную формулу из MetaTrader. В то время как в Квик, Велс Лаб ATR рассчитывается по экспоненциальной средней, с хитрой формулой.

 

ATR_Indicator_Chart

Это запись о том, как рассчитать индикатор Average True Range взаправду. Может кому-то пригодиться…

Average True Range — средний истинный диапазон. Мерило волатильности от Уэллса Уайлдера, которое он описал в книге ‘Новые концепции технических торговых систем’.

Расчёт индикатора состоит из двух фаз:

  1. Поиск значений истинного диапазона
  2. Сглаживание этих значений при помощи экспоненциальной средней.

 

Истинный диапазон рассчитывается на каждом шаге как максимум из следующих трёх значений:

  1. разница между текущим максимумом и текущим минимумом (High — Low);
  2. абсолютное значение разницы текущего максимума и предыдущего закрытия (High — Close-1);
  3. абсолютное значение разницы текущего минимума и предыдущего закрытия (Low — Close-1).

 

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

В си шарп, формирование массива значений истинного диапазона у меня получилось вот так:

 

decimal[] tR = new decimal[candles.Lenght];

for (int i = 1; i < candles.Lenght; i++)

{

tR[i] = Math.Max(candles[i].HighPrice, candles[i — 1].ClosePrice) —

Math.Min(candles[i].LowPrice, candles[i — 1].ClosePrice);

}

 

Далее, сглаживаем значения истинного диапазона экспоненциальной средней.

 

Формула:

EMA[k] = EMA[k-1] + (1/n) · (P[k] — EMA[k-1]),

 

где:

n — период средней

k — текущий индекс ряда

EMA[k] — экспоненциальное скользящее среднее на момент k

P —ряд, по которому считается средняя

 

Выделенное жирным курсивом (1/n) из этой формулы является не стандартным участком для экспоненциальной средней. Обычно это (2/(n-1)). И не спрашивайте, после какого раза меняя формулу я это обнаружил. Но в Квик и ВелсЛаб ATR рассчитывается именно так.

 

При этом первое значение EMA считается как обычное скользящее среднее.

В случае если n = 4, вот так:

EMA[k] = (P[k] + P[k-1]  + P[k-2]  + P[k-3])/ 4;

 

Всё.

 

Back Top

Responses to “Формула индикатора ATR. Расчёт Average True Range”

  1. а (2/(n*2)) это не то же самое что и 1/n?

    Дмитрий at
    • действительно. Убрал лишние операции. Спасибо

      Алексей Ван at