Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Начни зарабатывать с помощью Маркета. Опубликуй продукт!
Ihor Herasko
9060
Ihor Herasko 2011.02.24 14:14 

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

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

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

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

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

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

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

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

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

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

Ihor Herasko
9060
Ihor Herasko 2011.02.24 14:27  
sergeev:
 

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

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

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

o_o
Модератор
23696
o_o 2011.02.24 17:23  

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

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

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

Anton
1851
Anton 2011.02.24 18:45  
Scriptong:
...

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

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

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

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

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

Такой порядок действий соответствует задуманному.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий