Скачать MetaTrader 5

вопрос по глобальным переменным

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нужна мобильная версия MetaTrader 5? Скачивай и торгуй!
Forex Trader
114257
Forex Trader 2007.11.08 17:11 
Приветствую всех!

Насколько я понимаю, глобальные переменные сохраняются в файле gvariables.dat.
Однако вопрос - когда они там сохраняются? В момент, когда мы вызываем функцию
GlobalVariableSet? Или когда мы закрываем MT4?

Вопрос вот в связи с чем - представим, что мы сохранили число в глобальной
переменной, а тут отключилось питание. Получим ли мы сохраненное значение
из переменной после восстановления питания и загрузки MT4?
Forex Trader
114257
Forex Trader 2007.11.08 18:07  
Изменённые глобальные переменные сохраняются на диск в момент закрытия клиентского терминала. При отключении электричества или при креше сохранения не произойдёт.

Для гарантированного сохранения используйте файлы.
Forex Trader
114257
Forex Trader 2007.11.08 21:41  
Изменённые глобальные переменные сохраняются на диск в момент закрытия клиентского терминала. При отключении электричества или при креше сохранения не произойдёт.

Для гарантированного сохранения используйте файлы.

Спасибо за ответ.

А хорошо бы сделать функцию принудительного сохранения
глобальных переменных на диск....
Forex Trader
114257
Forex Trader 2007.11.09 09:39  
Еще раз:
Изменённые глобальные переменные сохраняются на диск в момент закрытия клиентского терминала.
Forex Trader
114257
Forex Trader 2007.11.09 10:06  
Еще раз:
Изменённые глобальные переменные сохраняются на диск в момент закрытия клиентского терминала.


Типа для тупых? Ну-ну...

Еще раз: Хорошо бы сделать функцию принудительного сохранения
глобальных переменных на диск.

Например GlobalVariablesSave();
Которая бы сохраняла переменные не только в момент закрытия
клиентского терминала, но и в процессе работы
.

Разработчики экспертов могли бы вставлять ее в критичных
местах кода и в результате были бы уверены, что в случае
крэша точно можно "поднять" некоторые данные из глобальных
переменных.

Теперь надеюсь ясна идея?

Впрочем, конечно можно сохранять все и в файлах.
Но для хранения переменных в файлах каждый раз нужно
свой "парсер" писать. В то время как для целей "подъема"
эксперта после крэша глобалок вполне бы хватило.
Forex Trader
114257
Forex Trader 2007.11.09 19:36  
Вообще-то, глобальные переменные были задуманы для взаимодействия разных экспертов, и только во вторую очередь для сохранения неких значений между запусками.

Если мы реализуем сохранение глобальных переменных на диск после каждой модификации, мы серьёзно замедлим работу программ. То есть, решение одной, конкретно Вашей, задачи повлечёт за собой проблемы для других пользователей.
Forex Trader
114257
Forex Trader 2007.11.09 20:15  
Вообще-то, глобальные переменные были задуманы для взаимодействия разных экспертов, и только во вторую очередь для сохранения неких значений между запусками.

Если мы реализуем сохранение глобальных переменных на диск после каждой модификации, мы серьёзно замедлим работу программ. То есть, решение одной, конкретно Вашей, задачи повлечёт за собой проблемы для других пользователей.


Не знаю как у Вас, а у меня компьютер... персональный. :)

Так что как от использования мной функции принудительного
сохранения в моем эксперте на моем компьютере могут пострадать
другие пользователи никак не пойму.

Более того - если следовать Вашей логике, то эти гипотетические
пользователи могут пострадать и от сохранения мной данных в
"обычный" файл. :)

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