Есть ещё одна догадка.
При загрузке шаблона сначала принудительно удаляются все графические объекты прежнего графика и только потом запускается функция "deinit()" выгружаемых программ.
Чудно!
Оказывается, что смена профиля тоже происходит по первой причине (REASON_REMOVE).
Это совсем странно...
Смена профиля, это же закрытие графика!!!
Всё чуднее и чуднее...
Кто-нибудь в курсе, что эта функция:
int UninitializeReason() // Возвращает код причины завершения экспертов, пользовательских индикаторов и скриптов. Возвращаемые значения могут быть одним из кодов деинициализации. // Эту функцию можно также вызывать в функции init() для анализа причин деинициализации предыдущего запуска.
возвращает причину деинициализации последней деинициализируемой программы графика, а не причину деинициализации программы, из которой она вызвана?
Может, что не так понял?
0 Скрипт самостоятельно завершил свою работу
REASON_REMOVE 1 Программа удалена с графика
REASON_RECOMPILE 2 Программа перекомпилирована
REASON_CHARTCHANGE 3 Символ или период графика был изменен
REASON_CHARTCLOSE 4 График закрыт
REASON_PARAMETERS 5 Входные параметры были изменены пользователем
REASON_ACCOUNT 6 Активирован другой счет
Обнаружил, что смена шаблона происходит с "REASON_REMOVE".
Однако простое удаление и смена шаблона производят разные действия.
Удаление программы не приводит к удалению графических объектов, если, конечно это не предусмотрено самой программой.
Смена шаблона приводит к полному удалению всех графических объектов окна.
==================
Есть предложение добавить ещё одну причину деинициализации. Смена шаблона - "REASON_NEW_PATTERN" или "REASON_PATTERN".
Сегодня обнаружил, что при смене шаблона UninitializeReason() теперь возвращает REASON_CHARTCLOSE!!!
Метаквоты изменили и не сообщили. У меня программа перестала работать правильно. Замучился искать причину...
Сегодня обнаружил, что при смене шаблона UninitializeReason() теперь возвращает REASON_CHARTCLOSE!!!
Метаквоты изменили и не сообщили. У меня программа перестала работать правильно. Замучился искать причину...
Мы в этом месте ничего не трогали. А если бы изменили, то сообщили бы (лишняя строчка в "что нового" была бы).
Мы в этом месте ничего не трогали. А если бы изменили, то сообщили бы (лишняя строчка в "что нового" была бы).
Может изменили так, что не заметили этого. Меняли одно - другое изменилось.
Первый пост темы. Проверял же! Можно попробывать старый билд найти. Соответствующий дате поста.
Хотя, возможно словил причину деинициализации не той программы. Писал об этом выше. Очень всё запутано...
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
0 Скрипт самостоятельно завершил свою работу
REASON_REMOVE 1 Программа удалена с графика
REASON_RECOMPILE 2 Программа перекомпилирована
REASON_CHARTCHANGE 3 Символ или период графика был изменен
REASON_CHARTCLOSE 4 График закрыт
REASON_PARAMETERS 5 Входные параметры были изменены пользователем
REASON_ACCOUNT 6 Активирован другой счет
Обнаружил, что смена шаблона происходит с "REASON_REMOVE".
Однако простое удаление и смена шаблона производят разные действия.
Удаление программы не приводит к удалению графических объектов, если, конечно это не предусмотрено самой программой.
Смена шаблона приводит к полному удалению всех графических объектов окна.
==================
Есть предложение добавить ещё одну причину деинициализации. Смена шаблона - "REASON_NEW_PATTERN" или "REASON_PATTERN".