Библиотека польльских индикаторовзовате. БИБЛИОТЕКА ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ АЛЬФА-ДИРЕКТ4.0. Инструкция по созданию и импорту пользовательских индикаторов 4 библиотека пользовательских индикаторов 5
Скачать 1.9 Mb.
|
LinRegSlope (Linear Regression Slope) – НАКЛОН ЛИНЕЙНОЙ РЕГРЕССИИНаклон Линейной Регрессии – это индикатор, который отображает наклон текущей линейной модели для цены за выбранный период. Или проще - это коэффициент альфа в модели линейной регрессии. Формула расчета следующая: где N – период линейной модели. Сигналы Пересечение индикатора с нулем говорит, что линейная регрессионная модель изменила свой наклон, т. е. движение изменило направление. Код Альфа-Директ function Initialize() { IndicatorName = "LinRegSlope"; PriceStudy = false; AddInput("Input", Inputs.Price); AddSeries("LinRegSlope", DrawAs.Line, Color.Red); AddParameter("Period", 20); AddGlobalVariable("ZN", Types.Double, 0.0); AddGlobalVariable("t2", Types.Double, 0.0); AddGlobalVariable("t4", Types.Double, 0.0); AddLevel(0, Color.Gray, "LinRegSlope"); } function Evaluate() { // AlfaDirect. 2014. OX // LinReg (Linear Regression) - Линейная регрессия if ( CurrentIndex == 0 ) { // Расчет неизменных коэффициентов по времени for (int i = 0; i < Period; i++) { t2 = t2 + i; t4 = t4 + i * i; } ZN = ((double)Period * t4 - t2 * t2); } if ( CurrentIndex < Period ) LinRegSlope = 0.0; else { // Вариант (t=0...N-1) double a1 = 0.0; double a3 = 0.0; for (int i = 0; i < Period; i++) { a1 = a1 + i * Input[-(int)Period + 1 + i]; a3 = a3 + Input[-i]; } LinRegSlope = (Period * a1 - t2 * a3) / ZN; } } CCI (Commodity Channel Index) – ИНДЕКС ТОВАРНОГО КАНАЛАИндекс торгового канала – это негладкий осциллятор, который показывает отклонение цен от своего скользящего среднего с нормировкой по текущему стандартному отклонению. Формула для выражения индекса торгового канала имеет следующий вид: CCIt = (TPt – SMA(TP, N)) / (0.015*MDt), где TP (TypicalPrice) – типовая цена, которая вычисляется как среднее из трех значений (максимума, минимума и цены закрытия). TPt = (Ht + Lt + Ct)/3, SMA(TP, N) – простое среднее арифметическое значение TP за последние N периодов. MD (MeanDeviation) – среднее отклонение TP рассчитывается по формуле: , где t-i – цена i точек назад от момента t. Типовые параметры. Типовые параметры CCI имеют следующие значения N = 20 и уровни UpLevel = 100 и DnLevel = -100. Сигналы При росте индикатора выше уровня 100 считается, что это начало растущего движения и можно ожидать продолжение тренда. При падении ниже уровня -100 все наоборот. При снижении индикатора из зоны выше 100 получаем контр-трендовый сигнал, который говорит о начале коррекции текущего тренда. При повышении индикатора из зоны ниже -100 все наоборот. Некоторые авторы используют пересечение индикатора и нулевой линии. Надо понимать, что это идентично пересечению типовой цены и скользящей средней. Индикатор является встроенным индикатором, поэтому создавать пользовательский индикатор не имеет смысла. Автор: Дональд Ламберт (Donald Lambert) Источник: Commodities magazine. 1980. Код Альфа-Директ function Initialize() { IndicatorName = "CCI"; PriceStudy = false; AddInput("Input", Inputs.Candle); AddParameter("Period", 20, 1.2); AddSeries("CCI", DrawAs.Line, Color.Gray); AddLevel(100, Color.Gray, "CCI"); AddLevel(-100, Color.Gray, "CCI"); } function Evaluate() { // AlfaDirect. 2014. OX // CCI (COMMODITY CHANNEL INDEX) – ИНДЕКС ТОВАРНОГО КАНАЛА if ( CurrentIndex < Period) { CCI = 0.0; } else { var TP = LIB.TP(Input); var sma = SMA(TP, Period)[0]; // Mean Deviation var sigma = 0.0; for (int i = 0; i < Period; i++ ) sigma = sigma + Math.Abs(TP[-i] - sma); sigma = (sigma/Period); // CCI CCI = (TP[0] - sma) / (0.015 * sigma); } } |