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

  • Александр ЭЛДЕР

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


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

    Fractal – Фрактал (экстремум)


    Фракталы Билла Вильямса (В.Williams) показывают особые точки или локальные экстремумы. «Особые точки» - это экстремальные точки на графике, в которых происходит изменение направления движения цены. Эти точки говорят, что в данный момент времени на данном уровне существенно меняется соотношение спроса и предложения, которое может происходить из-за выхода новой информации или из-за достижения определенных ценовых уровней.

    Параметр «Period» данного индикатора показывает порядок фрактала, т.е. какое количество точек справа и слева должно быть ниже (выше) экстремума.
    Пример. Построен индикатор Fractal с параметром Period = 5 на акциях Сбербанка.


    Автор: Билл Вильямс (Bill Williams)

    Первоисточник: «Новые измерения в биржевой торговле».

    Код Альфа-Директ

    function Initialize()

    {

    IndicatorName = "Fractal"; // Задайте название индикатора и сохраните с данным именем

    AddInput("Input", Inputs.Candle);

    AddParameter("Period", 5);

    PriceStudy = true;

    AddSeries("H", DrawAs.Custom, Color.Coral);

    AddSeries("L", DrawAs.Custom, Color.LightGreen);

    }
    function Evaluate()

    {

    // AlfaDirect. 2014. OX

    // Fractal. Period - число точек справа и слева от экстремума, которые ниже (выше) него

    if (CurrentIndex > 2 * Period)

    {

    var xH = 0;

    var xL = 0;

    var HPoint = Input.High[-Period];

    var LPoint = Input.Low[-Period];

    for (var i = 0; i < Period; i++ )

    {

    if ( HPoint >= Input.High[i+1-Period] && HPoint >= Input.High[-i-1-Period] )

    xH = xH + 1;

    if ( LPoint <= Input.Low[i+1-Period] && LPoint <= Input.Low[-i-1-Period] )

    xL = xL + 1;

    }

    if ( xH == Period )

    {

    H[Period] = HPoint;

    }

    if ( xL == Period )

    {

    L[Period] = LPoint;

    }

    H.DrawArrowDown();

    L.DrawArrowUp();

    }

    }

    ZZ (ZigZag) – Зигзаг


    Зигзаг – показывает локальные экстремумы цены, полученные по high и low, которые формируются при отклонении цены (close) от них на заданную величину, заданную в процентах. Последнее плечо индикатора перестраивается и соединяется с текущим максимальным или минимальным значением цены. Данный индикатор используется для наглядного представления направленного движения цены на истории.

    Параметр «Delta» индикатора определяет величину движения цены (в процентах) в противоположную сторону для формирования экстремума.


    Код Альфа-Директ.

    function Initialize()

    {

    IndicatorName = "ZZ";

    PriceStudy = true;

    AddInput("Input", Inputs.Candle);

    AddSeries("ZZWL", DrawAs.Line, Color.Blue);

    AddSeries("Marker", DrawAs.Custom, Color.Red);
    AddParameter("Delta", 0.2);
    AddGlobalVariable("peakbar", Types.Int, 0);

    AddGlobalVariable("troughbar", Types.Int, 0);

    AddGlobalVariable("Direction", Types.Int, 0);

    AddGlobalVariable("hi", Types.Double, 0);

    AddGlobalVariable("lo", Types.Double, 0);

    AddGlobalVariable("hibar", Types.Int, 0);

    AddGlobalVariable("lobar", Types.Int, 0);

    }
    function Evaluate()

    {

    // AlfaDirect 2015. OX

    // ZZ (ZigZag)

    // Новый минимум, если Close бара вырос от текущего Low на %

    // Новый максимум, если Close бара снизился от текущего High на %

    if (CurrentIndex < 2)

    {

    lo = Input.Low[0]; //First min candle for Low

    hi = Input.High[0]; //First max candle for High

    }

    else

    {

    double delta = 0.01*Delta;

    //Detected Local max and Local min

    if(Input.High[0] > hi)

    {

    hi = Input.High[0];

    hibar = CurrentIndex;

    }

    if(Input.Low[0] < lo)

    {

    lo = Input.Low[0];

    lobar = CurrentIndex;

    }
    if(Direction >= 0)

    {

    if(Input.Close[0] > (1 + delta)*lo)

    {

    Direction = -1;

    hi = Input.High[0];

    hibar = CurrentIndex;

    troughbar = lobar;

    ZZWL[lobar-CurrentIndex] = lo;

    Marker[lobar-CurrentIndex] = lo;

    }

    }

    if(Direction <= 0)

    {

    if(Input.Close[0] < (1 - delta)*hi)

    {

    Direction = 1;

    lo = Input.Low[0];

    lobar = CurrentIndex;

    peakbar = hibar;

    ZZWL[hibar-CurrentIndex] = hi;

    Marker[hibar-CurrentIndex] = hi;

    }

    }

    Marker.DrawCircle();

    // Последнее плечо (не зафиксированно)

    if (CurrentIndex == MaxIndex)

    {

    if (troughbar > peakbar)

    ZZWL[hibar-CurrentIndex] = hi;
    if (troughbar < peakbar)

    ZZWL[lobar-CurrentIndex] = lo;

    }

    }

    }


    Александр ЭЛДЕР
    1   ...   10   11   12   13   14   15   16   17   ...   24


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