Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ваш брокер не поддерживает мобильные MetaTrader 5? Попроси приобрести их!
ivan
505
ivan 2014.05.30 08:31 
Наблюдаю такую ситуацию: в терминале работает пользовательский индикатор, при закрытии терминала и его последующем открытии (скажем, через несколько часов) индикатор корректно возобновляет работу, при этом рисует все объекты, которые были до закрытия, причем чтобы нарисовать и обновить эти объекты с учетом прошедшего времени, необходимо обращаться к переменным, созданным во время предыдущего запуска индикатора. Никаких внешних переменных у индикатора нет, никакой записи в файл тоже нет. То есть получается, что динамические переменные индикатора где-то сохраняются на время закрытия терминала. Я считал, что при закрытии терминала все переменные индикатора и соответствующая память уничтожаются. Если знаете, как это работает, подскажите. В документации вроде ничего на эту тему нет. Спасибо.  
Yuriy Zaytsev
11664
Yuriy Zaytsev 2014.05.30 09:17  
qomment:
Наблюдаю такую ситуацию: в терминале работает пользовательский индикатор, при закрытии терминала и его последующем открытии (скажем, через несколько часов) индикатор корректно возобновляет работу, при этом рисует все объекты, которые были до закрытия, причем чтобы нарисовать и обновить эти объекты с учетом прошедшего времени, необходимо обращаться к переменным, созданным во время предыдущего запуска индикатора. Никаких внешних переменных у индикатора нет, никакой записи в файл тоже нет. То есть получается, что динамические переменные индикатора где-то сохраняются на время закрытия терминала. Я считал, что при закрытии терминала все переменные индикатора и соответствующая память уничтожаются. Если знаете, как это работает, подскажите. В документации вроде ничего на эту тему нет. Спасибо.  

какой именно индикатор ?

и в чем собственно сама проблема ?

о каких динамических переменных речь ?

--

ivan
505
ivan 2014.05.30 11:00  
YuraZ:

какой именно индикатор ?

и в чем собственно сама проблема ?

о каких динамических переменных речь ?

--


Графические объекты индикатора рисуются и обновляются на каждом новом баре. "Динамические переменные" - глобальные переменные (но не глобальные переменные терминала). Индикатор ведет себя так, как будто он помнит значения глобальных переменных с прошлого запуска терминала. Вопрос - может ли так быть?  

Виктор
Модератор
6560
Виктор 2014.05.30 11:09  
Можно предположить, что в момент запуска индикатор обсчитывает доступные бары, формирует "динамические переменные", на основе которых строятся графические объекты, и картина с определенным временным сдвигом повторяет картинку в момент выключения. История-то не изменилась. 
Gulnaz Akhtyamova
10630
Gulnaz Akhtyamova 2014.05.30 11:19  
qomment:
Наблюдаю такую ситуацию: в терминале работает пользовательский индикатор, при закрытии терминала и его последующем открытии (скажем, через несколько часов) индикатор корректно возобновляет работу, при этом рисует все объекты, которые были до закрытия, причем чтобы нарисовать и обновить эти объекты с учетом прошедшего времени, необходимо обращаться к переменным, созданным во время предыдущего запуска индикатора. Никаких внешних переменных у индикатора нет, никакой записи в файл тоже нет. То есть получается, что динамические переменные индикатора где-то сохраняются на время закрытия терминала. Я считал, что при закрытии терминала все переменные индикатора и соответствующая память уничтожаются. Если знаете, как это работает, подскажите. В документации вроде ничего на эту тему нет. Спасибо.  
либо объекты не удаляются либо глобальные переменные всё-таки есть, либо утверждение о неперерисовке индикатора может оспорить способ переключения таймфрейма на М1
ivan
505
ivan 2014.05.30 11:20  
granit77:
Можно предположить, что в момент запуска индикатор обсчитывает доступные бары, формирует "динамические переменные", на основе которых строятся графические объекты, и картина с определенным временным сдвигом повторяет картинку в момент выключения. История-то не изменилась. 


Спасибо, но нет, я эту возможность, естественно, учёл. Параметры, о которых я упоминаю, не связаны с историей цены, например это может быть время предыдущего запуска индикатора. А может быть, например так - при закрытии терминала индикатор не успевает деинициализироваться, и все эти данные где-то хранятся, а потом при загрузке используются? 

Я понимаю, что сложно отвечать, не видя кода, но мне может понадобиться время, чтобы переработать индикатор в простой пример, демонстрирующий проблему. Думаю, что в целом я описал ситуацию.  

Если разберусь, напишу здесь.  

ivan
505
ivan 2014.05.30 11:23  
_new-rena:
либо объекты не удаляются либо глобальные переменные всё-таки есть, либо утверждение о неперерисовке индикатора может оспорить способ переключения таймфрейма на М1


глобальных переменных терминала точно нет. Дело не в том, удаляются объекты или нет, они при новой загрузке обновляются, с учетом переменных от прошлого запуска. Причем корректно обновляются) как будто терминал не выключался ))) Но он точно выключался) во всяком случае, насколько я владею Task Manager.

Viktor
228
Viktor 2014.05.30 17:48  
qomment:


глобальных переменных терминала точно нет. Дело не в том, удаляются объекты или нет, они при новой загрузке обновляются, с учетом переменных от прошлого запуска. Причем корректно обновляются) как будто терминал не выключался ))) Но он точно выключался) во всяком случае, насколько я владею Task Manager.

 

 

Глобальные переменные

В клиентском терминале существует возможность запускать одновременно несколько советников. 
Иногда бывает необходимо, чтобы они обменивались информацией между собой. 
Для оперативной передачи небольших объемов информации между советниками, 
а также для организации бесконфликтной работы одновременно нескольких экспертов 
в терминале существуют глобальные переменные. 
В отличие от переменных, объявленных в исходном тексте эксперта на глобальном уровне 
и доступных только в пределах соответствующего модуля, глобальные переменные существуют 
независимо от советников. Их значения сохраняются между запусками терминала, 
в отличие от переменных, объявленных на глобальном уровне (значения которых 
устанавливаются при каждой загрузке эксперта и теряются при завершении работы). 

Глобальные переменные существуют в течение четырех недель после последнего обращения к ним 
из экспертов либо после изменения вручную.


Никакие другие, насколько я помню, при выключенном терминале не сохраняются.
Alexandre
603
Alexandre 2014.05.31 11:17  
Например, могут храниться в объектах на графике. Объекты автоматически не удаляются при выключении терминала.
Alexander
2441
Alexander 2014.05.31 16:31  

Откройте папочку Файл ->Открыть каталог данных->profiles->default

Сколько было открыто графиков на момент закрытия метатрейдера, столько файлов charXX там и найдете. В каждом файле указаны все индикаторы и все объекты на графике на момент закрытия. 

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий