Проблема с iRsiOnArray

 

Есть несложный код:

      int sh = iBarShift(NULL,TF_Work,time[i]);

      if (LastTime != iTime(NULL,TF_Work,sh)) {

        while (ArrayCopySeries(TF_close,MODE_CLOSE,NULL,TF_Work) < 0 && !IsStopped()) Sleep(1000);
        LastTime = iTime(NULL,TF_Work,sh);}
        TF_close[sh] = close[i];
        RSI[i] = iRSIOnArray(TF_close,0,RSIPeriod,sh);


почему на выходе 0?

 

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

Скорее всего дело в том, что RSI - это индикаторный буфер, а TF_close - это обычный массив. 

А может быть это вообще не индикатор, раз используется Sleep(). Тогда что за i, где i? Может массиву RSI размер не задан...  Может для TF_close надо сделать ArraySetAsSerias() или для RSI.