GlobalVariableTime

Gibt die Zeit des letzten Zugangs zur globalen Variable zurück.

datetime  GlobalVariableTime(
   string  name      // Name
   );

Parameter

name

[in]  Name der globalen Variable.

Rückgabewert

Gibt die Zeit des letzten Zugangs zu angegebenen globalen Variable. Zugriff auf den Wert einer Variablen, z.B. mit der Funktion GlobalVariableGet() und GlobalVariableCheck(), verändert auch die Zeit des letzten Zugriffs. Für die Erhaltung der fehlerbezogenen Information muss die Funktion GetLastError() aufgerufen werden.

Hinweis

Globale Variablen existieren im Client-Terminal innerhalb von 4 Wochen seit dem letzten Zugriffs, danach werden sie automatisch entfernt.

 

Beispiel:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   GV_NAME    "TestGlobalVariableTime"
#define   GV_TOTAL   5
 
//+------------------------------------------------------------------+
//| Skript Programm Start Funktion                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Löschen der globalen Variablen des Client-Terminals mit dem Präfix GV_NAME, die für den Test erstellt wurden
   GlobalVariablesDeleteAll(GV_NAME);
   
//--- Erstellen der globalen Variablen für das Client-Terminal mit dem Betrag von GV_TOTAL
//--- mit dem Präfix GV_NAME und einer Pause von 5 Sekunden zwischen dem Erstellen jeder einzelnen Variablen
   for(int i=0i<GV_TOTALi++)
     {
      string name=GV_NAME+"_"+(string)i;
      ulong value=GetMicrosecondCount();
      ResetLastError();
      datetime time=GlobalVariableSet(name, (double)value);
      if(time==0)
        {
         Print("GlobalVariableSet() failed. Error "GetLastError());
         continue;
        }
      Sleep(5000);
      PrintFormat("GlobalVariableSet(%s, %.0f). Create time: %s"namevalueTimeToString(time,TIME_DATE|TIME_MINUTES|TIME_SECONDS));
     }
     
//--- einige Sekunden warten und im Journal den Zeitpunkt der Erstellung der globalen Terminalvariablen mit dem Präfix GV_NAME ausgeben
   Sleep(2000);
   Print(""); 
   GlobalVariableTimePrint("Creation time");
   
//--- einige Sekunden warten und im Journal die Zeit des letzten Zugriffs auf die globalen Variablen des Terminals mit dem Präfix GV_NAME ausgeben
//--- wir können sehen, dass die Zeit des letzten Zugriffs auf jede Variable der Zeit ihrer Erstellung entspricht
   Sleep(2000);
   Print(""); 
   GlobalVariableTimePrint("Last access time");
 
//--- nun den Wert von jeder erstellten Variablen anfordern
   Print(""); 
   int total=GlobalVariablesTotal();
   for(int i=0i<totali++)
     {
      string name=GlobalVariableName(i);
      if(GetLastError()!=0)
        {
         PrintFormat("Error %d occurred while getting global variable name at index %d"GetLastError(), i);
         ResetLastError();
         continue;
        }
      if(StringFind(nameGV_NAME)==WRONG_VALUE)
         continue;
         
      double value=GlobalVariableGet(name);
      if(GetLastError()!=0)
        {
         PrintFormat("Error %d occurred while getting global variable value at index %d"GetLastError(), i);
         ResetLastError();
         continue;
        }
      PrintFormat("Value of global variable named \"%s\": %.0f"namevalue);
     }
   
//--- einige Sekunden warten und im Journal die Zeit des letzten Zugriffs auf die globalen Variablen des Terminals mit dem Präfix GV_NAME ausgeben
//--- wir können sehen, dass der Zeitpunkt des letzten Zugriffs auf jede Variable dem Zeitpunkt der Abfrage ihres Wertes entspricht
   Sleep(2000);
   Print(""); 
   GlobalVariableTimePrint("After getting value, the last access time");
 
//--- Löschen aller globalen Variablen des Client-Terminals mit dem Präfix GV_NAME, die für den Test erstellt wurden.
   GlobalVariablesDeleteAll(GV_NAME);
   /*
   Ergebnis:
   GlobalVariableSet(TestGlobalVariableTime_03987). Create time2024.11.28 22:00:39
   GlobalVariableSet(TestGlobalVariableTime_15012302). Create time2024.11.28 22:00:44
   GlobalVariableSet(TestGlobalVariableTime_210034365). Create time2024.11.28 22:00:49
   GlobalVariableSet(TestGlobalVariableTime_315045008). Create time2024.11.28 22:00:54
   GlobalVariableSet(TestGlobalVariableTime_420060340). Create time2024.11.28 22:00:59
   
   Creation time of global variable named "TestGlobalVariableTime_0"2024.11.28 22:00:39
   Creation time of global variable named "TestGlobalVariableTime_1"2024.11.28 22:00:44
   Creation time of global variable named "TestGlobalVariableTime_2"2024.11.28 22:00:49
   Creation time of global variable named "TestGlobalVariableTime_3"2024.11.28 22:00:54
   Creation time of global variable named "TestGlobalVariableTime_4"2024.11.28 22:00:59
   
   Last access time of global variable named "TestGlobalVariableTime_0"2024.11.28 22:00:39
   Last access time of global variable named "TestGlobalVariableTime_1"2024.11.28 22:00:44
   Last access time of global variable named "TestGlobalVariableTime_2"2024.11.28 22:00:49
   Last access time of global variable named "TestGlobalVariableTime_3"2024.11.28 22:00:54
   Last access time of global variable named "TestGlobalVariableTime_4"2024.11.28 22:00:59
   
   Value of global variable named "TestGlobalVariableTime_0"3987
   Value of global variable named "TestGlobalVariableTime_1"5012302
   Value of global variable named "TestGlobalVariableTime_2"10034365
   Value of global variable named "TestGlobalVariableTime_3"15045008
   Value of global variable named "TestGlobalVariableTime_4"20060340
   
   After getting valuethe last access time of global variable named "TestGlobalVariableTime_0"2024.11.28 22:01:08
   After getting valuethe last access time of global variable named "TestGlobalVariableTime_1"2024.11.28 22:01:08
   After getting valuethe last access time of global variable named "TestGlobalVariableTime_2"2024.11.28 22:01:08
   After getting valuethe last access time of global variable named "TestGlobalVariableTime_3"2024.11.28 22:01:08
   After getting valuethe last access time of global variable named "TestGlobalVariableTime_4"2024.11.28 22:01:08
   */
  }
//+------------------------------------------------------------------+
//| Ausdruck im Journal der letzten Zugriffszeit                     |
//| der globalen Variablen des Client-Terminals                      |
//+------------------------------------------------------------------+
void GlobalVariableTimePrint(const string reason)
  {
   int total=GlobalVariablesTotal();
   for(int i=0;i<total;i++)
     {
      string name=GlobalVariableName(i);
      if(GetLastError()!=0)
        {
         PrintFormat("Error %d occurred while getting global variable name at index %d"GetLastError(), i);
         ResetLastError();
         continue;
        }
      datetime time=GlobalVariableTime(name);
      if(GetLastError()!=0)
        {
         PrintFormat("Error %d occurred while getting global variable time at index %d"GetLastError(), i);
         ResetLastError();
         continue;
        }
      PrintFormat("%s of global variable named \"%s\": %s"reasonnameTimeToString(time,TIME_DATE|TIME_MINUTES|TIME_SECONDS));
     }
  }

Sehen Sie auch

GlobalVariableCheck()