GlobalVariableTemp

함수는 임지 글로벌 변수를 생성하려고 시도합니다. 변수가 없으면 시스템에서 새로운 임시 글로벌 변수를 생성합니다.

bool  GlobalVariableTemp(
   string  name      // 글로벌 변수 이름
   );

매개변수

이름

[in]  임시 글로벌 변수의 이름.

값 반환

성공하면 함수는 true를, 그렇지 않은 경우 false를 반환합니다. 오류에 대한 자세한 정보를 얻으려면 GetLastError() 기능을 호출하십시오.

주의

임시 글로벌 변수는 클라이언트 터미널이 실행 중일 때만 존재하며 터미널 종료 후 자동으로 삭제됩니다. GlobalVariablesFlush()를 실행하는 동안 임시 글로벌 변수가 디스크에 기록되지 않습니다.

임시 글로벌 변수가 생성되면 클라이언트 터미널의 글로벌 변수와 동일하게 액세스 및 수정할 수 있습니다.

 

예:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   GV_NAME    "TestGlobalVariableTemp"
 
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                         |
//+------------------------------------------------------------------+
void OnStart()
  {
   double value=0;   // 전역 변수의 값을 여기에 받을겁니다
   
//--- 아직 클라이언트 터미널의 임시 전역 변수가 없는 경우:
//--- 1. 프로그램이 아직 시작되지 않았거나,
//--- 2. 또는 프로그램이 실행 중인 상태에서 터미널을 재부팅한 경우
   if(!GlobalVariableCheck(GV_NAME))
     {
      //--- 클라이언트 터미널에 대한 새로운 임시 전역 변수를 만듭니다.
      if(!GlobalVariableTemp(GV_NAME))
        {
         Print("GlobalVariableTemp() failed. Error "GetLastError());
      return;
        }
      //--- 전역 변수에 현재 날짜와 시간을 설정
      if(!GlobalVariableSet(GV_NAME,(double)TimeCurrent()))
        {
         Print("GlobalVariableSet() failed. Error "GetLastError());
      return;
        }
 
      //--- 임시 전역 변수의 값을 가져오고 첫 번째 프로그램 시작 또는 터미널 재시작 시간을 저널에 표시합니다.
      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));
     }
   
//--- 클라이언트 터미널의 임시 글로벌 변수가 이미 생성되었다면 이는 프로그램 재시작입니다.
   else
     {
      //--- 전역 변수에 현재 날짜와 시간을 설정
      if(!GlobalVariableSet(GV_NAME,(double)TimeCurrent()))
        {
         Print("GlobalVariableSet() failed. Error "GetLastError());
      return;
        }
 
      //--- 임시 전역 변수의 값을 가져오고 프로그램 재시작 시간을 저널에 출력합니다.
      if(!GlobalVariableGet(GV_NAME,value))
        {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
        }
      Print("Restarting the program at "TimeToString((datetime)valueTIME_DATE|TIME_MINUTES|TIME_SECONDS));
     }
 
   /*
   첫 번째 실행 시 또는 터미널을 다시 시작한 후의 결과:
   First start or starting the program after rebooting the terminal at 2024.11.29 15:03:18
   
   여러 번의 연속적인 프로그램 재시작의 결과:
   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
   */
  }