Почему в советнике значения не соответствуют индикатору?

 

Есть глобальные переменные

double iSell1;

double iSell2;

double iSell3;

double iBuy1;

double iBuy2;

double iBuy3;

В функции

void  Ind_Calc(bool Init = false) 

{

  if (Init) { 

    iSell1 = iCustom(NULL,RSI_TF,"TranderSimple",RSI_TF,RSI_Per,RSI_ma_Type,RSI_ma_Per,0,1);

    iBuy1 = iCustom(NULL,RSI_TF,"TranderSimple",RSI_TF,RSI_Per,RSI_ma_Type,RSI_ma_Per,1,1);

    iSell2 = iCustom(NULL,RSI_TF,"TranderSimple",RSI_TF,RSI_Per,RSI_ma_Type,RSI_ma_Per,0,2);

    iBuy2 = iCustom(NULL,RSI_TF,"TranderSimple",RSI_TF,RSI_Per,RSI_ma_Type,RSI_ma_Per,1,2);

    Sig = (iSell1 > iSell2 || iBuy1 < iBuy2)?0:-1;

    Sig = (iBuy1 > iBuy2 || iSell1 < iSell2)?1:Sig;

    iSell3 = iCustom(NULL,RSI_TF,"TranderSimple",RSI_TF,RSI_Per,RSI_ma_Type,RSI_ma_Per,0,3);

    iBuy3 = iCustom(NULL,RSI_TF,"TranderSimple",RSI_TF,RSI_Per,RSI_ma_Type,RSI_ma_Per,1,3);

  } else {

    iSell3 = iSell2;

    iBuy3 = iBuy2;

    iSell2 = iSell1;

    iBuy2 = iBuy1;

    iSell1 = iCustom(NULL,RSI_TF,"TranderSimple",RSI_TF,RSI_Per,RSI_ma_Type,RSI_ma_Per,0,1);

    iBuy1  = iCustom(NULL,RSI_TF,"TranderSimple",RSI_TF,RSI_Per,RSI_ma_Type,RSI_ma_Per,1,1); 

    

    Sig = (iSell1 > iSell2 || iBuy1 < iBuy2)?0:-1;

    Sig = (iBuy1 > iBuy2 || iSell1 < iSell2)?1:Sig;

    Comment("iS2: ",iSell2,"   iS1: ",iSell1, "   iB2: ",iBuy2,"   iB1: ",iBuy1," SIG:  ",Sig);

    

  }

  Sentiment = (iSell1>1)?0:-1;

  Sentiment = (iBuy1>1)?1:Sentiment;

  B_S = iHigh(NULL,RSI_TF,1) - iLow(NULL,RSI_TF,1);

  B_B = iClose(NULL,RSI_TF,1) - iOpen(NULL,RSI_TF,1);

  B_Imp = ((B_S > _LDBS*R_Imp) &&

           (K_Imp <= NormalizeDouble(MathAbs(B_B)/B_S,2)));

}

А вот результат Значения индикатора в советнике


Причем еще вчера, когда отсутствовали iSell3 и iBuy3 все работало, не понимаю!!!!!!!!!!!!!!


 

На вскидку надо вместо RSI_TF поставить 0, т.к. вызываемый индикатор уже определяет нужный тф

 iCustom(NULL,RSI_TF

 iCustom(NULL,0

 iCustom(NULL,0,"TranderSimple",RSI_TF,
 
ALEKSANDR MARTYNOV:


    iSell1 = iCustom(NULL,RSI_TF,"TranderSimple",RSI_TF,RSI_Per,RSI_ma_Type,RSI_ma_Per,0,1);

    iBuy1 = iCustom(NULL,RSI_TF,"TranderSimple",RSI_TF,RSI_Per,RSI_ma_Type,RSI_ma_Per,1,1);

...

    Comment("iS2: ",iSell2,"   iS1: ",iSell1, "   iB2: ",iBuy2,"   iB1: ",iBuy1," SIG:  ",Sig);


вы снимаете показания с бара #1 -- а это у вас на картинке красный цвет -- и значение iS1 =10.

так что -- ошибки нет в том что вы показали

 
Andrey F. Zelinsky:

вы снимаете показания с бара #1 -- а это у вас на картинке красный цвет -- и значение iS1 =10.

так что -- ошибки нет в том что вы показали

Ну вот присмотритесь, баров после разделения периодов 3! а на индикаторе 2, потому как нулевой не рассчитывается...

ТФ-мы  индикатора задаются независимо от ТФ графика...