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

Группа функций, предназначенных для работы с глобальными переменными.

Не следует путать глобальные переменные клиентского терминала с переменными, объявленными на глобальном уровне программы, написанной на языке программирования MQL5.

Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются. Обращением к глобальной переменной считается не только установка нового значения, но и чтение значения глобальной переменной.

Глобальные переменные клиентского терминала доступны одновременно из всех mql5-программ, запущенных на клиентском терминале.

Функция

Действие

GlobalVariableCheck

Проверяет существование глобальной переменной с указанным именем

GlobalVariableTime

Возвращает время последнего доступа к глобальной переменной

GlobalVariableDel

Удаляет глобальную переменную

GlobalVariableGet

Запрашивает значение глобальной переменной

GlobalVariableName

Возвращает имя глобальной переменной по порядковому номеру в списке глобальных переменных

GlobalVariableSet

Устанавливает новое значение глобальной переменной

GlobalVariablesFlush

Принудительно записывает содержимое всех глобальных переменных на диск

GlobalVariableTemp

Устанавливает новое значение глобальной переменной, которая существует только на время текущего сеанса работы терминала

GlobalVariableSetOnCondition

Устанавливает новое значение существующей глобальной переменной по условию

GlobalVariablesDeleteAll

Удаляет глобальные переменные с указанным префиксом в имени

GlobalVariablesTotal

Возвращает общее количество глобальных переменных

 

GlobalVariableCheck

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

bool GlobalVariableCheck(
 string name // имя
 );

Параметры

name — [in] Имя глобальной переменной.

Возвращаемое значение

Возвращает значение true, если глобальная переменная существует, иначе возвращает false.

Примечание

Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются.

 

GlobalVariableTime

Возвращает время последнего доступа к глобальной переменной.

datetime GlobalVariableTime(
 string name // имя
 );

Параметры

name — [in] Имя глобальной переменной.

Возвращаемое значение

Возвращает время последнего доступа к указанной глобальной переменной. Обращение к переменной за значением, например, с помощью функций GlobalVariableGet() и GlobalVariableCheck(), также изменяет время последнего доступа. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Примечание

Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются.

 

GlobalVariableDel

Удаляет глобальную переменную клиентского терминала.

bool GlobalVariableDel(
 string name // имя
 );

Параметры

name — [in] Имя глобальной переменной.

Возвращаемое значение

При успешном удалении функция возвращает true, иначе false. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Примечание

Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются.

 

GlobalVariableGet

Возвращает значение существующей глобальной переменной клиентского терминала. Существует 2 варианта функции.

1. Непосредственно возвращает значение свойства.

double GlobalVariableGet(
 string name // имя
 );

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

bool GlobalVariableGet(
 string name, // имя
 double& double_var // сюда примем значение глобальной переменной
 );

Параметры

name — [in] Имя глобальной переменной.

double_var — [out] Переменная типа double, принимающая значение, хранящееся в глобальной переменной клиентского терминала.

Возвращаемое значение

Значение существующей глобальной переменной или 0 в случае ошибки. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Примечание

Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются.

 

GlobalVariableName

Возвращает имя глобальной переменной по порядковому номеру.

string GlobalVariableName(
 int index // номер в списке глобальных переменных
 );

Параметры

index — [in] Порядковый номер в списке глобальных переменных. Должен быть большим или равным 0 и меньшим, чем GlobalVariablesTotal().

Возвращаемое значение

Имя глобальной переменной по порядковому номеру в списке глобальных переменных. Чтобы получить информацию об ошибке необходимо вызвать функцию функцию GetLastError().

Примечание

Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются.

 

GlobalVariableSet

Устанавливает новое значение глобальной переменной. Если переменная не существует, то система создает новую глобальную переменную.

datetime GlobalVariableSet(
 string name, // имя
 double value // устанавлимое значение
 );

Параметры

name — [in] Имя глобальной переменной.

value — [in] Новое числовое значение.

Возвращаемое значение

При успешном выполнении функция возвращает время последнего доступа, иначе 0. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Примечание

Имя глобальной переменной не должно превышать 63 символа. Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются.

 

GlobalVariablesFlush

Принудительная запись содержимого всех глобальных переменных на диск.

void GlobalVariablesFlush();

Возвращаемое значение

Нет возвращаемого значения.

Примечание

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

 

GlobalVariableTemp

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

bool GlobalVariableTemp(
 string name // имя
 );

Параметры

name — [in] Имя временной глобальной переменной.

Возвращаемое значение

При успешном выполнении функция возвращает true, иначе false. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Примечание

Временные глобальные переменные существуют только во время работы клиентского терминала, после закрытия терминала они автоматически уничтожаются. При выполнении операции GlobalVariablesFlush() временные глобальные переменные на диск не записываются.

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

 

GlobalVariableSetOnCondition

Устанавливает новое значение существующей глобальной переменной, если текущее значение переменной равно значению третьего параметра check_value. Если переменной не существует, функция сгенерирует ошибку ERR_GLOBALVARIABLE_NOT_FOUND (4501) и вернет false.

bool GlobalVariableSetOnCondition(
 string name, // имя
 double value, // значение при выполнении условия
 double check_value // проверяемое условие
 );

Параметры

name — [in] Имя глобальной переменной.

value — [in] Новое значение.

check_value — [in] Значение для проверки текущего значения глобальной переменной.

Возвращаемое значение

При успешном выполнении функция возвращает true, иначе false. Для получения информации об ошибке необходимо вызвать функцию GetLastError(). Если текущее значение глобальной переменной отличается от check_value, функция вернет false.

Примечание

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

 

GlobalVariablesDeleteAll

Удаляет глобальные переменные клиентского терминала.

int GlobalVariablesDeleteAll(
 string prefix_name=NULL, // все глобальные переменные, чьи имена начинаются с префикса
 datetime limit_data=0 // все глобальные переменные, которые изменялись ранее ранее указанной даты
 );

Параметры

prefix_name=NULL — [in] Префикс имени удаляемых глобальных переменных. Если указан префикс NULL либо пустая строка, то под критерий удаления соответствуют все глобальные переменные, соответствующие критерию удаления по дате

limit_data=0 — [in] Дата для отбора глобальных переменных по времени последней модификации. Удаляются глобальные переменные, которые изменялись ранее указанной даты. Если параметр равен нулю, то удаляются все глобальные переменные, соответствующие первому критерию (по префиксу).

Возвращаемое значение

Количество удаленных переменных.

Примечание

Если оба параметра равны нулю (prefix_name=NULL и limit_data=0), то удаляются все глобальные переменные терминала. Если указаны оба параметра, то удаляются глобальные переменные, соответствующие одновременно каждому из указанных параметров.

Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются.

 

GlobalVariablesTotal

Возвращает общее количество глобальных переменных клиентского терминала.

int GlobalVariablesTotal();

Возвращаемое значение

Количество глобальных переменных.

Примечание

Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются. Обращением к глобальной переменной считается не только установка нового значения, но и чтение значения глобальной переменной.