Ошибки, баги, вопросы - страница 1460

 
не могу найти аналог iBarsShiaft  в MQL5  . подскажите ....
 
Vladimir Pastushak:
не могу найти аналог iBarsShiaft  в MQL5  . подскажите ....
int iBarShift(string symbol,
                  int tf,
                  datetime time,
                  bool exact=false)
  {
   if(time<0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[],time1;
   CopyTime(symbol,timeframe,0,1,Arr);
   time1=Arr[0];
   if(CopyTime(symbol,timeframe,time,time1,Arr)>0)
     {
      if(ArraySize(Arr)>2) return(ArraySize(Arr)-1);
      if(time<time1) return(1);
      else return(0);
     }
   else return(-1);
  }
 
Vladislav Andruschenko:

Я сделал чуть по другому, мне кажется более надежно:

//+------------------------------------------------------------------+
int BarsShift(const string sym,const ENUM_TIMEFRAMES tim,const datetime time)
  {
   if(time<0)return -1;
   datetime mas[]; int z=-1;
   while(z++<3)
      if(CopyTime(sym,tim,TimeCurrent(),time,mas)>0)
         return ArraySize(mas);
   else
      Sleep(500);
   Print(" Erorr Search BarsShift ",GetLastError());
   return -1;
  }
//+------------------------------------------------------------------+

 Что думаете ?

 

Уважаемые, кто может подсказать, в чем проблема и из-за чего сыпется (множество лишних стрелочек) индикатор через какое то время работы?

Замечал только на м1. После передергивания ТФ все отображается нормально.

Проблема в индикаторе или в терминале и котировках м1?


 
Aleksandr Novikov:

Уважаемые, кто может подсказать, в чем проблема и из-за чего сыпется (множество лишних стрелочек) индикатор через какое то время работы?

Замечал только на м1. После передергивания ТФ все отображается нормально.

Проблема в индикаторе или в терминале и котировках м1?


Обнуляйте буферы внутри цикла в самом его начале, перед расчётом значений буферов.
Buffer[i]=0;
 
Vladimir Pastushak:
не могу найти аналог iBarsShiaft  в MQL5  . подскажите ....
Вообще-то 2й вариант функции Bars - прямой аналог, но с ним бывают глюки. Точнее - бывали в начале года, может уже вылечили
 

Компилятор думает, думает и тихо умирает вместе с редактором на этой короткой программе (32,64 битные, в т.ч. разные ОС - одинаково):

struct TCoord {
        int x, y;
};

void OnStart() {        
        TCoord coord = {100, 100};
        TCoord defaultCoord = {0,0};
        coord = (2 == 2) ? coord : defaultCoord;
}
Где-то косяк в оптимизаторе.
Кстати, когда MetaEditor крашится, его состояние (открытые файлы, настройки интерфейса) не сохраняется.
 
Aleksandr Novikov :


Когда это происходит перезапуск индикатор ... и все возвращается в нормальное русло.
 
Rodrigo da Silva Boa:
Когда это происходит перезапуск индикатор ... и все возвращается в нормальное русло.

Не нужно ничего перезапускать. Это мусор в буферах, который нужно чистить в цикле индикатора. Например:

   for(int i=limit; i>=0; i--) {
      BufferPatternDN[i]=0;               // без обнуления буферов мусор в них появляется постоянно
      BufferPatternUP[i]=0;
      BufferLevelDN[i]=EMPTY_VALUE;
      BufferLevelUP[i]=EMPTY_VALUE;
      // ... остальной код расчёта буферов
      // ...
   }  // конец цикла

Просто нужно добавить в начало цикла обнуление буферов, а не перезапускать индикатор постоянно при появлении хлама на графике

 

Как это победить ? Убунта в виртуал боксе, все проги ходят в нет без прокси, везде прямое подключение

но терминал упорно просит прокси

 

Причина обращения: