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 недели с момента последнего обращения, после этого автоматически уничтожаются.

Пример:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   GV_NAME    "TestGlobalVariableGet"
#define   GV_VALUE   1.23
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- установим значение в глобальную переменную клиентского терминала с именем GV_NAME
   if(!GlobalVariableSetValue(GV_NAMEGV_VALUE))
      return;
     
//--- получим вещественное значение глобальной переменной клиентского терминала с именем GV_NAME
//--- так как при использовании первой формы вызова GlobalVariableGet ноль является признаком ошибки,
//--- при чтении результата необходимо анализировать код последней ошибки
   double dvalue=GlobalVariableGet(GV_NAME);
   if(dvalue==0 && GetLastError()!=0)
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- покажем полученный результат
   PrintFormat("The first form of the GlobalVariableGet() function call returned the value %.2f"dvalue);
   
//--- установим нулевое значение в глобальную переменную клиентского терминала с именем GV_NAME
   if(!GlobalVariableSetValue(GV_NAME0))
      return;
     
//--- при помощи первой формы вызова получим булево значение глобальной переменной клиентского терминала с именем GV_NAME
   bool bvalue=GlobalVariableGet(GV_NAME);
   if(!bvalue && GetLastError()!=0)
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- покажем полученный результат
   PrintFormat("The first form of the GlobalVariableGet() function call returned the value %.2f with type bool as %s"bvalue, (string)bvalue);
     
//--- установим не нулевое значение в глобальную переменную клиентского терминала с именем GV_NAME
   if(!GlobalVariableSetValue(GV_NAMEGV_VALUE*100.0))
      return;
   
//--- ещё раз прочитаем булево значение глобальной переменной клиентского терминала с именем GV_NAME
   bvalue=GlobalVariableGet(GV_NAME);
   if(!bvalue && GetLastError()!=0)
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- покажем полученный результат
   PrintFormat("The first form of the GlobalVariableGet() function call returned the value %.2f with type bool as %s"bvalue, (string)bvalue);
     
//--- получим вещественное значение глобальной переменной клиентского терминала с именем GV_NAME при помощи второй формы вызова GlobalVariableGet
   if(!GlobalVariableGet(GV_NAMEdvalue))
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- полученное вещественное значение преобразуем в целочисленное с типом long и покажем результат
   long lvalue=(long)dvalue;
   PrintFormat("The second form of the GlobalVariableGet() function call returned the value %.2f with type long as %I64d"dvaluelvalue);
   
//--- удалим глобальную переменную клиентского терминала с именем GV_NAME после использования
   if(!GlobalVariableDel(GV_NAME))
     {
      Print("GlobalVariableDel() failed. Error ",GetLastError());
     }
   
   /*
   результат:
   The first form of the GlobalVariableGet() function call returned the value 1.23
   The first form of the GlobalVariableGet() function call returned the value 0.00 with type bool as false
   The first form of the GlobalVariableGet() function call returned the value 1.00 with type bool as true
   The second form of the GlobalVariableGet() function call returned the value 123.00 with type long as 123
   */
  }
//+------------------------------------------------------------------+
//| Устанавливает значение в глобальную переменную терминала.        |
//| При отсутствии переменной, создаёт её                            |
//+------------------------------------------------------------------+
bool GlobalVariableSetValue(const string gv_nameconst double value)
  {
   if(GlobalVariableSet(gv_namevalue)==0)
     {
      Print("GlobalVariableSet() failed. Error ",GetLastError());
      return(false);
     }
   return(true);
  }