Уровни > ElderRay (Ray) – лучи Элдера

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

ElderRay (Ray) – лучи Элдера

Непрочитанное сообщение evge » 07 фев 2016, 17:15

Лучи Элдера – показывает степень отклонения текущего максимума и минимума бара от экспоненциальной скользящей средней.

Bull=High-EMA(Close,Period)
Bear=Low-EMA(Close,Period)

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

Специфика модифицированного отображения индикатора:

Если Bull > 0 и Bear > 0, то отображается зеленая гистограмма от Bull до Bear.
Если Bull < 0 и Bear < 0, то отображается красная гистограмма от Bull до Bear.

Иначе отображается и зеленая и красная часть гистограммы.

Автор: Александр Элдер (Alexandr Elder)
Первоисточник: «Основы биржевой торговли. Как играть и выигрывать на бирже.»

Пример:

ElderRay-00.png
ElderRay-00.png (27.01 КБ) 20186 просмотров


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

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

function Initialize()
{
   IndicatorName = "ElderRay";   
   AddInput("Input", Inputs.Candle);   
   AddParameter("Period", 21);   
   AddSeries("Bear", DrawAs.Custom, Color.Red, AxisType.ZeroBased, true, Axes.New);   
   AddSeries("Bull", DrawAs.Custom, Color.Green, AxisType.ZeroBased, true, Axes.New);   
   AddSeries("Zero", DrawAs.Line, Color.Gray, true, Axes.New);   
 
   AddGlobalVariable("E", Types.Double, 0);
}

function Evaluate()
{
// AlfaDirect. 2015. OX
// Ray (Ray) – Лучи А.Элдера
  if (CurrentIndex < 1)
  {
      E = Input.Close[0];   
      Bear = 0.0;
      Bull = 0.0;
      Zero = 0.0;
  } 
  else
  {
      E = EMA(Input.Close, Period)[0];
      Bear = Input.Low[0] - E;
      Bull = Input.High[0] - E;
      Zero = 0.0;
      if (Bull > 0 && Bear > 0 )
      {
         Bull.DrawHistogram(Bear);
         //Bear.DrawHistogram(Zero, Color.Gray, 100);
      }
      else if (Bull < 0 && Bear < 0 )
      {
         Bear.DrawHistogram(Bull);
         //Bull.DrawHistogram(Zero, Color.Gray, 100);
      }
      else
      {
         Bear.DrawHistogram(Zero);
         Bull.DrawHistogram(Zero);
      }
  }
}
никогда такого не было и вот опять

Вернуться в «Уровни»

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

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