- Проблема с удалением объектов при закрытии терминала.
- Последовательность выполнение Init() и DeInit()
- Глобальные переменные и непредвиденное выключение электричества :)
Наблюдаю такую ситуацию: в терминале работает пользовательский индикатор, при закрытии терминала и его последующем открытии (скажем, через несколько часов) индикатор корректно возобновляет работу, при этом рисует все объекты, которые были до закрытия, причем чтобы нарисовать и обновить эти объекты с учетом прошедшего времени, необходимо обращаться к переменным, созданным во время предыдущего запуска индикатора. Никаких внешних переменных у индикатора нет, никакой записи в файл тоже нет. То есть получается, что динамические переменные индикатора где-то сохраняются на время закрытия терминала. Я считал, что при закрытии терминала все переменные индикатора и соответствующая память уничтожаются. Если знаете, как это работает, подскажите. В документации вроде ничего на эту тему нет. Спасибо.
какой именно индикатор ?
и в чем собственно сама проблема ?
о каких динамических переменных речь ?
--
какой именно индикатор ?
и в чем собственно сама проблема ?
о каких динамических переменных речь ?
--
Графические объекты индикатора рисуются и обновляются на каждом новом баре. "Динамические переменные" - глобальные переменные (но не глобальные переменные терминала). Индикатор ведет себя так, как будто он помнит значения глобальных переменных с прошлого запуска терминала. Вопрос - может ли так быть?
Наблюдаю такую ситуацию: в терминале работает пользовательский индикатор, при закрытии терминала и его последующем открытии (скажем, через несколько часов) индикатор корректно возобновляет работу, при этом рисует все объекты, которые были до закрытия, причем чтобы нарисовать и обновить эти объекты с учетом прошедшего времени, необходимо обращаться к переменным, созданным во время предыдущего запуска индикатора. Никаких внешних переменных у индикатора нет, никакой записи в файл тоже нет. То есть получается, что динамические переменные индикатора где-то сохраняются на время закрытия терминала. Я считал, что при закрытии терминала все переменные индикатора и соответствующая память уничтожаются. Если знаете, как это работает, подскажите. В документации вроде ничего на эту тему нет. Спасибо.
Можно предположить, что в момент запуска индикатор обсчитывает доступные бары, формирует "динамические переменные", на основе которых строятся графические объекты, и картина с определенным временным сдвигом повторяет картинку в момент выключения. История-то не изменилась.
Спасибо, но нет, я эту возможность, естественно, учёл. Параметры, о которых я упоминаю, не связаны с историей цены, например это может быть время предыдущего запуска индикатора. А может быть, например так - при закрытии терминала индикатор не успевает деинициализироваться, и все эти данные где-то хранятся, а потом при загрузке используются?
Я понимаю, что сложно отвечать, не видя кода, но мне может понадобиться время, чтобы переработать индикатор в простой пример, демонстрирующий проблему. Думаю, что в целом я описал ситуацию.
Если разберусь, напишу здесь.
либо объекты не удаляются либо глобальные переменные всё-таки есть, либо утверждение о неперерисовке индикатора может оспорить способ переключения таймфрейма на М1
глобальных переменных терминала точно нет. Дело не в том, удаляются объекты или нет, они при новой загрузке обновляются, с учетом переменных от прошлого запуска. Причем корректно обновляются) как будто терминал не выключался ))) Но он точно выключался) во всяком случае, насколько я владею Task Manager.
глобальных переменных терминала точно нет. Дело не в том, удаляются объекты или нет, они при новой загрузке обновляются, с учетом переменных от прошлого запуска. Причем корректно обновляются) как будто терминал не выключался ))) Но он точно выключался) во всяком случае, насколько я владею Task Manager.
Глобальные переменные
В клиентском терминале существует возможность запускать одновременно несколько советников.
Иногда бывает необходимо, чтобы они обменивались информацией между собой.
Для оперативной передачи небольших объемов информации между советниками,
а также для организации бесконфликтной работы одновременно нескольких экспертов
в терминале существуют глобальные переменные.
В отличие от переменных, объявленных в исходном тексте эксперта на глобальном уровне
и доступных только в пределах соответствующего модуля, глобальные переменные существуют
независимо от советников. Их значения сохраняются между запусками терминала,
в отличие от переменных, объявленных на глобальном уровне (значения которых
устанавливаются при каждой загрузке эксперта и теряются при завершении работы).
Глобальные переменные существуют в течение четырех недель после последнего обращения к ним
из экспертов либо после изменения вручную.
Никакие другие, насколько я помню, при выключенном терминале не сохраняются.
Откройте папочку Файл ->Открыть каталог данных->profiles->default
Сколько было открыто графиков на момент закрытия метатрейдера, столько файлов charXX там и найдете. В каждом файле указаны все индикаторы и все объекты на графике на момент закрытия.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования