ExpertRemove

A função interrompe um Expert Advisor e o descarrega de um gráfico.

void  ExpertRemove();

Valor de retorno

Sem valor de retorno.

Observação

O Expert Advisor não é interrompido imediatamente ao chamar ExpertRemove(); apenas um flag para interromper a operação o EA é definido. Isso é, nenhum evento seguinte será processo, OnDeinit() será chamado e o Expert Advisor será descarregado e removido do gráfico.

A chamada da ExpertRemove() no testador de estratégias dentro do manipulador OnInit() faz com que seja cancelado o teste no conjunto de parâmetros atual. Essa finalização é considerada um erro durante a inicialização.

Ao chamar a ExpertRemove() no testador de estratégias após a inicialização bem-sucedida do EA, o teste é encerrado de maneira geral com chamada da OnDeinit() e da OnTester(). Neste caso, serão obtidos todas as estatísticas de negociação e valores do critério de otimização, mas, ao mesmo tempo, o próprio EA será descarregado da memória do agente de teste. Isso significa que, para testar a próxima passagem de otimização, o agente precisará de tempo para recarregar o EA. Portanto, para encerramento antecipado geral do teste, o uso da TesterStop() é a opção preferida.

Exemplo:

//+------------------------------------------------------------------+
//|                                            Test_ExpertRemove.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                             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;// número de ticks antes do EA descarregar
//+------------------------------------------------------------------+
//| Função de Desinicialização do Expert                             |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- 
   Print(TimeCurrent(),": " ,__FUNCTION__," código de motivo = ",reason);
//--- "limpa" comentário
   Comment("");
//---
  }
//+------------------------------------------------------------------+
//| Função tick (ponto) de um Expert                                 |
//+------------------------------------------------------------------+
void OnTick()
  {
   static int tick_counter=0;
//---
   tick_counter++;
   Comment("\nAntes de descarregar Expert Advisor ",__FILE__," left",
           (ticks_to_close-tick_counter)," ticks");
//--- antes
   if(tick_counter>=ticks_to_close)
     {
      ExpertRemove();
      Print(TimeCurrent(),": ",__FUNCTION__," Expert Advisor será descarregado");
     }
   Print("tick_counter =",tick_counter);
//---
  }
//+------------------------------------------------------------------+

Também Veja

Execução de programas, Eventos do terminal Cliente