GlobalVariableTemp

Versucht, temporaere Variable zu erzeugen. Wenn die Variable existiert nicht, erzeugt das System eine neue temporaere Variable.

bool  GlobalVariableTemp(
   string  name,      // Name
   );

Parameter

name

[in]  Name der temporaeren globalen Variable.

Rückgabewert

Bei der erfolgreichen Durchführung gibt die Funktion true zurück, anderenfalls false. Für die Erhaltung der fehlerbezogenen Information, muss die Funktion GetLastError() aufgerufen werden.

Hinweis

Temporaere globale Variablen existieren nur während der Session des Client-Terminals, nach Schliessen des Terminlas werden sie automatisch entfernt. Bei der Durchführung der Operation GlobalVariablesFlush() werden globale Variablen in der Platte nicht gespeichert.

Nach Erzeugung der temporaeren globalen Variable wird der Zugang zu ihr und ihre Modifikation ebenso, wie zur normalen globalen Variable des Client-Terminals durchgeführt..

 

Beispiel:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   GV_NAME    "TestGlobalVariableTemp"
 
//+------------------------------------------------------------------+
//| Skript Programm Start Funktion                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
   double value=0;   // Wir erhalten hier die Werte der globalen Variablen.
   
//--- wenn noch keine temporäre globale Variable des Client-Terminals vorhanden ist, dann:
//--- 1. wurde entweder das Programm noch nicht gestartet,
//--- 2. oder es gab einen Neustart des Terminals, während das Programm lief
   if(!GlobalVariableCheck(GV_NAME))
     {
      //--- Erstellen einer neuen temporären globale Variable für das Client-Terminal
      if(!GlobalVariableTemp(GV_NAME))
        {
         Print("GlobalVariableTemp() failed. Error "GetLastError());
         return;
        }
      //--- Aktuelles Datum und Uhrzeit in der globalen Variablen festlegen
      if(!GlobalVariableSet(GV_NAME,(double)TimeCurrent()))
        {
         Print("GlobalVariableSet() failed. Error "GetLastError());
         return;
        }
 
      //--- den Wert der temporären globalen Variablen abrufen und im Journal die Zeit des ersten Programmstarts oder Terminal-Neustarts anzeigen.
      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));
     }
   
//--- Wenn die temporäre globale Variable des Client-Terminals bereits erstellt wurde, handelt es sich um einen Programmneustart.
   else
     {
      //--- Aktuelles Datum und Uhrzeit in der globalen Variablen festlegen
      if(!GlobalVariableSet(GV_NAME,(double)TimeCurrent()))
        {
         Print("GlobalVariableSet() failed. Error "GetLastError());
         return;
        }
 
      //--- abrufen des Werts der temporären globalen Variablen und die Programmneustartzeit im Journal ausgeben
      if(!GlobalVariableGet(GV_NAME,value))
        {
         Print("GlobalVariableGet() failed. Error "GetLastError());
         return;
        }
      Print("Restarting the program at "TimeToString((datetime)valueTIME_DATE|TIME_MINUTES|TIME_SECONDS));
     }
 
   /*
   Ergebnis beim ersten Start oder nach dem Neustart des Terminals:
   First start or starting the program after rebooting the terminal at 2024.11.29 15:03:18
   
   Das Ergebnis mehrerer aufeinanderfolgender Programmneustarts:
   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
   */
  }