помогите с индикатором, не получается взять значение с другого ТФ

 

написал такой код

   int limit=Bars-IndicatorCounted();   
   int i; 
//---- 
   for(i=limit-1; i>=0; i--)
      {
       double diff15=iMA(Symbol(),0,30,0,3,0,iBarShift(NULL,PERIOD_M15,Time[i],false))-iMA(Symbol(),0,30,0,3,0,iBarShift(NULL,PERIOD_M15,Time[i+1],false));
       Comment(diff15);
       if(diff15>=0)
         {
          Buf1[i]=0.09;
          Buf2[i]=EMPTY_VALUE;
         }
       if(diff15<0)
         { 
          Buf1[i]=EMPTY_VALUE;
          Buf2[i]=0.09;
         }
      }

когда индикатор установлен на М15, все хорошо работает, переключаюсь на М5, не правильно рисует значения. в чем ошибка? как исправить?

 
dmmikl86:

написал такой код

когда индикатор установлен на М15, все хорошо работает, переключаюсь на М5, не правильно рисует значения. в чем ошибка? как исправить?

Time[i]

берется от текущего ТФ, используйте iTime()

 
ilunga:

берется от текущего ТФ, используйте iTime()


делаю так

double diff15=iMA(Symbol(),0,30,0,3,0,iBarShift(NULL,PERIOD_M15,iTime(NULL,PERIOD_M15,i),false))-iMA(Symbol(),0,30,0,3,0,iBarShift(NULL,PERIOD_M15,iTime(NULL,PERIOD_M15,i+1),false));

на М5 также не прорисовывает правильно

 
dmmikl86:


делаю так

на М5 также не прорисовывает правильно

double iMA( string symbol, int timeframe

у вас ТФ = 0 - текущий

 
ilunga:
double iMA( string symbol, int timeframe

у вас ТФ = 0 - текущий


точно, куда я смотрю... спасибо
Причина обращения: