Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Теперь - ВНИМАНИЕ! Перелогиниваемся на другой счет. Инита - НЕТ! С каждым новым тиком или по команде Обновить счетчик увеличивается, продолжая наращивать цифры насчитанные на прошлом счете.
Вполне логично. Для индикатора на графике ничего не изменилось - таймфрейм, символ остались теже.
Поэкспериментировал. Еще при смене счета IndicatorCounted() не сбрасывается, а счета могут быть в разных ДЦ, т.е. индиктор будет отрисован по данным другого ДЦ. С одной стороны баг, а с другой - всё в предах концепции - у каждого ДЦ свой терминал, что не подразумевает переключений по счетам разных ДЦ из одного терминала. Это так сказать последствия использования недокументированных возможностей. Если переключаться только между счетами одного ДЦ, то все нормально, таймфрейм и символ теже, параметры без изменений - никаким образом не нужна инициализация.
Короче, надо терминал перезапускать после смены счета.
Только зачем все это? Неужели кто-то будет прыгать в одном терминале со счета на счет? Если несколько счетов у разных ДЦ, то и столько же терминалов должно быть установлено.
Переинициализация на смене таймфрейма - это так и задумывалось (программистам в ините надо статические переменные самостоятельно инициализировать - это так же естественно, как мыть руки перед едой. не все моют, что иногда приводит к дизентерии).
Я не совсем понял проблему с переинициализацией эксперта на смене счета. Все работает правильно - на смене счета происходит корректная переинициализация эксперта. Вот проверочный код:
Вот результат:
Я склоняюсь к мысли, что на нашем форуме все чаще люди игнорируют тесты и доказательства.
Вкладка "Эксперты"
Индикатор приложен. Нет сообщений об init и deinit
А кто говорит про индикаторы? Переинициализируются эксперты, для которых именно это и важно. Тут все верно работает.
А индикаторам нужно работать с IndicatorCounted(), чтобы понять - произошла смена расчетных данных или нет. Вот проверочный код:
Вот результаты:При смене торгового счета индикатор отлично понимает невалидность старых расчетов через IndicatorCounted=0, что я и продемонстрировал в примере. Например, при переходе на другой сервер (с Альпари на Метаквотс) счетчик сначала занулился, а на следующем тике показал нормальное значение.
То есть, и с индикаторами все отлично и правильно работает. IndicatorCounted() сбрасывается при смене торгового сервера (но при переключениях в пределах одного сервера не происходит смена History Center и счетчик не сбрасывается!):
Поэкспериментировал. Еще при смене счета IndicatorCounted() не сбрасывается, а счета могут быть в разных ДЦ, т.е. индиктор будет отрисован по данным другого ДЦ.
to Renat
Вопрос темы был про модификатор static примененный к переменным глобальной видимости (пока только к ним, к глобальным))).
Если бы этот модификатор static работал, то находящиеся под ним переменные сохранялись бы во всех случаях кроме перезагрузки индикатора/эксперта.
Но он не работает и не распознается как ошибка компиляции.
Пустая формальность?
to Renat
Вопрос темы был про модификатор static примененный к переменным глобальной видимости (пока только к ним, к глобальным))).
Я не понял вопроса и поэтому не отвечаю на него ибо стараюсь не домысливать слабо подготовленные вопросы.
Сформулируйте кратко, но понятно с куском кода свой вопрос, пожалуйста.
IndicatorCounted() сбрасывается при смене торгового сервера (но при переключениях в пределах одного сервера не происходит смена History Center и счетчик не сбрасывается!):
Тогда все нормально.
to Renat
Вот тестовый индикатор.
Задача: допустим мы собираем все парaметры с которыми применялся индиктор в один массив с целью дальнейшего анализа.
т.е. пользователь изменил параметр через "свойства", а мы запомнили.
Читаем даташит и обнаруживаем там модификатор static.
Ага, сказали мы, и написали следующе
Однако, массив и переменная под модификатором static нагло инициализируются при каждом изменении свойств.
Смотрим логи была ли перезагрузка? -не было.
Значит модификатор static в отношении переменных глобальной видимости не работает.
Ага, сказали мы, наверное в функции будет работать!!!
и дописали функцию)))
Ессно и в функциях обнуляется без перезагрузки.
P.S.
в МТ-4 что либо изменять кроме документации необходимости нет и нежелательно, т.к. к этому привыкли.
Однако, этот же баг в понимании видимости и статичности при переходе к МТ-5 может создать проблемы.