Глобальные переменные в терминале MetaTrader 5

 

Во первых, огромнейшее спасибо за функцию GlobalVariablesFlush();  в инструментарии к ним!

Во вторых, весьма тоже важный вопрос...

Сохраняются ли "немедля" ГПТ при ручном их вводе\правке?

 
На диск немедленно не сохраняются.
 
antt :
На диск немедленно не сохраняются.

и жаль...

Ведь событие добавки\изменения можно же отследить,

тогда что мешает завершать его сбросом в файл...?


Конкретный пример.

(что и послужил созданию темы вопроса)

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

что-то типа: double каждому=ДЕПО / количество советников;

Автоматизировать пока не знаю как, поэтому один из выходов указание через ГПТ.

Однако в случае нештатной ситуации изменения могут быть потеряны что приведёт к неверной работе.


ЗЫ: в четвёрке это тоже не помешает.

Тем более ничего глобального не вносится....

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Основы языка / Типы данных / Вещественные типы (double, float) - Документация по MQL5
 
kombat :

и жаль...

Ведь событие добавки\изменения можно же отследить,

тогда что мешает завершать его сбросом в файл...?


Конкретный пример.

(что и послужил созданию темы вопроса)

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

что-то типа: double каждому=ДЕПО / количество советников;

Автоматизировать пока не знаю как, поэтому один из выходов указание через ГПТ.

Однако в случае нештатной ситуации изменения могут быть потеряны что приведёт к неверной работе.


ЗЫ: в четвёрке это тоже не помешает.

Тем более ничего глобального не вносится....


Строго говоря, в случае нештатной ситуации изменения могут быть потеряны в любом случае. В приведенном примере достаточно использовать GlobalVariableFlush().
 
antt :


Строго говоря, в случае нештатной ситуации изменения могут быть потеряны в любом случае. В приведенном примере достаточно использовать GlobalVariableFlush().


Простите, но как?

Прописывать в каждый эксперт которые на каждом тике (а не по конкретному случаю) будут толпой флюшить.

Да не проблема, и об этом конечно же размышлял... но! размышления проходили на выходных, когда всё стоит,

и то самое время для внесения поправок для окружения экспертов... и само собой говорит об ущербности этого варианта.


ЗЫ: насчёт нештатки не соглашусь...

внеся руками изменения они "виртуальны" до штатной перезагрузки терминала

(либо не подойдёт событие в советниках профлюшить...

 
kombat :


Простите, но как?

Прописывать в каждый эксперт которые на каждом тике (а не по конкретному случаю) будут толпой флюшить.

Да не проблема, и об этом конечно же размышлял... но! размышления проходили на выходных, когда всё стоит,

и то самое время для внесения поправок для окружения экспертов... и само собой говорит об ущербности этого варианта.


ЗЫ: насчёт нештатки не соглашусь...

внеся руками изменения они "виртуальны" до штатной перезагрузки терминала

(либо не подойдёт событие в советниках профлюшить...


Не надо на каждом тике - только если прочитанное значение отличается от предыдущего.

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

 

Можно написать скрипт,

GlobalVariableFlush()

и на него повесить Горячую клавишу.

 
Rosh :

Можно написать скрипт,

и на него повесить Горячую клавишу.



Спасибо конечно всем за советы, но мой вопрос остался в силе.

ДА или НЕТ (в смысле сделаем\несделаем\нафигНЕнужно)

 
kombat :


Спасибо конечно всем за советы, но мой вопрос остался в силе.

ДА или НЕТ (в смысле сделаем\несделаем\нафигНЕнужно)

Т.е немедленная запись на диск при любом ручном изменении переменных нужна для решения конкретной проблемы, а работать будет у всех и всегда? Решение указанной проблемы уже имеющимися средствами я подсказал. На данный момент нет причины/аргумента исправлять поведение терминала.
 
antt :
Т.е немедленная запись на диск при любом ручном изменении переменных нужна для решения конкретной проблемы, а работать будет у всех и всегда? Решение указанной проблемы уже имеющимися средствами я подсказал. На данный момент нет причины/аргумента исправлять поведение терминала.


Какая же это конкретная проблема???

Это вполне очевидное поведение.

Ибо ГПТ не только сервис как таковой а ещё и способ постоянного надёжного хранения ГП в файле.

На данный момент именно нынешний способ ненадёжен...

и когда вдруг возникнет у разработчиков пересмотреть причины\аргументы будет как всегда поздно.

Что мешает смотреть на шаг вперёд и забыть об этом уже сейчас? не понимаю...

 
kombat :


Какая же это конкретная проблема???

Это вполне очевидное поведение.

Ибо ГПТ не только сервис как таковой а ещё и способ постоянного надёжного хранения ГП в файле.

На данный момент именно нынешний способ ненадёжен...

и когда вдруг возникнет у разработчиков пересмотреть причины\аргументы будет как всегда поздно.

Что мешает смотреть на шаг вперёд и забыть об этом уже сейчас? не понимаю...

Что касается сохранения глобальных переменных при ручном вводе\изменении - мы подумаем, как это можно сделать оптимальным образом (с точки зрения надёжности-производительности).
С сохранением глобальных переменных из экспертов, думаю вопрос закрыт.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
Причина обращения: