Порядок действий терминала при его закрытии

 

При закрытии терминала с запущенными в окнах экспертами, эксперты вновь загружаются во время следующей загрузки MT. Это нормально, так было и в MT4. В МТ5 добавили возможность закрытия собственного графика. Теперь, если в DeInit написать ChartClose, то таким образом можно закрыть текущий график при выгрузке эксперта. В некоторых случаях к этому методу я и прибегаю. Но вот проблема: после закрытия терминала и обработке DeInit эксперта, в котором прописано закрытие графика, последующая загрузка терминала приводит к запуску эксперта.

Описанное поведение, видимо,  является результатом следующей последовательности действий терминала при выключении:

1. Сохранение конфигурации окон (с экспертами, индикаторами) 

2. Вызов DeInit экспертов и индикаторов.

В этом случае действительно действия экспертов в DeInit никак не повлияют на вид окошек при следующей загрузке.

Вопрос: такой порядок действий соответствует задуманному или все же является мелкой недоработкой? В моем случае вроде бы порядок должен быть обратным, но не факт, что и это является правильным. 

Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Программы MQL5 / Выполнение программ - Документация по MQL5
 
Думаю, что последовательность от стартшего к младшему как вы и написали.

1. Сохраняем конфигурацию - 2. отсылаем всем окнам команду закрытия - 3. затем в OnDeinit

А вы хотите в случае посыла ChartClose из OnDeinit - чтоб окно и эксперт при перезапуске терминала не открывались?

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

 
sergeev:
 

А вы хотите в случае посыла ChartClose из OnDeinit - чтоб окно и эксперт при перезапуске терминала не открывались?

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

К сожалению, нет причинах деинициализации факта закрытия терминала. Все что угодно, но не это.

 

Еще один кандидат - ExpertRemove. Правда в Deinit его вызывать бессмысленно.

Если порядок действий остается таким как мы думаем, то все это танцы с бубном.

Без совета разработчиков дела не будет.

 
Scriptong:
...

Описанное поведение, видимо,  является результатом следующей последовательности действий терминала при выключении:

1. Сохранение конфигурации окон (с экспертами, индикаторами) 

2. Вызов DeInit экспертов и индикаторов.

В этом случае действительно действия экспертов в DeInit никак не повлияют на вид окошек при следующей загрузке.

Вопрос: такой порядок действий соответствует задуманному или все же является мелкой недоработкой? В моем случае вроде бы порядок должен быть обратным, но не факт, что и это является правильным. 

Такой порядок действий соответствует задуманному.
Причина обращения: