
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Попробуйте обновить терминал до версии 1065. В предыдущих версиях была ошибка переинициализации как раз при смене таймфрема. Может поможет :)
https://www.mql5.com/ru/forum/187690
У меня стоит терминал 5.00 b1571
можно сохранять значения переменных куда нибудь, в глобалы например. после перечативания прочитать и востановить переменные.
А потом завершит свою работу Deinit и всё испортит. Пропадает смысл в штатных Init и Deinit ели делать свои кастомные иниты и деиниты.
Тоже сталкивался с этой проблемой. (
А потом завершит свою работу Deinit и всё испортит. Пропадает смысл в штатных Init и Deinit ели делать свои кастомные иниты и деиниты.
Тоже сталкивался с этой проблемой. (
Согласен полностью (Пропадает смысл в штатных Init и Deinit)
Может быть попробовать графическим объектам присваивать в качестве составляющей префикса их имени период ТФ,
а потом что-то вроде такого применить:
Да пришлось примерно так и делать, но это частичное решение.
С переменными так же можно через ресурс или файлы, но это отдельные дополнительные ресурсы, которых можно было избежать исправив МТ5
Захламление кода лишними побочными функциями проверками и т.п. (ЧЕРЕЗ Ж....)
Всегда думал (оказывается напрасно), что при смене ТФ сначала deinit на старом ТФ, а потом Init на новом. Это же логичный ход событий, на эту логику и полагался делая советники и индикаторы. А тут оказывается такая ерунда с нарушением последовательности событий...
При работе иногда замечал, что что-то не то с графиками и граф. объектами и приходилось несколько раз переключать ТФ, чтобы все нормально отображалось.
Это теперь придется в кодах разбираться, где в деинитах что-то меняется, а потом в инитах тоже меняется обратно... а оказывается последовательность - наоборот!!! Жесть а не логика. Кто такое придумал?
Первое что вспоминается - у меня в деинит происходит запоминание в глоб. переменные предыдущего состояния (нажатых/отжатых кнопкок) а потом в инитах происходит установка кнопок по сохраненным значениям. И вот именно кнопки у меня не всегда правильно переустанавливаются. Это первое, что вспомнил, может что-то еще найду... завтра буду копаться.
Спасибо разработчикам, подкинули работы...
В Deinit прописать запись всех данных в глобалки. При этом выставить одну глобалку, как семафор - через GlobalVariableSetOnCondition.
В Init прописать, что если семафор в состоянии "данные сброшены" - считываем и работаем, поставив семафор в состояние "все прочли".
Если же семафор в состоянии "нихрена не понятно", то просто ожидаем семафора (либо через зацикленный Sleep, либо через OnTimer).
Ну и, конечно, если семафор отсутствует напрочь, то это значит, что мы первый раз запустились и все считаем, попутно создав семафор не будущие смены ТФ.
Что сложного в такой реализации? Один раз библиотечкой прописать и все.
В Deinit прописать запись всех данных в глобалки. При этом выставить одну глобалку, как семафор - через GlobalVariableSetOnCondition.
В Init прописать, что если семафор в состоянии "данные сброшены" - считываем и работаем, поставив семафор в состояние "все прочли".
Если же семафор в состоянии "нихрена не понятно", то просто ожидаем семафора (либо через зацикленный Sleep, либо через OnTimer).
Что сложного в такой реализации? Один раз библиотечкой прописать и все.
Я вообще не знал, что такая проблема есть. Надеялся на последовательность деинит-инит И никак не наоборот. Когда знаешь проблемы - можно их решать. Но мне кажется это должно быть решено на уровне терминальной логики, а не костылей которые нужно в каждую программу теперь подставлять...
Это не костыль, а простое решение. Вопрос лишь в том, кто его реализует - разработчики или пользователи. И там и там надо один раз потратить время и написать. Если пользователям под силу - написали и не паримся над вопросом больше. Сам только прочел ветку и тут же в голову пришло решение. Что мусолить то? Можно долго что-то требовать, а можно самому быстро написать.