//+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- 초기화 해제 이유 코드를 'reason' 변수로 가져옵니다. int reason=UninitializeReason(); //--- 초기화 해제 이유가 포함된 메시지 문자열을 생성하고 해당 메시지를 저널에 보냅니다. string message=StringFormat("%s: Uninitialize reason code: %d (%s)",__FUNCTION__, reason, UninitializeReasonDescription(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__, reason, UninitializeReasonDescription(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"); } |