Глобальные переменные против записи в файл

 

У меня есть около 8-10 переменных, которые не могут быть пересчитаны на лету без существенного утяжеления (они получены из вызовов iCustom, потенциально давно прошедших).

Учитывая, что я обычно запускаю 5-10 экземпляров советника на терминале и хочу создать уровень постоянства, какой вариант лучше для надежности и скорости:

1. Глобальные переменные; или

2. Запись в файл .

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

Любые мысли будут высоко оценены.

 
toast:

У меня есть около 8-10 переменных, которые не могут быть пересчитаны на лету без существенного утяжеления (они получены из вызовов iCustom, потенциально давно прошедших).

Учитывая, что я обычно запускаю 5-10 экземпляров советника на терминале и хочу создать уровень постоянства, какой вариант лучше для надежности и скорости:

1. Глобальные переменные; или

2. Запись в файл .

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

Любые мысли будут высоко оценены.

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

но более надежна
 

Глобальные переменные могут быть надежными, если вы правильно закодируете свою ea. То же самое касается записи в файл.

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

Глобальные переменные и запись в файл - это всего лишь вкусы на ваш вкус.

 

Вы правы!!!

Я помню времена (несколько лет назад), когда глобальные переменные сохранялись в файл только при закрытии терминала.

что означало, что если произойдет сбой терминала/компьютера/электропитания, они не будут сохранены.

Похоже, что с тех пор все измени лось, и теперь они сразу сохраняются в файл.

спасибо за информацию

 
Большое спасибо всем за быстрые ответы - как всегда, быстро и информативно!
 
qjol:

Вы правы!!!

Я помню времена (несколько лет назад), когда глобальные переменные сохранялись в файл только при закрытии терминала.

что означало, что если произойдет сбой терминала/компьютера/электропитания, они не будут сохранены.

Похоже, что с тех пор все измени лось, и теперь они сразу сохраняются в файл.

спасибо за информацию


ГВ становится все более надежным в эти дни.

Приятно, не правда ли? Надеюсь, MetaQuotes сможет сделать его еще лучше :)

 

Если я могу побеспокоить вас, ребята, еще одним вопросом:

Является ли использование ChartID() надежным способом именования глобальных переменных? Всегда ли он уникален и не меняется после присвоения его конкретному графику?

Я думал использовать комбинацию магического числа и Symbol(), но меня беспокоит то, что кто-то изменит магическое число при активных сделках. Если это произойдет, то GV, используемые для управления сделками, не будут правильно получены.


(Обратите внимание: я не делюсь GV на разных графиках/EA, поэтому мне не нужно беспокоиться о том, что другой советник сможет получить GV. Я использую их только для сохранения).

 
toast:

Если я могу побеспокоить вас, ребята, еще одним вопросом:

Является ли использование ChartID() надежным способом именования глобальных переменных? Всегда ли он уникален и не меняется после присвоения его конкретному графику?

Я думал использовать комбинацию магического числа и Symbol(), но меня беспокоит то, что кто-то изменит магическое число при активных сделках. Если это произойдет, то GV, используемые для управления сделками, не будут правильно получены.


(Обратите внимание: я не делюсь GV на разных графиках/EA, поэтому мне не нужно беспокоиться о том, что другой советник сможет получить GV. Я использую их только для сохранения).


Магическое число не может быть изменено, если оно находится в ордерах (отложенных или рыночных).
 

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

Да, я согласен.

Но проблема будет заключаться в следующем:

Открывается сделка с магическим числом 123.

При управлении этой сделкой советник будет искать GV с именем 123xxxxx.

Теперь пользователь меняет настройки советника для магического числа на 789, пока сделка все еще активна.

Теперь советник ищет GV с именем 789xxxxx (которого не существует).

По сути, я ищу соглашение об именовании GV, которое не может быть изменено пользователем.

 
toast:

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

Да, я согласен.

Но проблема будет заключаться в следующем:

Открывается сделка с магическим числом 123.

При управлении этой сделкой советник будет искать GV с именем 123xxxxx.

Теперь пользователь меняет настройки советника для магического числа на 789, пока сделка все еще активна.

Теперь советник ищет GV с именем 789xxxxx (которого не существует).

По сути, я ищу соглашение об именовании GV, которое не может быть изменено пользователем.

Не позволяйте изменять магическое число, если все еще есть открытые сделки со старым магическим числом.