cannot set millisecond timer (500) - страница 3

 
Slawa:

Думать будем.

Для начала расширим диагностику - там возможно 5 или 6 причин неудачи. Заодно проведём ревизию кода, возможно какая-то ошибка закралась

Спасибо. 
 
Vladislav Andruschenko:

 

а брокер не БКС случайно?  

давно заметил странно мт5 у него работает на реали-мини с моими индикаторами, руки не доходят проверить причины... на других вроде бы всё норм.

 

это глюк пока только на мт4 от БКС происходит

 
Эта ошибка вообще какая-то плавающая. Есть один VPS, на нем терминал от RoboForex. Робот на таймере работает. Захожу сменить настройки и получаю ошибку 4024. Причем и милисекундный таймер и секундный не могут запуститься. Хотя только что на этой же сборке в этой же среде работал несколько недель без проблем. Параллельно соседний терминал в этой же среде продолжает работать с таймером. Прошлый раз запустилось всё только после ребута VPS, а так тоже выдавал ошибку и не мог инициализировать таймер.
 
Dmitriy Falkov:
Эта ошибка вообще какая-то плавающая. Есть один VPS, на нем терминал от RoboForex. Робот на таймере работает. Захожу сменить настройки и получаю ошибку 4024. Причем и милисекундный таймер и секундный не могут запуститься. Хотя только что на этой же сборке в этой же среде работал несколько недель без проблем. Параллельно соседний терминал в этой же среде продолжает работать с таймером. Прошлый раз запустилось всё только после ребута VPS, а так тоже выдавал ошибку и не мог инициализировать таймер.

 

есть догадки что ошибка возникает при подвивающем инете, но как с этим быть я хз... 

 
Скорее запускается, если разгрузить процессор. При нагрузке в 100% не может запуститься. Если закрыть соседний терминал, то запускается.
 

Добавил в OnInit():

   int error=-1;
   int counter=1;
   do
   {
      ResetLastError();
      EventSetMillisecondTimer(Timer);
      error=GetLastError();
      Print("EventSetMillisecondTimer. Attempt=",counter," Error=",error);
      if(error!=0) Sleep(1000);
      counter++;
   }
   while(error!=0 && !IsStopped());

И наблюдал следующее. Пять неудачных попыток. Параллельно закрываю соседний терминал, в котором нет графиков, а только копирование сделок стоит. И сразу удача. Таймер проинициализировался.

 
Dmitriy Falkov:

Добавил в OnInit():

   int error=-1;
   int counter=1;
   do
   {
      ResetLastError();
      EventSetMillisecondTimer(Timer);
      error=GetLastError();
      Print("EventSetMillisecondTimer. Attempt=",counter," Error=",error);
      if(error!=0) Sleep(1000);
      counter++;
   }
   while(error!=0 && !IsStopped());

И наблюдал следующее. Пять неудачных попыток. Параллельно закрываю соседний терминал, в котором нет графиков, а только копирование сделок стоит. И сразу удача. Таймер проинициализировался.

а какой код ошибки-то?
 
Все тот же: 4024
 

ошибка всегда одна 4024

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