Значения индикатора различных таймфреймов

 

Всем привет !

есть такая проблема- хотел считывать показания пользовательского индикатора с различных таймфреймов, но к сожалению значения большего ТФ (в коде значения PriceL_H, PriceL_Green_H и PriceL_Blue_H) не обновляются на тестере.  Или это ограничение тестера ? 

 

 

 

 
Worh:

Всем привет !

есть такая проблема- хотел считывать показания пользовательского индикатора с различных таймфреймов, но к сожалению значения большего ТФ (в коде значения PriceL_H, PriceL_Green_H и PriceL_Blue_H) не обновляются на тестере.  Или это ограничение тестера ? 

В тестере низзя заглядывать в будущее - иначе таких граалей тестерных можно понапридумывать, что мама не горюй.
 
Karputov Vladimir:
В тестере низзя заглядывать в будущее - иначе таких граалей тестерных можно понапридумывать, что мама не горюй.
А почему будущее? Тестирую на М1, беру значение с H1, должен ведь выдавать текущее значение индикатора с H1. Это если тестировать "все тики" или "каждый тик на основе реальных".
 
Подождём кода...
 
Karputov Vladimir:
Подождём кода...
А между тем только что терминальчик обновился до 1297 - промежуточная версия? Счет на MQ Demo.
 
Alexey Volchanskiy:
А почему будущее? Тестирую на М1, беру значение с H1, должен ведь выдавать текущее значение индикатора с H1. Это если тестировать "все тики" или "каждый тик на основе реальных".
Karputov Vladimir:
В тестере низзя заглядывать в будущее - иначе таких граалей тестерных можно понапридумывать, что мама не горюй.
Alexey Volchanskiy:
А почему будущее? Тестирую на М1, беру значение с H1, должен ведь выдавать текущее значение индикатора с H1. Это если тестировать "все тики" или "каждый тик на основе реальных".
 
void OnTick()
  {
   if(iTime(nameSym,Period_,0)<dateTrade) return; // ограничение на время 
//    ВОТ ЭТИ ЗНАЧЕНИЯ ФТ НА 1ч. НЕ ОБНОВЛЯЮТСЯ В ТЕСТЕРЕ НА 15 МИН ТФ      !!!!!
   PriceL_H=NormalizeDouble(iCustom(nameSym,Period_Hour,"LaguerreMA",Gamma,Price,0,shiftBar),Digits);
   PriceL_Green_H=NormalizeDouble(iCustom(nameSym,Period_Hour,"LaguerreMA",Gamma_Green,Price,0,shiftBar),Digits);
   PriceL_Blue_H=NormalizeDouble(iCustom(nameSym,Period_Hour,"LaguerreMA",Gamma_Blue,Price,0,shiftBar),Digits);

   Print("PricBlu  ",PriceL_Blue_H," PricRed ",PriceL_H,"  Delta ",PriceL_Blue_H-PriceL_H);
   if(MathAbs(PriceL_Blue_H-PriceL_H)<delta)
     {
      flagTrend=-flagTrend;  //  покупать/ продавать
      dateTrade= OrderOpenTime();

      Print("HourFlagTrend  ",flagTrend,"  Date ",dateTrade);
     }
   else   // зеленая и красная вместе обычно не пересекают синюю
     {
      if(MathAbs(PriceL_Green_H-PriceL_Blue_H)<delta)
        {
         dateTrade=OrderOpenTime()+9*60*60;
         Print("HourDate Flag Green  ",dateTrade);
        }
     }
// касание бара и синей на 15 мин
   if((CompareDoubles(iHigh(nameSym,Period_,shiftBar),PriceL_Blue_15) && CompareDoubles(PriceL_Blue_H,iLow(nameSym,Period_,shiftBar))))
     {
      if(flagTrend>0) // покупать
        {
         if(CompareDoubles(iClose(nameSym,Period_,shiftBarClose),PriceL_Blue_15))
           {
            nameLin="5_barsChartBy "+IntegerToString(IdLine);
            ObjectCreate(nameLin,OBJ_VLINE,0,Time[0],Open[0]);
            ObjectSetInteger(0,nameLin,OBJPROP_COLOR,Blue);
            IdLine++;

            dateTrade=OrderOpenTime()+2*60*60;

            Print("1FlagTrend   ",flagTrend,"  Date ",dateTrade);
            //cmdOrd=1 ; 
            //txtOpen="Blue" ;
           }
        }
      else
        {
         if(CompareDoubles(PriceL_Blue_15,iClose(nameSym,Period_,shiftBarClose)))
           {
            nameLin="5_barsChartSell "+IntegerToString(IdLine);
            ObjectCreate(nameLin,OBJ_VLINE,0,Time[0],Open[0]);
            ObjectSetInteger(0,nameLin,OBJPROP_COLOR,Red);
            IdLine++;

            dateTrade=OrderOpenTime()+2*60*60;

           }
        }
     }
  }
//+------------------------------------------------------------------+
 
Спасибо тем кто откликнулся! код работает , просто невнимательно смотрел результаты тестирования