Библиотека польльских индикаторовзовате. БИБЛИОТЕКА ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ АЛЬФА-ДИРЕКТ4.0. Инструкция по созданию и импорту пользовательских индикаторов 4 библиотека пользовательских индикаторов 5
Скачать 1.9 Mb.
|
NRTR (Nick Rypock Trailing Reverse) – ПРОЦЕНТ ОТКЛОЕНИЯ ОТ ЭКСТРЕМУМАNRTR– индикатор, который при росте показывает заданный процент отклонения вниз от достигнутого максимума, а при падении показывает заданный процент отклонения вверх от достигнутого минимума. Пример отображения. Автор. Nick Rypock Источники. Общая информация (http://konkop.narod.ru/Files/4_24_28.pdf) Код Альфа-Директ (на базе MetaStock) function Initialize() { // Обязательные параметры: IndicatorName = "NRTR"; // Задайте название индикатора и сохраните с данным именем PriceStudy = true; // Рисовать в области цены (true – да, false – нет) AddInput("Input", Inputs.Price); // Input - входной ряд (Inputs.Price) или свечи (Inputs.Candle) AddSeries("NRTR", DrawAs.Line, Color.Red); // Задаем вид линии индикатора A AddParameter("PST", 0.2); // Параметр % отклонения от экстремума } function Evaluate() { // AlfaDirect. 2014. OX // NRTR. Реализация по коду MS var C = Input[0]; var TR = C * PST / 100; if (CurrentIndex < 1) { NRTR = Input[0]; } else { if (C == NRTR[-1] ) NRTR = NRTR[-1] ; else if (Input[-1] < NRTR[-1] && C < NRTR[-1] ) NRTR = Math.Min( NRTR[-1], C + TR) ; else if (Input[-1] > NRTR[-1] && C > NRTR[-1] ) NRTR = Math.Max( NRTR[-1], C - TR); else if (C > NRTR[-1] ) NRTR = C - TR; else NRTR = C + TR; } } NATR (N-ATR Trailing Reverse) – ЧИСЛО СРЕДНИХ ИСТЕННЫХ ОТКЛОНЕНИЙNATR– индикатор, который при росте показывает заданное число значений ATR вниз от достигнутого максимума, а при падении показывает заданное число значений ATR вверх от достигнутого минимума. Источники: Общая информация (http://konkop.narod.ru/Files/4_24_28.pdf) Код Альфа-Директ function Initialize() { IndicatorName = "eNATR"; PriceStudy = true; AddInput("Input", Inputs.Candle); // Определяем тип входного ряда AddParameter("K_ATR", 30, 1); // Определяем изменяемый параметр AddParameter("N_ATR", 4); // Определяем изменяемый параметр AddGlobalVariable("gDirection", Types.Double, 1.0); // Определяем глобальную переменную AddGlobalVariable("gHigh", Types.Double, 0.0); // Определяем глобальную переменную AddGlobalVariable("gLow", Types.Double, 100000000000.0); // Определяем глобальную AddSeries("eNATR", DrawAs.Line, Color.Blue); // Определяем выходной ряд } function Evaluate() { // AlfaDirect. 2014. OX // NATR. Отклонение от экстремума (по High и Low) на заданное кол-во значений ATR - переворот направления if (CurrentIndex < 1) { eNATR = Input.High[0]; gHigh = Input.High[0]; } else { var cATR = 0.0; // Пример вызова встроенного индикатора ATR cATR = N_ATR*ATR(Input, K_ATR); if (gDirection > 0.0) { if (Input.High[0] > gHigh) gHigh = Input.High[0]; if (Input.Close[0] < gHigh-cATR) { gDirection = -1.0; gLow = Input.Low[0]; eNATR = gLow + cATR; } else eNATR = gHigh - cATR; } else if (gDirection < 0.0) { if (Input.Low[0] < gLow) gLow = Input.Low[0]; if (Input.Close[0] > gLow+cATR) { gDirection = 1.0; gHigh = Input.High[0]; eNATR = gHigh - cATR; } else eNATR = gLow + cATR; } } } КАНАЛЫBB (BOLLINGER BANDS) – ЛЕНТЫ БОЛЛИНДЖЕРАИндикатор Полосы Боллинджера, который часто можно встретить в литературе под названием ленты или конверт Боллинджера, состоит из трех линий: Средняя линия – это простая скользящая средняя SMA с периодом N. BBmiddlet = SMA(C, N). Верхняя линия – это простая скользящая средняя SMA периодом N плюс K стандартных отклонений (STD) от среднего значения за тот же интервал N. BBuppert = SMA(C, N) + K*STDt. Нижняя линия – это простая скользящая средняя SMA периодом N минус K стандартных отклонений (STD) от среднего значения за тот же интервал N. BBlowert = SMA(C, N) – K*STDt. Где N – период, на котором рассчитываются SMA и STD. K – число стандартных отклонений, которое используется для построения границ полосы, и определяет величину их отклонения вверх и вниз от SMA. STD (Standard Deviation) – стандартное отклонение рассчитывается по формуле: , где Ct-i – цена i точек назад от момента t. Типовые параметры Автор индикатора, Боллинджер, предлагает на дневном тайм-фрейме использовать следующие параметры: период SMA 10 и D = 1.9 стандартных отклонения; период SMA 20 и D = 2 стандартных отклонения; период SMA 50 и D = 2.1 стандартных отклонения. На внутридневных данных желательно проводить подстройку параметров с учетом двух факторов: центральная линия должна выполнять поддержку цен на тренде, а верхняя и нижняя линии должны ограничивать движение при флэте. Индивидуальная настройка периода BB производится аналогично настройке SMA. Аналогично простым скользящим средним центральная линия полосы Боллинджера используется как линия поддержки/сопротивления при трендовых движениях. Верхняя и нижняя линии показывают диапазон колебания при случайном движении цены (ненаправленном), который обычно сохраняется при боковом движении и нарушается при начале трендовых движений. Индикатор является встроенным индикатором, поэтому создавать пользовательский индикатор не имеет смысла. Автор: Д. Боллинджер (J. Bolliger) Источник: Д. Боллинджер, «Боллинджер о лентах боллинджера». Код Альфа-Директ function Initialize() { IndicatorName = "BB"; PriceStudy = true; AddInput("Input", Inputs.Price); AddParameter("Period", 50, 1.2); AddParameter("D", 2.0); AddGlobalVariable("SUM", Types.Double, 0.0); AddSeries("SMA", DrawAs.Line, Color.Gray); AddSeries("Upper", DrawAs.Line, Color.Gray); AddSeries("Lower", DrawAs.Line, Color.Gray); } function Evaluate() { // AlfaDirect. 2014. OX // BB - (Bollinger Bands) Линии болинджера. // Автор - Боллинджер (Bollinger). if ( CurrentIndex < Period ) { SUM = SUM + Input[0]; SMA = (SUM) / (CurrentIndex + 1); } else { SUM = SUM + Input[0] - Input[0-Period]; SMA = (SUM)/ Period; } if ( CurrentIndex < Period) { Upper = Input[0]; Lower = Input[0]; } else { var sigma = 0.0; for (var i = 0; i < Period; i++ ) sigma = sigma + (Input[-i] - SMA[0]) * (Input[-i] - SMA[0]); sigma = D * Math.Sqrt(sigma/Period); Upper = SMA[0] + sigma; Lower = SMA[0] - sigma; } } |