Пользовательские индикаторы > Fibo - индикатор автоматического построения уровней Фибоначи

Дополнительные индикаторы от пользователей Альфа-Директ 4. Готовые решения от пользователей.
Аватара пользователя
evge
Администратор
Сообщения: 1812
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

Fibo - индикатор автоматического построения уровней Фибоначи

Непрочитанное сообщение evge » 02 ноя 2018, 12:48

Автоматическое определение экстремумов и построение уровней Фибоначи по аналогии с граф. инструментом "Уровни Фибоначи".

Входящие параметры

Period1 - кол-во баров слева для поиска экстремума (фрактал)
Period2 - кол-во баров справа для поиска экстремума (фрактал)
Skip - Количество баров отступа от последнего видимого бара для анализа

Примеры

Fibo-01.png
Fibo-01.png (26.94 КБ) 10780 просмотров

Fibo-02.png
Fibo-02.png (28.23 КБ) 10778 просмотров


Код: Выделить всё

function Initialize()
{
    IndicatorName = "Fibo"; 
    AddInput("Input", Inputs.Candle);
    AddParameter("Period1", 30);
    AddParameter("Period2", 5);
    AddParameter("Skip", 0);
    PriceStudy = true;
    AddSeries("H", DrawAs.Custom, Color.Red);
    AddSeries("L", DrawAs.Custom, Color.Green);
   
    AddSeries("Z0", DrawAs.Custom, Color.Black);
    AddSeries("Z1", DrawAs.Custom, Color.Black);
    AddSeries("U1", DrawAs.Custom, Color.Red);
    AddSeries("U2", DrawAs.Custom, Color.Red);
    AddSeries("U3", DrawAs.Custom, Color.Red);
    AddSeries("U4", DrawAs.Custom, Color.Red);
    AddSeries("D1", DrawAs.Custom, Color.Green);
    AddSeries("D2", DrawAs.Custom, Color.Green);
    AddSeries("D3", DrawAs.Custom, Color.Green);
    AddSeries("D4", DrawAs.Custom, Color.Green);
   
    AddGlobalVariable("HIndex", Types.Int, 0);
    AddGlobalVariable("LIndex", Types.Int, 0);
}

function Evaluate()
{

   // evge 02.11.2018 http://alfadirect4.ru

    if (CurrentIndex > Period1 + Period2 + Skip)
    {
        var xH = true;
        var xL = true;
        var HPoint = Input.High[Period2 + Skip];
        var LPoint = Input.Low[Period2 + Skip];
        for (var i = 0; i < Math.Max(Period1, Period2); i++)
        {
             if (i < Period1 && Input.High[Period2 + i + 1 + Skip] > HPoint) xH = false;
             if (i < Period1 && Input.Low[Period2 + i + 1 + Skip] < LPoint) xL = false;
             if (i < Period2 && Input.High[i + Skip] > HPoint) xH = false;
             if (i < Period2 && Input.Low[i + Skip] < LPoint) xL = false;
             if (!xH && !xL) break;
        }
        if (xH) { H[Skip + Period2] = HPoint; HIndex = CurrentIndex - Period2 - Skip; }
        if (xL) { L[Skip + Period2] = LPoint; LIndex = CurrentIndex - Period2 - Skip; }
        H.DrawArrowDown();
        L.DrawArrowUp();
    }
   
    if (HIndex != 0 && LIndex != 0 && CurrentIndex == MaxIndex)
    {
       var H1 = Input.High[CurrentIndex - HIndex];
       var L1 = Input.Low[CurrentIndex - LIndex];
       
      for (int x = 0; x <= Math.Max(CurrentIndex - HIndex, CurrentIndex - LIndex); x++)
      {
       if (HIndex < LIndex)
          {
            Z0[x] = L1;
            Z1[x] = H1;
          U1[x] = L1 + Math.Abs(H1 - L1) * 0.01 * 23.6;
          U2[x] = L1 + Math.Abs(H1 - L1) * 0.01 * 38.2;
          U3[x] = L1 + Math.Abs(H1 - L1) * 0.01 * 50;
          U4[x] = L1 + Math.Abs(H1 - L1) * 0.01 * 61.8;
          }
             else
          {          
          Z0[x] = H1;       
          Z1[x] = L1;       
          D1[x] = H1 - Math.Abs(H1 - L1) * 0.01 * 23.6;
          D2[x] = H1 - Math.Abs(H1 - L1) * 0.01 * 38.2;
          D3[x] = H1 - Math.Abs(H1 - L1) * 0.01 * 50;
          D4[x] = H1 - Math.Abs(H1 - L1) * 0.01 * 61.8;
          }
       }
       
    }
   
    Z0.DrawLine(); Z1.DrawLine();
    U1.DrawLine(); U2.DrawLine(); U3.DrawLine(); U4.DrawLine();
    D1.DrawLine(); D2.DrawLine(); D3.DrawLine(); D4.DrawLine();
}


Скачать индикатор

Fibo.zip
(49.74 КБ) 1782 скачивания
никогда такого не было и вот опять

Вернуться в «Пользовательские индикаторы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя