GlobalVariableGet

Rend la valeur de la variable globale existante du terminal de client. Il y a 2 variantes de la fonction.

1. Rend directement la valeur de la propriété.

double  GlobalVariableGet(
   string  name      // nom
   );

 
2. Rend true ou false en fonction du succès de l'exécution de la fonction. En cas du succès la valeur de la variable globale du terminal de client se place à la variable de réception transmise selon le lien par le deuxième paramètre.

bool  GlobalVariableGet(
   string  name               // nom
   double& double_var         // acceptons ici la valeur de la variable globale
   );

Paramètres

name

[in]  Le nom de la variable globale.

double_var

[out]  La variable du type double, acceptant la valeur qui se trouve dans la variable globale du terminal de client.

La valeur rendue

La valeur de la variable globale existante ou 0 en cas de l'erreur. Pour recevoir l'information sur l'erreur, il est nécessaire d'appeler la fonction GetLastError().

Note

Les variables globales existent dans le terminal de client les 4 semaines dès le moment du dernier appel, après cela elles se suppriment automatiquement.

 

Exemple :

#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()
  {
//--- définit la valeur de la variable globale du terminal client nommée GV_NAME
   if(!GlobalVariableSetValue(GV_NAMEGV_VALUE))
      return;
     
//--- récupère la valeur réelle de la variable globale du terminal client avec le nom GV_NAME
//--- puisque lors de l'utilisation de la première forme d'appel de GlobalVariableGet, 0 est un signal d'erreur,
//--- il faut analyser le dernier code d'erreur lors de la lecture du résultat
   double dvalue=GlobalVariableGet(GV_NAME);
   if(dvalue==0 && GetLastError()!=0)
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- affiche le résultat obtenu
   PrintFormat("The first form of the GlobalVariableGet() function call returned the value %.2f"dvalue);
   
//--- définit la valeur 0 sur la variable globale du terminal client nommée GV_NAME
   if(!GlobalVariableSetValue(GV_NAME0))
      return;
     
//--- en utilisant la première forme de l'appel, nous obtenons la valeur booléenne de la variable globale du terminal client avec le nom GV_NAME
   bool bvalue=GlobalVariableGet(GV_NAME);
   if(!bvalue && GetLastError()!=0)
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- affiche le résultat obtenu
   PrintFormat("The first form of the GlobalVariableGet() function call returned the value %.2f with type bool as %s"bvalue, (string)bvalue);
     
//--- définit la valeur non nulle sur la variable globale du terminal client nommée GV_NAME
   if(!GlobalVariableSetValue(GV_NAMEGV_VALUE*100.0))
      return;
   
//--- relit la valeur booléenne de la variable globale du terminal client nommée GV_NAME
   bvalue=GlobalVariableGet(GV_NAME);
   if(!bvalue && GetLastError()!=0)
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- affiche le résultat obtenu
   PrintFormat("The first form of the GlobalVariableGet() function call returned the value %.2f with type bool as %s"bvalue, (string)bvalue);
     
//--- récupère la valeur réelle de la variable globale du terminal client portant le nom GV_NAME en utilisant la deuxième forme de l'appel GlobalVariableGet
   if(!GlobalVariableGet(GV_NAMEdvalue))
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- convertit la valeur réelle résultante en un entier de type long et affiche le résultat
   long lvalue=(long)dvalue;
   PrintFormat("The second form of the GlobalVariableGet() function call returned the value %.2f with type long as %I64d"dvaluelvalue);
   
//--- supprime la variable globale du terminal client nommée GV_NAME après utilisation
   if(!GlobalVariableDel(GV_NAME))
     {
      Print("GlobalVariableDel() failed. Error ",GetLastError());
     }
   
   /*
   résultat :
   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
   */
  }
//+------------------------------------------------------------------+
//| Affecte la valeur à la variable globale du terminal. |
//| Si la variable n'existe pas, elle est créée.                     |
//+------------------------------------------------------------------+
bool GlobalVariableSetValue(const string gv_nameconst double value)
  {
   if(GlobalVariableSet(gv_namevalue)==0)
     {
      Print("GlobalVariableSet() failed. Error ",GetLastError());
      return(false);
     }
   return(true);
  }