Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
при смене тф.
если в индикаторах остается муср в буферах со старого тф, может и на таймеры влияет. ну это так, в качестве пятничного бреда.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 4 build 1065
Sergey Klimov, 2017.04.14 16:34
При переключении между счетами, в индикаторе не изменяется переменная _Digits.
Это красивее
Это красивее
Это для тех кто говорит о правильной последовательности в МТ4.
Смотрите и понимайте что не всё так красиво в МТ4.
Очередность однозначная же.
Ну где же она однозначная.
Поюзайте этот примитивный пример. И поймете "однозначность" при переключения ТФ.
В этом примере в OnInit создается объект и координатами текущего времени и цены. В OnCalculate этот объек движется вместе с ценой.
В OnDeinit он просто ( что логично) удаляется.
При переключении ТФ выясняется, что объект то появляется, то и исчезает.
Почему так происходит?
Потому, что иногда OnDeinit старого ТФ удаляет то что уже создано в OnInit нового ТФ. Это что не баг! Что должен должен думать программист, который создал этот пример и не читал данной ветки?
Ну где же она однозначная.
Про таймер шла речь там.
Какая разница. Можете в Юните вместо создания объекта поставить EventSetTimer, а в Деюните вместо удаления объекта поставить EventKillTimer. И неопределенности от этого не убавиться, т.к. установленный таймер будет убиваться Деюнитом старого ТФ, причем иногда, а иногда нет. Причем будет еще хуще, т.к. объект хоть видно, а таймер не видно - работает он или не работает.
Может уже придумали, не читал все. Если индикатор создает панель, можно использовать глобальную переменную терминала, в ините увеличивать ее значение на 1 и использовать как добавку к именам графических объектов.
У меня другая задача была - сохранить параметры панели, для этого создавал глобальные переменные терминала в деините. Решение проблемы простое - создавать глобальные переменные терминала в ините и обновлять каждую по мере изменения параметров в графической панели. В деините удалять переменные, только если причиной деинициализации является удаление индикатора.
Если индикатор создает панель, можно использовать глобальную переменную терминала, в ините увеличивать ее значение на 1 и использовать как добавку к именам графических объектов.
Что должен должен думать программист, который создал этот пример и не читал данной ветки?
Полностью согласен. Нечитавшие не узнают об этой особенности и будут убивать свое время пытаясь разобраться. Причем это будут сотни людей... особенно жаль начинающих.
Всего-то и надо - один раз устранить баг и все.
Какая разница. Можете в Юните вместо создания объекта поставить EventSetTimer, а в Деюните вместо удаления объекта поставить EventKillTimer. И неопределенности от этого не убавиться, т.к. установленный таймер будет убиваться Деюнитом старого ТФ, причем иногда, а иногда нет. Причем будет еще хуще, т.к. объект хоть видно, а таймер не видно - работает он или не работает.
Костыли это все. Надо просто в терминале сделать правильный порядок и все. Сначала деинит претыдущего экземпляра, и только потом инит нового.
Полностью согласен. Нечитавшие не узнают об этой особенности и будут убивать свое время пытаясь разобраться. Причем это будут сотни людей... особенно жаль начинающих.
Всего-то и надо - один раз устранить баг и все.
О том и речь!
Я лично в шоколаде, т.к. чувствую свое преимущество перед большинством, т.к. знаю как со всем этим справляться не только на словах, но и на деле. Я уже наделал заплаток и наприкручивал костылей к своим программам.
Мне не понятно только почему разработчики упорно не считают данную "особенность" багом.
Например:
Индикаторы нужно использовать по прямому назначению.
Иными словами, очерёдность выполнения OnInit и OnDeinit индикатора при смене символа-периода графика не должна никого волновать
Но ведь в приведенном мной выше примере с анимированной гифкой явный баг для программера не читавшего данную тему! Что там сделано не по назначению?