사전 정의된 매크로 대체

디버깅 프로세스를 단순화하고 mql5 프로그램의 작동에 대한 정보를 얻기 위해 컴파일 시 설정되는 특수 매크로 상수가 있습니다. 이 상수를 사용하는 가장 쉬운 방법은 예제외 같이 Print() 함수로 값을 출력하는 것입니다.

정수

설명

__DATE__

시간이 없는 파일 컴파일 날짜(시간, 분 및 초는 0)

__DATETIME__

파일 컴파일 날짜 및 시간

__LINE__

매크로가 위치한 소스 코드의 라인 번호

__FILE__

현재 컴파일된 파일의 이름

__PATH__

현재 컴파일되고 있는 파일의 절대 경로입니다

__FUNCTION__

매크로가 위치한 본문의 함수 이름

__FUNCSIG__

매크로가 위치한 본문의 함수 서명입니다. 기능의 전체 설명을 로깅하는 것은 과부하된 기능 식별에 유용할 수 있습니다.

__MQLBUILD__,__MQL5BUILD__

컴파일러 빌드 번호

예:

#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "https://www.metaquotes.net"
//+------------------------------------------------------------------+
//| 엑스퍼트 초기화 기능                                   |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- 엑스퍼트 어드바이저 초기화 시 정보 출력 예
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
//--- 타이머 이벤트 간 간격 설정
   EventSetTimer(5);
//---
  }
//+------------------------------------------------------------------+
//| 엑스퍼트 초기화 취소 함수                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- 엑스퍼트 어드바이저 초기화 취소 시 정보 출력의 예
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
//---
  }
//+------------------------------------------------------------------+
//| 엑스퍼트 틱 기능                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- 틱 수신 시 정보 출력
   Print(" __MQLBUILD__ = ",__MQLBUILD__,"  __FILE__ = ",__FILE__);
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
   test1(__FUNCTION__);
   test2();
//---
  }
//+------------------------------------------------------------------+
//| test1                                                            |
//+------------------------------------------------------------------+
void test1(string par)
  {
//--- 함수 내 정보 출력
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__," par = ",par);
  }
//+------------------------------------------------------------------+
//| test2                                                            |
//+------------------------------------------------------------------+
void test2()
  {
//--- 함수 내 정보 출력
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
  }
//+------------------------------------------------------------------+
//| OnTimer 이벤트 처리기                                            |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
   test1(__FUNCTION__);
  }