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

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

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

Добавлено: Jude_Masson » 19 фев 2022, 17:48

Тема: Индикатор AROON

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

Индикатор Aroon был разработан в 1995 г. главой трейдерской компании Тушаром Чандом. По задумке создателя, Арун должен был определять раньше остальных показателей точки для входа в торги и сообщать об этом трейдерам. Но на практике индикатор используют для расчета силы и направления движения тенденции, определения ситуации, когда тренд переходит во флэт и наоборот.

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

Инструмент Арун включает в себя 2 линии:

Aroon Up отображается в зеленом цвете.
Aroon Down окрашена в красный.

Для расчета значений используются такие формулы:

Aroon Up = [(Бар) — (Бар после пика цены)] / (Бар) x 100.
Aroon Down = [(Бар) — (Бар после минимальной цены)] / (Бар) x 100.


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

function Initialize()
{
   IndicatorName = "Aroon";
   PriceStudy = false;
   AddInput ("Input", Inputs.Candle);

   AddParameter("Period", 10);

   AddGlobalVariable("hi", Types.Double,  0);   
   AddGlobalVariable("lo", Types.Double,  0);   
   AddGlobalVariable("hibar", Types.Double,  0);   
   AddGlobalVariable("lobar", Types.Double,  0);

   AddSeries ("AUP", DrawAs.Line, Color.Green);
   AddSeries ("ADW", DrawAs.Line, Color.Red);
}

function Evaluate()
{
// Jude_Masson 19.02.2022 https://alfadirect4.ru

   hi = Input.High[0]; hibar = 0; lo = Input.Low[0]; lobar = 0;   //Обнуляем переменные

   for (int i=1; i < Period; i++)            //Цикл на поиск максимального бара
   {
      if (Input.High[i] > hi   )
      {
         hi = Input.High[i];
         hibar = i +1;               //Записываем насколько High далеко
      }
      if (Input.Low[i] < lo   )
      {
         lo = Input.Low[i];
         lobar = i +1;               //Записываем насколько Low далеко
      }
   }
      
AUP = (Period-hibar)/ Period*100;
ADW = (Period-lobar)/ Period*100; 
}




Тут версия с двумя периодами для Hi и Low отдельно.

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

function Initialize()
{
   IndicatorName = "AroonUD";   
   PriceStudy = false;   
   AddInput ("Input", Inputs.Candle);   

   AddParameter("PeriodU", 10);   
   AddParameter("PeriodD", 10);   

   AddGlobalVariable("hi", Types.Double,  0);   
   AddGlobalVariable("lo", Types.Double,  0);   
   AddGlobalVariable("hibar", Types.Double,  0);   
   AddGlobalVariable("lobar", Types.Double,  0); 

   AddSeries ("AUP", DrawAs.Line, Color.Green);
   AddSeries ("ADW", DrawAs.Line, Color.Red);
}

function Evaluate()
{
// Jude_Masson 19.02.2022 https://alfadirect4.ru

   hi = Input.High[0]; hibar = 0; lo = Input.Low[0]; lobar = 0;

   for (int i=1; i < PeriodU; i++)
   {
   if (Input.High[i] > hi   )
      {
      hi = Input.High[i];
      hibar = i +1;
      }
   }
   
   for (int i=1; i < PeriodD; i++)    
   {   
   if (Input.Low[i] < lo   )
      {
      lo = Input.Low[i];
      lobar = i +1;
      }
   }

   AUP = (PeriodU-hibar)/ PeriodU*100;
   ADW = (PeriodD-lobar)/ PeriodD*100; 
}


Вложения
Снимок экрана 2022-02-19 174735.png