GlobalVariableTemp

La funzione tenta di creare una variabile globale temporanea. Se la variabile non esiste, il sistema crea una nuova variabile globale temporanea.

bool  GlobalVariableTemp(
   string  name      // Nome della variabile globale
   );

Parametri

name

[in] Il nome della variabile temporanea globale.

Valore restituito

In caso di successo, la funzione restituisce true, in caso contrario - false. Per dettagli sull' errore, è necessario chiamare la funzione GetLastError().

Nota

Le variabili globali temporanee sono uniche mentre il terminale client è in esecuzione, dopo la chiusura del terminale vengono automaticamente eliminate. Notare che durante l'esecuzione di GlobalVariablesFlush() le variabili globali temporanee non vengono scritte nel disco.

Dopo che una variabile globale temporanea è stato creata, è possibile accedere e modificare la stessa come variabile globale del terminale client.

 

Esempio:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   GV_NAME    "TestGlobalVariableTemp"
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double value=0;   // riceveremo qui i valori della variabile globale
   
//--- se non esiste ancora una variabile globale temporanea del terminale client, allora:
//--- 1. o il programma non è ancora stato lanciato,
//--- 2. oppure si è verificato un riavvio del terminale con il programma in esecuzione
   if(!GlobalVariableCheck(GV_NAME))
     {
      //--- creare una nuova variabile globale temporanea per il terminale client
      if(!GlobalVariableTemp(GV_NAME))
        {
         Print("GlobalVariableTemp() failed. Error "GetLastError());
         return;
        }
      //--- impostare la data e l'ora correnti nella variabile globale
      if(!GlobalVariableSet(GV_NAME,(double)TimeCurrent()))
        {
         Print("GlobalVariableSet() failed. Error "GetLastError());
         return;
        }
 
      //--- ottenere il valore della variabile globale temporanea e visualizzare nel journal l'ora del primo avvio del programma o del riavvio del terminale
      if(!GlobalVariableGet(GV_NAME,value))
        {
         Print("GlobalVariableGet() failed. Error "GetLastError());
         return;
        }
      Print("First start or starting the program after rebooting the terminal at "TimeToString((datetime)value,TIME_DATE|TIME_MINUTES|TIME_SECONDS));
     }
   
//--- se la variabile globale temporanea del terminale client è già stata creata, allora si tratta di un riavvio del programma
   else
     {
      //--- impostare la data e l'ora correnti nella variabile globale
      if(!GlobalVariableSet(GV_NAME,(double)TimeCurrent()))
        {
         Print("GlobalVariableSet() failed. Error "GetLastError());
         return;
        }
 
      //--- ottenere il valore della variabile globale temporanea e stampare l'ora di riavvio del programma nel journal
      if(!GlobalVariableGet(GV_NAME,value))
        {
         Print("GlobalVariableGet() failed. Error "GetLastError());
         return;
        }
      Print("Restarting the program at "TimeToString((datetime)valueTIME_DATE|TIME_MINUTES|TIME_SECONDS));
     }
 
   /*
   risultato durante il primo avvio, o dopo il riavvio del terminale:
   First start or starting the program after rebooting the terminal at 2024.11.29 15:03:18
   
   il risultato di diversi riavvii consecutivi del programma:
   Restarting the program at 2024.11.29 15:03:25
   Restarting the program at 2024.11.29 15:03:33
   Restarting the program at 2024.11.29 15:03:45
   */
  }