ExpertRemove

이 함수는 엑스퍼트 어드바이저를 중지하고 차트에서 언로드.

void  ExpertRemove();

값 반환

반환 값 없음.

주의

ExpertRemove()를 호출할 때 엑스퍼트 어드바이저가 즉시 중지되는 것은 아니며, EA 작업을 중지하기 위한 플래그만 설정됩니다. 즉, 다음 이벤트가 처리되지 않고, OnDeinit()이 호출되고 엑스퍼트 어드바이저가 언로드되어 차트에서 제거됩니다.

ExpertRemove()OnInit() 핸들러 내의 전략테스터에서 호출하면 현재의 매개변수 세트에 대한 테스트가 취소됩니다. 이러한 완료는 초기화 오류로 간주됨.

EA를 전략 테스터에서 ExpertRemove() 를 호출할 때성공적으로 초기화 한 후라면 OnDeinit()OnTester()의 호출로 정상적으로 테스트가 완료됩니다. 이 경우 전체 거래 통계와 최적화 기준 값을 구한다.

예를 들어:

//+------------------------------------------------------------------+
//|                                            Test_ExpertRemove.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
input int ticks_to_close=20;// EA 언로드 전 틱의 수
//+------------------------------------------------------------------+
//| 엑스퍼트 초기화 해제 함수                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- 
   Print(TimeCurrent(),": " ,__FUNCTION__," reason code = ",reason);
//--- "비움" 코멘트
   Comment("");
//---
  }
//+------------------------------------------------------------------+
//| 엑스퍼트 틱 함수                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   static int tick_counter=0;
//---
   tick_counter++;
   Comment("\nBefore unloading expert advisor ",__FILE__," 좌측",
           (ticks_to_close-tick_counter)," 틱");
//--- 전
   if(tick_counter>=ticks_to_close)
     {
      ExpertRemove();
      Print(TimeCurrent(),": ",__FUNCTION__," 엑스퍼트 어드바이저는 언로드됩니다");
     }
   Print("tick_counter =",tick_counter);
//---
  }
//+------------------------------------------------------------------+

추가 참조

프로그램 실행, 클라이언트 터미널 이벤트