Форум трейдеров » Торговые роботы, советники, индикаторы » VIX Fix
+ Подписаться
  1. 1,557
    Комментарии
    30
    Темы
    1701
    Репутация Pro
     
    Мастер форумных наук

    5 Медалей

    VIX Fix

    По материалам статьи http://www.ireallytrade.com/newsletters/VIXFix.pdf пробовал сделать индюк.
    Формула простейшая: WVF = (Highest(Close,22) - Low)/(Highest(Close,22))*100
    Только у меня он выглядит почему-то не так красиво, как в статье. Помогите, пожалуйста.

    //+------------------------------------------------------------------+
    //| WVF.mq4 |
    //| Copyright © 2009, podval |
    //| http://www.ireallytrade.com/newsletters/VIXFix.pdf |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2009, podval"
    #property link "http://www.ireallytrade.com/newsletters/VIXFix.pdf"

    #property indicator_separate_window
    #property indicator_buffers 1
    #property indicator_color1 DeepSkyBlue

    double buf0[];
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //---- indicators
    SetIndexBuffer (0, buf0);
    SetIndexEmptyValue(0, 0);
    SetIndexLabel (0, "VIXFix");
    SetIndexStyle (0, DRAW_LINE);

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----
    Comment("");
    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int start()
    {
    int NumberOfBars, LoopBegin, sh;
    double hc = 0;

    NumberOfBars = Bars - IndicatorCounted();
    if (NumberOfBars==0)
    LoopBegin=Bars-1;
    else LoopBegin=NumberOfBars;

    LoopBegin = MathMin(LoopBegin, Bars-1);
    //----
    for (sh = LoopBegin; sh >= 0; sh--)
    {
    hc = iHighest(NULL, 0, MODE_CLOSE, 22, sh);
    buf0[sh] = 100*(hc - iLow(NULL, 0, sh))/hc;
    }
    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    Недоступно! Pro 0
    Поделиться
    Просмотров: 2,655
  2. 174
    Комментарии
    1
    Темы
    175
    Репутация Pro
    Аватар для Aalex  
    В начале пути

    2 Медалей
    Цитата Сообщение от podval Посмотреть сообщение
    hc = iHighest(NULL, 0, MODE_CLOSE, 22, sh);
    iHighest - возвращает индекс бара, а не значение на этом баре.
    надо использовать конструкцию
    Код:
    hc = High[iHighest(NULL, 0, MODE_CLOSE, 22, sh)];
  3. 174
    Комментарии
    1
    Темы
    175
    Репутация Pro
    Аватар для Aalex  
    В начале пути

    2 Медалей
    и при работе только с текущим инструментом и только с текущим ТФ вместо iLow лучше использовать просто Low - немножко быстрее работает и выглядит красивее и понятнее
  4. 1,557
    Комментарии
    30
    Темы
    1701
    Репутация Pro
     
    Мастер форумных наук

    5 Медалей
    Спасибо огромное! :)

Вверх
РегистрацияX

чтобы писать, читать, комментировать