Пользовательские индикаторы > ATRH (Average True Range Hour) – средний истинный диапазон от часа

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

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

Непрочитанное сообщение evge » 23 апр 2020, 06:47

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

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

Параметры

Period - Период расчета индикатора для таймфрейма H1.

Особенности

  1. Имеется запаздывание до 1 часа для таймфрейма ниже H1, т.к. индикатор не перерисовывается на текущем баре. Рисует значения EMA для последнего, полностью рассчитанного, часа - EMA предыдущего часа.
  2. Работает на всех таймфреймах ниже D (не включая)

Пример работы

ATRH-01.png
ATRH-01.png (24.97 КБ) 14924 просмотра


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

function Initialize()
{
IndicatorName = "ATRH";
PriceStudy = false;
AddInput("Input", Inputs.Candle);
AddSeries("ATRH", DrawAs.Line, Color.Red);

AddParameter("Period", 14, 60);
 
// для сохранения списков значений OHLC
AddGlobalVariable("H", Types.DoubleList);
AddGlobalVariable("L", Types.DoubleList);
AddGlobalVariable("C", Types.DoubleList);
AddGlobalVariable("A", Types.DoubleList); //ATR
}

function Evaluate()
{

// evge 22.04.2020 http://alfadirect4.ru

ATRH[0] = ATRH[1];

// новый час
if (BarTime(0).Hours != BarTime(1).Hours)
{
   // новый бар дня
   H.Insert(0, Input.High[0]); L.Insert(0, Input.Low[0]); C.Insert(0, Input.Close[0]);   
   var CN = C.Count;
   if (CN > 1)
   {
    A.Insert(0, H[1] - L[1]);
   }   
   // лишнее удаляем
   if (CN > Period * 2) { H.RemoveAt(CN - 1); L.RemoveAt(CN - 1); C.RemoveAt(CN - 1); }
}
if (C.Count > 0)
{
   if (Input.Low[0] < L[0]) L[0] = Input.Low[0];
   if (Input.High[0] > H[0]) H[0] = Input.High[0];
   C[0] = Input.Close[0];
}
if (A.Count > 1)
{
   if (C.Count > 2)
   {
      var TR = Math.Max(H[1] , C[2]) - Math.Min(L[1], C[2]);
       A[0] = ((Period - 1.0) * A[1] + TR) / Period;
   }
}

if (A.Count > 0) ATRH[0] = A[0];

}


Скачать индикатор

ATRH.zip
(24.14 КБ) 973 скачивания
никогда такого не было и вот опять

Velper
Сообщения: 3
Зарегистрирован: 28 мар 2020, 06:48

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

Непрочитанное сообщение Velper » 26 апр 2020, 17:06

Полезная штука, спасибо больше! А реально ли сделать индикатор RangeOfDays так же для часовиков? viewtopic.php?f=4&t=119

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

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

Непрочитанное сообщение evge » 26 апр 2020, 17:19

а какая логика, что пересчитывать для часа?
никогда такого не было и вот опять

Velper
Сообщения: 3
Зарегистрирован: 28 мар 2020, 06:48

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

Непрочитанное сообщение Velper » 26 апр 2020, 19:17

Имеется в виду расчет текущих хаев/лоев для текущего часа, и экстремумы для предыдущих часов, чтобы отображать их на младших ТФ. RangeOfDays это как пример.

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

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

Непрочитанное сообщение evge » 26 апр 2020, 20:00

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

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

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

Непрочитанное сообщение evge » 27 апр 2020, 19:18

Velper писал(а):Имеется в виду расчет текущих хаев/лоев для текущего часа, и экстремумы для предыдущих часов, чтобы отображать их на младших ТФ. RangeOfDays это как пример.


На основе RangeOfDays создал:

RangeOfHours - экстремумы предыдущих часов
никогда такого не было и вот опять


Вернуться в «Пользовательские индикаторы»

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

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