iCustom - неописанное поведение

 


Здравствуйте. Я напсал ОЧЕНЬ простой советник, который использует пользовательский индикатор. Код советника:

int start()
{
    double ma, tsi, tsiS;
    
    ma                                  = iMA(NULL, 0, Length1, 0, MODE_EMA, PRICE_CLOSE, 0);
    tsi                                 = iCustom(NULL, 0, "TSI", 21, 5, 5, 2000, 0, 0);
    tsiS                                = iCustom(NULL, 0, "TSI", 21, 5, 5, 2000, 1, 0);   
    
    //Alert("TSI = " + tsi);
    return(0);
}

После визуального тестирования я получаю график с отображенными MA и TSI. Вроде все как положено, однако, если добавить на этот график индикатор TSI мы увидим значительное расхождение в показаниях. Нижний добавлен после визуального тестирования. Подскажите, пожалуйста, где я допустил ошибку?


Результат работы тестера

 

Вот еще одна картинка. Она демонстрирует работу эксперта от тика к тику. Функция start() немного изменена:

int start()
{
    double ma, tsi, tsiS;
    
    ma                                  = iMA(NULL, 0, Length1, 0, MODE_EMA, PRICE_CLOSE, 0);
    tsi                                 = iCustom(NULL, 0, "TSI", 21, 5, 5, 2000, 0, 0);
    tsiS                                = iCustom(NULL, 0, "TSI", 21, 5, 5, 2000, 1, 0);   
    
    Comment("TSI(21, 5, 5) " + tsi + " " + tsiS); 
    return(0);
}

Здесь я добавил вывод комментария на график со значениями индикатора TSI. Ниже вы можете сравнить эти значения с индикатором TSI, добавленным непосредственно на график. Опять же наблюдается расхождение значений. Совершенно не понимаю что я мог здесь написать с ошибкой...


Расхождение значений советника и индикатора

 


Спасибо за статьи. Они мне помогли. Я вытащил индикатор на график, пропустил неслолько свечей и добавил еще один такой же. Как ни печально об этом говорить, но было обнаружено расхождение в значениях индикаторов.  Выходит, еще много чего предстоит узнать про MQL. Могли бы вы помочь мне статьями на этот вид ошибки в индикаторе? Я безусловно сам также воспользуюсь поиском. Спасибо.