GlobalVariableTemp

A função tenta criar uma variável global temporária. Se a variável não existir, o sistema cria uma nova variável global temporária.

bool  GlobalVariableTemp(
   string  name      // Nome da variável global
   );

Parâmetros

name

[in]  O nome de uma variável global temporária.

Valor do Retorno

Se for bem sucedido, a função retorna true, caso contrário - false. Para obter detalhes sobre o erro, você deve chamar a função GetLastError().

Observação

Variáveis globais temporários existem apenas enquanto o terminal do cliente está sendo executado, após o desligamento do terminal eles são excluídos automaticamente. Note-se que durante a execução de GlobalVariablesFlush() variáveis ​​globais temporárias não são gravados em um disco.

Depois de uma variável global temporário tiver sido criado, pode ser acedido e modificado a mesma variável global do terminal do cliente.

 

Exemplo:

#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// aqui iremos receber o valor da variável global
   
//--- se a variável global temporária do terminal de cliente ainda não existe, então:
//--- 1. ou o programa ainda não foi iniciado,
//--- 2. ou houve uma reinicialização do terminal com o programa em execução
   if(!GlobalVariableCheck(GV_NAME))
     {
 //--- criamos uma nova variável global temporária do terminal de cliente
      if(!GlobalVariableTemp(GV_NAME))
        {
         Print("GlobalVariableTemp() failed. Error "GetLastError());
         return;
        }
 //--- definimos na variável global a data-hora atual
      if(!GlobalVariableSet(GV_NAME,(double)TimeCurrent()))
        {
         Print("GlobalVariableSet() failed. Error "GetLastError());
         return;
        }
 
 //--- obtemos o valor da variável global temporária e mostramos no diário o horário do primeiro início do programa ou da reinicialização do terminal
      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 a variável global temporária do terminal de cliente já está criada, então isto é uma reinicialização do programa
   else
     {
 //--- definimos na variável global a data-hora atual
      if(!GlobalVariableSet(GV_NAME,(double)TimeCurrent()))
        {
         Print("GlobalVariableSet() failed. Error "GetLastError());
         return;
        }
 
 //--- obtemos o valor da variável global temporária e mostramos no diário o horário da reinicialização do programa
      if(!GlobalVariableGet(GV_NAME,value))
        {
         Print("GlobalVariableGet() failed. Error "GetLastError());
         return;
        }
      Print("Restarting the program at "TimeToString((datetime)valueTIME_DATE|TIME_MINUTES|TIME_SECONDS));
     }
 
   /*
   resultado no primeiro início, ou após a reinicialização do terminal:
   First start or starting the program after rebooting the terminal at 2024.11.29 15:03:18
   
   resultado de várias reinicializações consecutivas do programa:
   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
   */
  }