Библиотека польльских индикаторовзовате. БИБЛИОТЕКА ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ АЛЬФА-ДИРЕКТ4.0. Инструкция по созданию и импорту пользовательских индикаторов 4 библиотека пользовательских индикаторов 5
Скачать 1.9 Mb.
|
SMA (SIMPLE MOVING AVERAGE) – ПРОСТАЯ СКОЛЬЗЯЩАЯ СРЕДНЯЯПростая скользящая средняя(SMA – SimpleMovingAverage) – это среднее арифметическое значений цен за последние P точек выбранного тайм-фрейма. Формула расчета для простой скользящей средней с периодом усреднения P следующая: где SMAt – значение индикатора в расчетной точке t, Closet-i – значения цены в момент времени t-i, P – период индикатора. SMA обладает постоянным запаздыванием = (P+1)/2. SMA – это фильтр с конечно импульсный характеристикой (КИХ), где импульсная характеристика имеет вид Wk = 1, для к = 1…P. Индикатор SMA – является встроенным индикатором, поэтому создавать пользовательский индикатор не имеет смысла. Код Альфа-Директ function Initialize() { IndicatorName = "SMA"; PriceStudy = true; AddInput("Input", Inputs.Price); AddParameter("Period", 100); AddGlobalVariable("SUM", Types.Double, 0.0); AddSeries("SMA", DrawAs.Line, Color.Yellow); } function Evaluate() { // AlfaDirect. 2015. OX // SMA - Оптимальный вариант по скорости if ( CurrentIndex < Period ) { SUM = SUM + Input[0]; SMA = SUM / (CurrentIndex + 1); } else { SUM = SUM + Input[0] - Input[(int)(-Period)] ; SMA = SUM/ Period; } } EMA (EXPONENTIAL MOVING AVERAGE) – ЭКСПОНЕНЦИАЛЬНАЯ СКОЛЬЗЯЩАЯ СРЕДНЯЯЭкспоненциальная скользящая средняя (EMA – ExponentialMovingAverage) усредняет все цены с учетом веса . Прямая формула расчета EMA следующая где EMAt – значение индикатора в расчетной точке t, Closet-i – значения цены в момент времени t-i, Wi – значения веса для соответствующей цены в момент времени t-i. Знаменатель данной формулы исполняет роль нормировки усредненного значения. Расчет EMA по прямой формуле нерационален, т.к. для точного расчета значения индикатора требуется провести вычисления по всем известным ценам. Поэтому на практике используют рекуррентную формулу расчета EMA: или где коэффициент К определяется на основании заданного периода индикатора K = 2/(P+1). Экспоненциальная скользящая средняя (EMA) это разновидность фильтров с бесконечной импульсной характеристикой (БИХ), весовая функция которых является реакцией линейного дифференциального уравнения первого порядка на единичный импульс и описывается формулой . Вывод рекуррентной формулы EMA. EMA это модель описываемая линейным дифференциальным уравнением первого порядка, которое в непрерывном виде имеет следующий вид где T – постоянная времени, c(t) - цена, x(t) – значение индикатора EMA. Цены обычно анализируются в некотором выбранном тайм-фрейме, т.е. время разбивается на соответствующие интервалы T. В этом случае необходимо перевести непрерывное представление дифференциального уравнения в разностное. Такой перевод делается заменой где Тогда, подставив все в исходное уравнение получаем Сделаем несколько преобразований Приняв постоянную времени равную T = (P+1)/2, в итоге получили стандартную формулу для EMA Таким же способом можно получить формулу для линейного дифференциального уравнения любого порядка или фильтра (БИХ), свойства которого легко оценить. Индикатор EMA – является встроенным индикатором, поэтому создавать пользовательский индикатор не имеет смысла. Код Альфа-Директ function Initialize() { IndicatorName = "EMA"; AddInput("Input", Inputs.Price); AddSeries("EMA", DrawAs.Line, Color.Green); PriceStudy = true; AddParameter("Period", 20, 1); AddGlobalVariable("K", Types.Double, 0.0); } function Evaluate() { // AlfaDirect. 2015. OX // EMA - экспоненциальная скользящая средняя. if (CurrentIndex > 0) EMA = (1.0 - K)*EMA[-1] + K*Input[0]; else { EMA = Input[0]; K = 2.0/(Period + 1.0); } } |