Скачать MetaTrader 5

Ошибки 4001 и 4102. Вызовы из OnCalculate.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
В сервисе Фриланс выполнено тысячи оплачиваемых заказов. Присоединяйся!
Vladimir Karputov
Модератор
45628
Vladimir Karputov 2015.11.13 16:47 

В OnCalculate() (при первом вызове) при попытке получить 

//+------------------------------------------------------------------+ 
//| Функция получает цвет отображения линии Bid.                     | 
//+------------------------------------------------------------------+ 
color ChartBidColorGet(const long chart_ID=0)
  {
//--- подготовим переменную для получения цвета 
   long result=clrNONE;
//--- сбросим значение ошибки 
   ResetLastError();
//--- получим цвет линии цены Bid 
   if(!ChartGetInteger(chart_ID,CHART_COLOR_BID,0,result))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError(),", result=",result);
     }
//--- вернем значение свойства графика 
   return((color)result);
  }

получаю ошибку 4102:

ERR_CHART_NO_REPLY

4102

График не отвечает

 

а при попытке получить

//+------------------------------------------------------------------+ 
//| Функция получает цвет осей, шкалы и строки OHLC графика.         | 
//+------------------------------------------------------------------+ 
color ChartForeColorGet(const long chart_ID=0)
  {
//--- подготовим переменную для получения цвета 
   long result=clrNONE;
//--- сбросим значение ошибки 
   ResetLastError();
//--- получим цвет осей, шкалы и строки OHLC графика 
   if(!ChartGetInteger(chart_ID,CHART_COLOR_FOREGROUND,0,result))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError(),", result=",result);
     }
//--- вернем значение свойства графика 
   return((color)result);
  }

получаю ошибку:

ERR_INTERNAL_ERROR

4001

Неожиданная внутренняя ошибка

 

Такое происходит в терминале

MetaTrader 5 x64 build 1210 started (MetaQuotes Software Corp.)
Windows 10 Pro (x64 based PC), IE 11.00, UAC, Intel Core i3-3120M  @ 2.50GHz, RAM: 1742 / 3981 Mb, HDD: 58970 / 234136 Mb, GMT+02:00

в котором открыто шесть графиков. На каждом графике в индикаторе в OnCalculate() происходят вызовы ChartBidColorGet и ChartForeColorGet при первом запуске за сутки. При последующих перезапусках такие ошибки не возникают. Странно, что это как-то связанно именно с первым запуском за сутки.

Vladimir Karputov
Модератор
45628
Vladimir Karputov 2015.11.13 20:23  

Проверил ещё раз. 

  1. Перезагрузил операционную систему.
  2. Подождал 10 минут. 
  3. Включил терминал MetaTrader 5.
  4. Выскочило несколько ошибок 4001 и 4102.
Определённо связанно такое поведение только с перезагрузкой операционной системы.

Vladimir Karputov
Модератор
45628
Vladimir Karputov 2015.11.19 19:39  

Почему разное поведение при первом запуске терминала после перезагрузки операционной системы и при последующих запусках терминала? Надоело перезагружать компьютер - может есть параметр в реестре или в *.ini файлах терминала, который отвечает за подсчёт запусков терминала после перезагрузки операционной системы?

Alexey Volchanskiy
16757
Alexey Volchanskiy 2015.11.21 22:07  
Karputov Vladimir:

Почему разное поведение при первом запуске терминала после перезагрузки операционной системы и при последующих запусках терминала? Надоело перезагружать компьютер - может есть параметр в реестре или в *.ini файлах терминала, который отвечает за подсчёт запусков терминала после перезагрузки операционной системы?

Может, это поможет? http://www.oszone.net/11318/mon_reg
Примеры мониторинга системного реестра
  • www.oszone.net
Примеры мониторинга системного реестра
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий