Глобальные переменные GlobalVariables
Значительная часть функций, предназначенных для работы с глобальными переменными
клиентского терминала, рассмотрена в разделе Переменные GlobalVariables. В предыдущем изложении указывалось, что при завершении работы правильно составленная
программа должна удалить глобальные переменные, которые были ею созданы. После
завершения всех программ в клиентском терминале не должно оставаться GV-переменных.
При отладке, использующих глобальные переменные клиентского терминала, в терминале
могут оставаться одна или несколько GV-переменных. В этом случае, перед
очередным запуском на исполнение отлаживаемой программы программисту приходится
вручную удалять GV-переменные, оставшиеся после предыдущего исполнения программы.
Для механизации этого процесса можно создать скрипт, удаляющий все глобальные переменные
клиентского терминала.
Функция GlobalVariablesDeleteAll()
int GlobalVariablesDeleteAll(string prefix_name=NULL)
Удаляет глобальные переменные. Если префикс для имени не задан, то удаляются все
глобальные переменные. В противном случае удаляются только те переменные, имена
которых начинаются на указанный префикс. Функция возвращает количество удаленных
переменных.
Параметры:
prefix_name - префикс имени удаляемых глобальных переменных.
Пример простого скрипта deleteall.mq4, удаляющего все без исключения глобальные переменные клиентского
терминала.
int start()
{
GlobalVariablesDeleteAll();
PlaySound("W2.wav");
return;
}
Скрипт можно применять только в том случае, если в клиентском терминале нет ни одной
исполняющейся программы, использующей GV-переменные. В противном случае исполнение
скрипта может нарушить логику вычислений в других программах, что может привести
к неконтролируемым действиям. После исполнения скрипта окно глобальных переменных
клиентского терминала (F3) будет пустым:
Рис. 153. Вид окна глобальных переменных клиентского терминала после исполнения
скрипта deleteall.mq4.
Функции для работы с глобальными переменными
Функция |
Краткое описание |
GlobalVariableCheck |
Возвращает значение TRUE, если GV-переменная существует, иначе возвращает FALSE |
GlobalVariableDel |
Удаляет глобальную переменную. При успешном удалении функция возвращает TRUE, иначе
FALSE. |
GlobalVariableGet |
Возвращает значение существующей глобальной переменной или 0 в случае ошибки. |
GlobalVariableName |
Функция возвращает имя глобальной переменной по порядковому номеру в списке глобальных
переменных. |
GlobalVariableSet |
Устанавливает новое значение глобальной переменной. Если переменная не существует,
то система создает новую глобальную переменную. При успешном выполнении функция
возвращает время последнего доступа, иначе 0. |
GlobalVariableSetOnCondition |
Устанавливает новое значение существующей глобальной переменной, если текущее значение
переменной равно значению третьего параметра check_value. Если переменной не существует, функция сгенерирует ошибку ERR_GLOBAL_VARIABLE_NOT_FOUND
(4058) и вернет FALSE. При успешном выполнении функция возвращает TRUE, иначе FALSE.
|
GlobalVariablesDeleteAll |
Удаляет глобальные переменные. Если префикс для имени не задан, то удаляются все
глобальные переменные. В противном случае удаляются только те переменные, имена
которых начинаются на указанный префикс. Функция возвращает количество удаленных
переменных. |
GlobalVariablesTotal |
Функция возвращает общее количество глобальных переменных. |
Для получения подробного описания этих и других функций необходимо обратиться к
справочной документации на MQL4.community, сайте MetaQuotes Ltd. или к разделу "Справка" в редакторе MetaEditor.