UninitializeReason

초기화 취소 사유코드를 반환.

int  UninitializeReason();

값 반환

형성된_UninitReason 값을 OnDeinit()가 호출되기 전에 반환. 값은 초기화를 취소한 사유에 따라 달라집니다.

예:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- 초기화 해제 이유 코드를 'reason' 변수로 가져옵니다.
   int reason=UninitializeReason();
//--- 초기화 해제 이유가 포함된 메시지 문자열을 생성하고 해당 메시지를 저널에 보냅니다.
   string message=StringFormat("%s: Uninitialize reason code: %d (%s)",__FUNCTION__reasonUninitializeReasonDescription(reason));
   Print(message);
//--- 성공
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- 'reason' 형식 변수에서 초기화 해제 이유 코드를 포함하는 메시지 문자열을 생성하고 해당 메시지를 저널로 보냅니다.
   string message=StringFormat("%s: Uninitialize reason code: %d (%s)",__FUNCTION__reasonUninitializeReasonDescription(reason));
   Print(message);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  }
//+------------------------------------------------------------------+
//| 초기화 해제 이유 코드에 대한 설명을 반환합니다.                                 |
//+------------------------------------------------------------------+
string UninitializeReasonDescription(const int reason)
  {
   switch(reason)
     {
 //--- EA가 ExpertRemove() 함수 호출 작업을 중지했습니다
      case REASON_PROGRAM :
 return("Expert Advisor가 ExpertRemove() 함수를 호출하여 작업을 종료했습니다.");< /t4>
      //--- 차트에서 삭제된 프로그램 
      case REASON_REMOVE :
 return("프로그램이 차트에서 삭제되었습니다.");
      //--- 다시 컴파일 된 프로그램
      case REASON_RECOMPILE :
        return("Program has been recompiled");
 //--- 심볼 또는 차트 기간이 변경됨
      case REASON_CHARTCHANGE :
        return("Symbol or chart period has been changed");
      //--- 차트 종료됨
      case REASON_CHARTCLOSE :
        return("Chart has been closed");
      //--- 유저에 의해 변경된 입력
      case REASON_PARAMETERS :
        return("Input parameters have been changed by a user");
 //--- 다른 계정이 활성화되었거나 계정 설정 변경으로 인해 거래 서버에 다시 연결되었습니다
      case REASON_ACCOUNT :
        return("Another account has been activated or reconnection to the trade server has occurred due to changes in the account settings");
      //--- 다른 차트 탬플릿이 적용됨
      case REASON_TEMPLATE :
        return("A new template has been applied");
 //--- OnInit() 핸들러가 0이 아닌 값을 반환했습니다.
      case REASON_INITFAILED :
        return("This value means that OnInit() handler has returned a nonzero value");
      //--- 터미널이 종료되었습니다
      case REASON_CLOSE :
        return("Terminal has been closed");
     }
 
//--- 초기화 해제 이유를 알 수 없음
   return("Unknown reason");
  }