Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1233

Добавлено: evge » 03 июн 2018, 21:28

Тема: Re: ATR дневного таймфрейма на нижестоящих

Текст сообщения:

Что-то я пропустил это сообщение 1.5 года назад.

Например так:

Но тут учтите, чть есть запаздывание в 1 день на часовом ТФ (или другом ТФ).
Мы будем видеть АТР не текущего, а предыдущего дня. Чтобы отрисовать на текущем ТФ АТР текущего дня придётся перерисовывать весь текущий день, т.е. менять значения на всех барах текущего дня. Поэтому привожу пример как отрисовать за предыдущий день АТР дня на текущем дне, так перерисовывать не надо.

Наверное, непонятно разъяснил :)

ATRDay.zip
(44.63 КБ) 1211 скачиваний


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

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

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

function Evaluate()
{

// evge 03.06.2018 http://alfadirect4.ru

ATRDay[0] = ATRDay[1];

// новый день
if (BarDate(0) != BarDate(1))
{
   // новый бар дня
   O.Insert(0, Input.Open[0]); H.Insert(0, Input.High[0]); L.Insert(0, Input.Low[0]); C.Insert(0, Input.Close[0]);   
   if (O.Count > 1)
   {
    A.Insert(0, H[1] - L[1]);
   }   
   // лишнее удаляем
   var CN = O.Count;
   if (CN > Period * 2) { O.RemoveAt(CN - 1); H.RemoveAt(CN - 1); L.RemoveAt(CN - 1); C.RemoveAt(CN - 1); }
}
if (O.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) ATRDay[0] = A[0];

}


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

ATRDay-01.png