Правда не знаю как сейчас в mql4, а mql5 имеет какую-то последовательность выполнения OnInit и OnDeinit и не всегда OnDeinit раньше чем OnInit.
Кстати, да, забыл об этой фиче МТ. С полгода назад была тема, в которой всех удивили тем, что последовательность выполнения OnInit и OnDeinit не гарантирована. Тогда действительно вопрос этой темы не имеет смысла. Ведь предыдущая копия может еще не выгрузиться, а, значит, и данных никаких не будет.
Поэтому решение проблемы будет в другой плоскости: написание правильного алгоритма слежения за линиями, удаляемыми пользователем. Эти линии нужно запомнить и при следующем запуске не отображать их.
Кстати, да, забыл об этой фиче МТ. С полгода назад была тема, в которой всех удивили тем, что последовательность выполнения OnInit и OnDeinit не гарантирована. Тогда действительно вопрос этой темы не имеет смысла. Ведь предыдущая копия может еще не выгрузиться, а, значит, и данных никаких не будет.
Поэтому решение проблемы будет в другой плоскости: написание правильного алгоритма слежения за линиями, удаляемыми пользователем. Эти линии нужно запомнить и при следующем запуске не отображать их.
Если я правильно помню, то там говорилось только о МТ5, но нельзя исключать вариант что и МТ4 будет так-же исправлен. Или уже всё так-же...
Кстати, да, забыл об этой фиче МТ. С полгода назад была тема, в которой всех удивили тем, что последовательность выполнения OnInit и OnDeinit не гарантирована. Тогда действительно вопрос этой темы не имеет смысла. Ведь предыдущая копия может еще не выгрузиться, а, значит, и данных никаких не будет.
Ну это решается одной строкой, так что не проблема.
Кажется дошло до меня, что нужно делать. Всю логику оставить прежней, а вот объект как раз надо создавать только в deinit, если причина выгрузки подходящая.
Тогда и причину выгрузки всегда можно узнать, и при создании шаблон объект не будет сохранен, и путаницы с глобальными переменными не будет, даже если 10 одинаковых графиков будет создано!
Если в MT изменить таймфрейм или имя символа чарта, то все индикаторы на чарте выгрузятся с чарта и загрузятся на него снова. При этом, в отличие от MT4, в MT5 последовательность выгрузиться/загрузиться не определена из-за особенности внутренней архитектуры. Данное обстоятельство иногда вызывает не сразу очевидные проблемы, связанные с тем, что...
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Правда не знаю как сейчас в mql4, а mql5 имеет какую-то последовательность выполнения OnInit и OnDeinit и не всегда OnDeinit раньше чем OnInit.
Кстати, да, забыл об этой фиче МТ. С полгода назад была тема, в которой всех удивили тем, что последовательность выполнения OnInit и OnDeinit не гарантирована. Тогда действительно вопрос этой темы не имеет смысла. Ведь предыдущая копия может еще не выгрузиться, а, значит, и данных никаких не будет.
Поэтому решение проблемы будет в другой плоскости: написание правильного алгоритма слежения за линиями, удаляемыми пользователем. Эти линии нужно запомнить и при следующем запуске не отображать их.
Кстати, да, забыл об этой фиче МТ. С полгода назад была тема, в которой всех удивили тем, что последовательность выполнения OnInit и OnDeinit не гарантирована. Тогда действительно вопрос этой темы не имеет смысла. Ведь предыдущая копия может еще не выгрузиться, а, значит, и данных никаких не будет.
Поэтому решение проблемы будет в другой плоскости: написание правильного алгоритма слежения за линиями, удаляемыми пользователем. Эти линии нужно запомнить и при следующем запуске не отображать их.
Если я правильно помню, то там говорилось только о МТ5, но нельзя исключать вариант что и МТ4 будет так-же исправлен. Или уже всё так-же...
Кстати, да, забыл об этой фиче МТ. С полгода назад была тема, в которой всех удивили тем, что последовательность выполнения OnInit и OnDeinit не гарантирована. Тогда действительно вопрос этой темы не имеет смысла. Ведь предыдущая копия может еще не выгрузиться, а, значит, и данных никаких не будет.
Ну это решается одной строкой, так что не проблема.
Кажется дошло до меня, что нужно делать. Всю логику оставить прежней, а вот объект как раз надо создавать только в deinit, если причина выгрузки подходящая.
Тогда и причину выгрузки всегда можно узнать, и при создании шаблон объект не будет сохранен, и путаницы с глобальными переменными не будет, даже если 10 одинаковых графиков будет создано!
Спасибо всем за участие!!!
Ну это решается одной строкой, так что не проблема.
Уже бы дописали эту строку, чтобы никто здесь в Поле Чудес не играл ))
Уже бы дописали эту строку, чтобы никто здесь в Поле Чудес не играл ))
https://www.mql5.com/ru/code/18138
https://www.mql5.com/ru/code/18138
Насчитал 274 строки...