Не могу получить показания индикатора с других ТФ при тестировании. - страница 2

 
granit77 писал (а):

А какой билд?
208.
 
 Я беру  индикаторы с нескольких ТФ , но по ценам открытия с самого нижнего из используемых - все вычисляется корректно, правда я не изголяюсь для проверки с графическими объектами , а проверяю данные через Print( ) в журнале. 
 
   if(ObjectFind("par1")==-1) { ObjectCreate("par1",OBJ_HLINE,0,Time[0],par1);
     ObjectSet("par1",OBJPROP_COLOR,Turquoise); ObjectSet("par1",OBJPROP_STYLE,2); 
   }  // Перенес чтобы было видно где закрывается if

Это если объект не найден. А если он уже есть, что тогда?

Более логичным был бы такой код.

   if(ObjectFind("par1")==-1) { 
     ObjectCreate("par1",OBJ_HLINE,0,Time[0],par1);
     ObjectSet("par1",OBJPROP_COLOR,Turquoise); 
     ObjectSet("par1",OBJPROP_STYLE,2); 
   }
   else { 
     ObjectSet("par1",OBJPROP_TIME1,Time[0]);
     ObjectSet("par1",OBJPROP_PRICE1,par1);
   }
 
FION:
 Я беру  индикаторы с нескольких ТФ , но по ценам открытия с самого нижнего из используемых - все вычисляется корректно, правда я не изголяюсь для проверки с графическими объектами , а проверяю данные через Print( ) в журнале. 

Дело не в графических объектах, их я сделал специально для форума, чтобы тем кто решит запустить код сразу было видно, что параболик в тестере не движется.
Теперь понятно, почему я не мог получить его значения с других ТФ. И как написал Мориарти то же самое происходит и с некоторыми другими индикаторами.
Ещё один эксперт работающий на индикаторах RSI, CCI, ATR и Stochastic не тестируется на тайм-фреймах отличных от указанных в настройках.
 
DSA:
FION:
Я беру индикаторы с нескольких ТФ , но по ценам открытия с самого нижнего из используемых - все вычисляется корректно, правда я не изголяюсь для проверки с графическими объектами , а проверяю данные через Print( ) в журнале.

Дело не в графических объектах, их я сделал специально для форума, чтобы тем кто решит запустить код сразу было видно, что параболик в тестере не движется.
Теперь понятно, почему я не мог получить его значения с других ТФ. И как написал Мориарти то же самое происходит и с некоторыми другими индикаторами.
Ещё один эксперт работающий на индикаторах RSI, CCI, ATR и Stochastic не тестируется на тайм-фреймах отличных от указанных в настройках.
Все работает в тестере правильно, если в код написать правильно.

//+------------------------------------------------------------------+
//|                                                     3TF_Test.mq4 |
//+------------------------------------------------------------------+
extern int       TF_1     = 30;
extern int       TF_2     = 60;
extern int       TF_3     = 240;
extern double    Step     = 0.02;
extern double    Maximum  = 0.2;
 
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectDelete("par1");
   ObjectDelete("par2");
   ObjectDelete("par3");
   Comment("");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   double par1=NormalizeDouble(iCustom(NULL,TF_1,"Parabolic",Step,Maximum,0,0),Digits);
   double par2=NormalizeDouble(iCustom(NULL,TF_2,"Parabolic",Step,Maximum,0,0),Digits);
   double par3=NormalizeDouble(iCustom(NULL,TF_3,"Parabolic",Step,Maximum,0,0),Digits);
//+------------------------------------------------------------------+
   //ObjectDelete("par1"); ObjectDelete("par2"); ObjectDelete("par3");
   
   if(ObjectFind("par1")==-1)  
      {
      ObjectCreate("par1",OBJ_HLINE,0,Time[0],par1);
      ObjectSet("par1",OBJPROP_COLOR,Turquoise); 
      ObjectSet("par1",OBJPROP_STYLE,2); 
      }
   else      ObjectSet("par1",OBJPROP_PRICE1,par1);
   
   if(ObjectFind("par2")==-1)  
      {
      ObjectSet("par2",OBJPROP_COLOR,Lime); 
      ObjectSet("par2",OBJPROP_STYLE,2);   
      ObjectCreate("par2",OBJ_HLINE,0,Time[0],par2);
      }
   else       ObjectSet("par2",OBJPROP_PRICE1,par2);
   
   if(ObjectFind("par3")==-1)  
      {
      ObjectCreate("par3",OBJ_HLINE,0,Time[0],par3);
      ObjectSet("par3",OBJPROP_COLOR,Red); 
      ObjectSet("par3",OBJPROP_STYLE,2);   
      }
   else       ObjectSet("par3",OBJPROP_PRICE1,par3);
 
   WindowRedraw();      
//+------------------------------------------------------------------+
   Comment("par1  = ",par1,"  par2  = ",par2,"  par3  = ",par3);
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Rosh писал (а):

Все работает в тестере правильно, если в код написать правильно.

Уфф. Вот что у меня показывает ваш код. Билд 208. Сейчас обновлю билд до 210. Посмотрим что получится.
 
Обновил терминал до 210 билда, всё осталось по прежнему. Выложите пожалуйста кто нибудь картинку с визуальным
тестированием данного эксперта и с индикатором Параболик (не Параболик САР). 8(((