GlobalVariableGet

클라이언트 터미널의 기존 글로벌 변수 값을 반환. 함수의 2가지 변수가 있습니다.

1. 글로벌 변수의 값을 즉시 반환.

double  GlobalVariableGet(
   string  name      // 글로벌 변수 이름
   );

 
2. 함수 실행의 성공 여부에 따라 true 또는 false를 반환합니다. 성공하면 클라이언트 터미널의 글로벌 변수가 두 번째 매개변수에서 참조로 전달된 변수에 배치됩니다.

bool  GlobalVariableGet(
   string  name,              // 글로벌 변수 이름
   double& double_var         // 이 변수에는 글로벌 변수의 값이 포함됩니다
   );

매개변수

이름

[in]  글로벌 변수 이름.

double_var

[out]  클라이언트 터미널의 글로벌 변수에 저장된 값을 수락하는 double 유형의 대상 변수입니다.

값 반환

오류가 발생한 경우 기존 글로벌 변수의 값 또는 0. 오류에 대한 자세한 내용은 GetLastError()호출하십시오.

주의

글로벌 변수는 마지막 사용 후 4주 동안 클라이언트 터미널에 존재하면 자동으로 삭제됩니다.

 

예:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   GV_NAME    "TestGlobalVariableGet"
#define   GV_VALUE   1.23
 
//+------------------------------------------------------------------+
//| 스크립트 프로그램 시작 함수                                         |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 클라이언트 터미널의 전역 변수인 GV_NAME에 값을 설정합니다.
   if(!GlobalVariableSetValue(GV_NAMEGV_VALUE))
      return;
     
//--- GV_NAME이라는 이름의 클라이언트 터미널 전역 변수의 실제 값을 가져옵니다.
//--- GlobalVariableGet을 호출하는 첫 번째 형식을 사용할 때 0은 오류 신호이기 때문입니다
//--- 결과를 읽는 동안 마지막 오류 코드를 분석해야 합니다.
   double dvalue=GlobalVariableGet(GV_NAME);
   if(dvalue==0 && GetLastError()!=0)
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- 획득한 결과를 보여줍니다
   PrintFormat("The first form of the GlobalVariableGet() function call returned the value %.2f"dvalue);
   
//--- 클라이언트 터미널의 전역 변수인 GV_NAME에 0 값을 설정합니다.
   if(!GlobalVariableSetValue(GV_NAME0))
      return;
     
//--- 호출의 첫 번째 형식을 사용하여 GV_NAME이라는 이름의 클라이언트 터미널 전역 변수의 부울 값을 얻습니다.
   bool bvalue=GlobalVariableGet(GV_NAME);
   if(!bvalue && GetLastError()!=0)
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- 획득한 결과를 보여줍니다
   PrintFormat("The first form of the GlobalVariableGet() function call returned the value %.2f with type bool as %s"bvalue, (string)bvalue);
     
//--- 클라이언트 터미널의 전역 변수인 GV_NAME에 0이 아닌 값을 설정합니다.
   if(!GlobalVariableSetValue(GV_NAMEGV_VALUE))
      return;
   
//--- GV_NAME이라는 클라이언트 터미널 전역 변수의 부울 값을 다시 읽습니다.
   bvalue=GlobalVariableGet(GV_NAME);
   if(!bvalue && GetLastError()!=0)
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- 획득한 결과를 보여줍니다
   PrintFormat("The first form of the GlobalVariableGet() function call returned the value %.2f with type bool as %s"bvalue, (string)bvalue);
     
//--- GlobalVariableGet 호출의 두 번째 형식을 사용하여 이름이 GV_NAME인 클라이언트 터미널 전역 변수의 실제 값을 가져옵니다.
   if(!GlobalVariableGet(GV_NAMEdvalue))
     {
      Print("GlobalVariableGet() failed. Error "GetLastError());
      return;
     }
//--- 결과 실수값을 long형 정수로 변환하여 결과를 보여줍니다.
   long lvalue=(long)dvalue;
   PrintFormat("The second form of the GlobalVariableGet() function call returned the value %.2f with type long as %I64d"dvaluelvalue);
   
//--- GV_NAME이라는 클라이언트 터미널 전역 변수를 삭제합니다.
   if(!GlobalVariableDel(GV_NAME))
     {
      Print("GlobalVariableDel() failed. Error "GetLastError());
     }
   
   /*
   결과:
   The first form of the GlobalVariableGet() function call returned the value 1.23
   The first form of the GlobalVariableGet() function call returned the value 0.00 with type bool as false
   The first form of the GlobalVariableGet() function call returned the value 1.00 with type bool as true
   The second form of the GlobalVariableGet() function call returned the value 123.00 with type long as 123
   */
  }
//+------------------------------------------------------------------+
//| 터미널 전역 변수에 값을 설정합니다.                                  |
//| 변수가 없으면 생성합니다.                                           |
//+------------------------------------------------------------------+
bool GlobalVariableSetValue(const string gv_nameconst double value)
  {
   if(GlobalVariableSet(gv_namevalue)==0)
     {
         Print("GlobalVariableSet() failed. Error "GetLastError());
      return(false);
     }
   return(true);
  }