Русский

Учебник по MQL4  Стандартные функции  Глобальные переменные GlobalVariables

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


Значительная часть функций, предназначенных для работы с глобальными переменными клиентского терминала, рассмотрена в разделе Переменные GlobalVariables. В предыдущем изложении указывалось, что при завершении работы правильно составленная программа должна удалить глобальные переменные, которые были ею созданы. После завершения всех программ в клиентском терминале не должно оставаться GV-переменных.

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

Функция GlobalVariablesDeleteAll()

 int GlobalVariablesDeleteAll(string prefix_name=NULL)

Удаляет глобальные переменные. Если префикс для имени не задан, то удаляются все глобальные переменные. В противном случае удаляются только те переменные, имена которых начинаются на указанный префикс. Функция возвращает количество удаленных переменных.

Параметры:

prefix_name - префикс имени удаляемых глобальных переменных.

Пример простого скрипта deleteall.mq4, удаляющего все без исключения глобальные переменные клиентского терминала.

//--------------------------------------------------------------------
// deleteall.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start() // Специальная функция start()
{
GlobalVariablesDeleteAll(); // Удаление всех GV-переменных
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.