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

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

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

Добавлено: evge » 07 фев 2016, 12:39

Тема: PriceChannel – ценовой канал или Канал Дончяна

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

Ценовой канал – это индикатор показывающий максимум и минимум за последний интервал изменения цен заданной длительности.

Индикатор имеет 2 выходных ряда High и Low. Для их вычисления используются следующие формулы:

Hight = max(Ht, Ht-1, …, Ht-n+1 ),
Lowt = max(Lt, Lt-1, …, Lt-n+1 ).

Типовые параметры

Значение периода усреднения выбирается n = 20 для дневного тайм-фрейма.

Автор: Ричард Дончян (Richard Donchian).
Первоисточник: Википедия. (http://ru.wikipedia.org/wiki/Канал_Дончяна)

Пример:

PriceChannel-00.png
PriceChannel-00.png (25.84 КБ) 40158 просмотров


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

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

function Initialize()
{
// Определение параметров индикатора
  IndicatorName = "PriceChannel4";                  
  AddInput("Input", Inputs.Candle);                  
  AddParameter("Period", 50, 1);                     
  PriceStudy = true;                                 
  AddSeries("Upper", DrawAs.Line, Color.Blue);   
  AddSeries("Lower", DrawAs.Line, Color.Red);      
  AddGlobalVariable("Uppers", Types.DoubleList);
  AddGlobalVariable("Lowers", Types.DoubleList);
}

function Evaluate()
{
// AlfaDirect. 2015. 
// Верхняя линия "Upper" - максимальная цена за Period
// Нижняя линия "Lower" - минимальная цена за Period
   var high = Input.High[0];
   var low = Input.Low[0];
   Uppers.Add(high);
   Lowers.Add(low);
   if ( CurrentIndex > Period )
   {
       Uppers.RemoveAt(0);
       for (var i = 0; i < Uppers.Count-1; i++)
          high = Math.Max(Uppers[i], high);
       Lowers.RemoveAt(0);
       for (var i = 0; i < Lowers.Count-1; i++)
          low = Math.Min(Lowers[i], low);
   }
   Upper = high;
   Lower = low;
}