Как узнать, что индикатор загружен из шаблона? - страница 3

 
Alexey Viktorov:

Правда не знаю как сейчас в mql4, а mql5 имеет какую-то последовательность выполнения OnInit и OnDeinit и не всегда OnDeinit раньше чем OnInit.

Кстати, да, забыл об этой фиче МТ. С полгода назад была тема, в которой всех удивили тем, что последовательность выполнения OnInit и OnDeinit не гарантирована. Тогда действительно вопрос этой темы не имеет смысла. Ведь предыдущая копия может еще не выгрузиться, а, значит, и данных никаких не будет.

Поэтому решение проблемы будет в другой плоскости: написание правильного алгоритма слежения за линиями, удаляемыми пользователем. Эти линии нужно запомнить и при следующем запуске не отображать их.

 
Ihor Herasko:

Кстати, да, забыл об этой фиче МТ. С полгода назад была тема, в которой всех удивили тем, что последовательность выполнения OnInit и OnDeinit не гарантирована. Тогда действительно вопрос этой темы не имеет смысла. Ведь предыдущая копия может еще не выгрузиться, а, значит, и данных никаких не будет.

Поэтому решение проблемы будет в другой плоскости: написание правильного алгоритма слежения за линиями, удаляемыми пользователем. Эти линии нужно запомнить и при следующем запуске не отображать их.

Если я правильно помню, то там говорилось только о МТ5, но нельзя исключать вариант что и МТ4 будет так-же исправлен. Или уже всё так-же...

 
Ihor Herasko:

Кстати, да, забыл об этой фиче МТ. С полгода назад была тема, в которой всех удивили тем, что последовательность выполнения OnInit и OnDeinit не гарантирована. Тогда действительно вопрос этой темы не имеет смысла. Ведь предыдущая копия может еще не выгрузиться, а, значит, и данных никаких не будет.

Ну это решается одной строкой, так что не проблема.

 

Кажется дошло до меня, что нужно делать. Всю логику оставить прежней, а вот объект как раз надо создавать только в deinit, если причина выгрузки подходящая.

Тогда и причину выгрузки всегда можно узнать, и при создании шаблон объект не будет сохранен, и путаницы с глобальными переменными не будет, даже если 10 одинаковых графиков будет создано!

Спасибо всем за участие!!!

 
fxsaber:

Ну это решается одной строкой, так что не проблема.


Уже бы дописали эту строку, чтобы никто здесь в Поле Чудес не играл ))

 
Ihor Herasko:

Уже бы дописали эту строку, чтобы никто здесь в Поле Чудес не играл ))

https://www.mql5.com/ru/code/18138

Init_Sync
Init_Sync
  • голосов: 25
  • 2017.04.17
  • fxsaber
  • www.mql5.com
Если в MT изменить таймфрейм или имя символа чарта, то все индикаторы на чарте выгрузятся с чарта и загрузятся на него снова. При этом, в отличие от MT4, в MT5 последовательность выгрузиться/загрузиться не определена из-за особенности внутренней архитектуры. Данное обстоятельство иногда вызывает не сразу очевидные проблемы, связанные с тем, что...
 
fxsaber:

https://www.mql5.com/ru/code/18138


Насчитал 274 строки...