Помогите с ChartOpen() 4024 Error

 

Добрый вечер, господа трейдеры и программисты! Кажется, это какая-то аномалия. Поможите чем можите, пожалуйста...

Почему не работает этот простейший код?

Ошибка 4024 - Внутренняя ошибка терминала. Что ему не нравится? Натыкался в интернетах на похожую аномалию (например, как тут /*....*/ удалено модератором)

Но как это победить? Причем несколько раз при самом первом использовании ChartOpen() это работало и графики открывались, потом вообще наглухо перестали...


   long chartOpenResult1 = ChartOpen("XAUUSD", PERIOD_M5);
   if (0 == chartOpenResult1) {
      Print(GetLastError());
   }
   
   long chartOpenResult2 = ChartOpen("EURUSD", PERIOD_M5);
   if (0 == chartOpenResult2) {
      Print(GetLastError());
   }

   long chartOpenResult3 = ChartOpen("AUDUSD", PERIOD_M5);
   if (0 == chartOpenResult3) {
      Print(GetLastError());
   }
   
   long chartOpenResult4 = ChartOpen("USDCAD", PERIOD_M5);
   if (0 == chartOpenResult4) {
      Print(GetLastError());
   }
   
   long chartOpenResult5 = ChartOpen("GBPUSD", PERIOD_M5);
   if (0 == chartOpenResult5) {
      Print(GetLastError());
   }
 
Частично разобрался с проблемой методом научного тыка. Оказывается, если в терминале закрыты все вкладки с графиками, вызов ChartOpen() будет генерировать ошибку 4024. Похоже, что для (вроде) корректной работы функции терминалу требуется одна любая постоянно открытая (может быть свернутой) вкладка с графиком.
 
multiwins #:
Частично разобрался с проблемой методом научного тыка. Оказывается, если в терминале закрыты все вкладки с графиками, вызов ChartOpen() будет генерировать ошибку 4024. Похоже, что для (вроде) корректной работы функции терминалу требуется одна любая постоянно открытая (может быть свернутой) вкладка с графиком.

А как же тогда запущен код? Ведь скрипту/индикатору/советнику нужен хотя бы один график. Речь о сервисе что ли?

 
Ihor Herasko #:

А как же тогда запущен код? Ведь скрипту/индикатору/советнику нужен хотя бы один график. Речь о сервисе что ли?


Хороший вопрос :) Перед вызовом ChartOpen() скрипт закрывает все открытые графики в терминале
 
multiwins #:


Хороший вопрос :) Перед вызовом ChartOpen() скрипт закрывает все открытые графики в терминале

тогда вестимо пропущен IsStopped()

скрипт уже "скорее мёртв" - чарт закрыт, часть функций не работает, просто процесс ещё принудительно не остановлен

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