То исправление, о котором идёт речь, откатили уже 5 февраля 2014 года. То есть, оно прожило всего 2 недели.
Тогда откатили по той самой причине, чтобы осталось поведение индикаторов 509 билда (а в 509 билде инициализация-деинициализация работали именно так). Вот посмотрите ещё одну ссылку из той же темы
Также добавлю, что в пятёрке инициализация-деинициализация индикаторов производится точно так же.
Но это не из-за оглядки на 509 билд, а из-за архитектуры - индикатор удалялся из одного исторического кеша, потом добавлялся в другой исторический кеш (с другим символом-периодом)
То исправление, о котором идёт речь, откатили уже 5 февраля 2014 года. То есть, оно прожило всего 2 недели.
Тогда откатили по той самой причине, чтобы осталось поведение индикаторов 509 билда (а в 509 билде инициализация-деинициализация работали именно так). Вот посмотрите ещё одну ссылку из той же темы
При деинициализации индикатора по причине закрытия графика REASON_CHARTCLOSE или его удаления REASON_REMOVE обнуляйте соответствующую глобальную переменную
При деинициализации индикатора по причине закрытия графика REASON_CHARTCLOSE или его удаления REASON_REMOVE обнуляйте соответствующую глобальную переменную
AlexeyVik: На мой взгляд, это всё частные случаи которые легко обрабатываются. Я вот не понимаю почему вы, вместо того чтобы решать такие пустяковые вопросы самостоятельно, требуете от разработчиков каких-то изменений которые могут затронуть интересы других пользователей? Одному надо массив сохранить, а другому обнулить... и кому должны угодить разработчики??? Может голосование провести? И не просто голосование, а с перечнем индикаторов в которых это надо и в которых это не надо???
Вы не правы. Если глобальные переменные не обнуляются автаматически, это дает более широкое поле для маневра. Кому надо - тот сам их обнулит в OnInit.
При деинициализации индикатора по причине закрытия графика REASON_CHARTCLOSE или его удаления REASON_REMOVE обнуляйте соответствующую глобальную переменную
В этот подходе возникают заморочки с тем, что в имени переменной нужно хранить еще торговый символ и таймфрейм чарта. А если индикатор работает на двух чартах с одинаковым торговым символом и таймфреймом, но разными параметрами, тогда ой.
Я находил такой выход. Хранил глобальные переменные на чарте в виде
текстовых графических объектов. С большим смещение за видимую область
экрана для невидимости. И написал пару функций для загрузки их с чарта и сохранения на
чарт.
В этот подходе возникают заморочки с тем, что в имени переменной нужно хранить еще торговый символ и таймфрейм чарта. А если индикатор работает на двух чартах с одинаковым торговым символом и таймфреймом, но разными параметрами, тогда ой.
Можно привязываться к ChartID. Он для каждого графика - свой
У меня нет проблем с GV и с GV терминала, т.к. давно взял за правило иметь открытыми все графики от М1 до старшего, необходимого для расчётов. Потому нет надобности менять ТФ!
Спасибо.
То исправление, о котором идёт речь, откатили уже 5 февраля 2014 года. То есть, оно прожило всего 2 недели.
Тогда откатили по той самой причине, чтобы осталось поведение индикаторов 509 билда (а в 509 билде инициализация-деинициализация работали именно так). Вот посмотрите ещё одну ссылку из той же темы
https://www.mql5.com/ru/forum/148850/page58#901460 В результате этого запроса и был сделан откат
И это поведение не полгода, а уже почти 2 года
Также добавлю, что в пятёрке инициализация-деинициализация индикаторов производится точно так же.
Но это не из-за оглядки на 509 билд, а из-за архитектуры - индикатор удалялся из одного исторического кеша, потом добавлялся в другой исторический кеш (с другим символом-периодом)
Спасибо.
То исправление, о котором идёт речь, откатили уже 5 февраля 2014 года. То есть, оно прожило всего 2 недели.
Тогда откатили по той самой причине, чтобы осталось поведение индикаторов 509 билда (а в 509 билде инициализация-деинициализация работали именно так). Вот посмотрите ещё одну ссылку из той же темы
https://www.mql5.com/ru/forum/148850/page58#901460 В результате этого запроса и был сделан откат
И это поведение не полгода, а уже почти 2 года
Да, то есть кто-то накуралесил писав свой индикатор в 509ом и вы дали возможность в этом случае поддерживать этот "bug"
Но согласитесь, с самого появления MQL4, такого поведения не было прдусмотренно и не описано в справке,
что даже противоречит опсанию поведения переменных в справке.
Проблема в том,то что вы этим ти использования переменных и отступаете от описания в документации
На данный момент не существует никакой возможности сохранить состояние переменной в индикаторах при смене периода графика и в других подобных случаях.
Возможность существует. Используйте временную глобальную переменную терминала https://docs.mql4.com/ru/globals/globalvariabletemp
При деинициализации индикатора по причине закрытия графика REASON_CHARTCLOSE или его удаления REASON_REMOVE обнуляйте соответствующую глобальную переменную
Возможность существует. Используйте временную глобальную переменную терминала https://docs.mql4.com/ru/globals/globalvariabletemp
При деинициализации индикатора по причине закрытия графика REASON_CHARTCLOSE или его удаления REASON_REMOVE обнуляйте соответствующую глобальную переменную
Да, конечно, это не проблема,
но у меня массив, который бы надо сохранить.
Сохранять в файл, тоже костыль
Проблема в том,то что вы этим ти использования переменных и отступаете от описания в документации
В справке явно написано
Загрузка и выгрузка индикаторов
Индикаторы загружаются в следующих случаях:
Индикаторы выгружаются в следующих случаях:
На мой взгляд, это всё частные случаи которые легко обрабатываются. Я вот не понимаю почему вы, вместо того чтобы решать такие пустяковые вопросы самостоятельно, требуете от разработчиков каких-то изменений которые могут затронуть интересы других пользователей? Одному надо массив сохранить, а другому обнулить... и кому должны угодить разработчики??? Может голосование провести? И не просто голосование, а с перечнем индикаторов в которых это надо и в которых это не надо???
Возможность существует. Используйте временную глобальную переменную терминала https://docs.mql4.com/ru/globals/globalvariabletemp
При деинициализации индикатора по причине закрытия графика REASON_CHARTCLOSE или его удаления REASON_REMOVE обнуляйте соответствующую глобальную переменную
В этот подходе возникают заморочки с тем, что в имени переменной нужно хранить еще торговый символ и таймфрейм чарта. А если индикатор работает на двух чартах с одинаковым торговым символом и таймфреймом, но разными параметрами, тогда ой.
Да, конечно, это не проблема,
но у меня массив, который бы надо сохранить.
Сохранять в файл, тоже костыль
В этот подходе возникают заморочки с тем, что в имени переменной нужно хранить еще торговый символ и таймфрейм чарта. А если индикатор работает на двух чартах с одинаковым торговым символом и таймфреймом, но разными параметрами, тогда ой.