Главная страница
Навигация по странице:

  • Экспоненциальная скользящая средняя (

  • Вывод рекуррентной формулы EMA .

  • Библиотека польльских индикаторовзовате. БИБЛИОТЕКА ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ АЛЬФА-ДИРЕКТ4.0. Инструкция по созданию и импорту пользовательских индикаторов 4 библиотека пользовательских индикаторов 5


    Скачать 1.9 Mb.
    НазваниеИнструкция по созданию и импорту пользовательских индикаторов 4 библиотека пользовательских индикаторов 5
    АнкорБиблиотека польльских индикаторовзовате
    Дата24.05.2022
    Размер1.9 Mb.
    Формат файлаdocx
    Имя файлаБИБЛИОТЕКА ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ АЛЬФА-ДИРЕКТ4.0.docx
    ТипИнструкция
    #546719
    страница4 из 24
    1   2   3   4   5   6   7   8   9   ...   24

    SMA (SIMPLE MOVING AVERAGE) – ПРОСТАЯ СКОЛЬЗЯЩАЯ СРЕДНЯЯ


    Простая скользящая средняя(SMASimpleMovingAverage) – это среднее арифметическое значений цен за последние 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) – ЭКСПОНЕНЦИАЛЬНАЯ СКОЛЬЗЯЩАЯ СРЕДНЯЯ


    Экспоненциальная скользящая средняя (EMAExponentialMovingAverage) усредняет все цены с учетом веса . Прямая формула расчета 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);

    }

    }

    1   2   3   4   5   6   7   8   9   ...   24


    написать администратору сайта