ExpertRemove

La funzione ferma un Expert Advisor e lo decarica da un grafico.

void  ExpertRemove();

Valore restituito

Nessun valore restituito.

Nota

L'Expert Advisor non viene fermato immediatamente appena si chiama ExpertRemove(); viene impostato solo un flag per fermare l'operatività dell' EA . Vale a dire, che ogni evento successivo non verrà elaborato, verr chiamato OnDeinit() e l'Expert Advisor verrà decaricato e rimosso dal grafico.

Chiamare ExpertRemove() nel tester di strategia all'interno dell handler OnInit() annulla i test sul set corrente di parametri. Tale completamento è considerato un errore di inizializzazione.

Quando si chiama ExpertRemove() nel tester della strategia dopo inizializzazione riuscita di un EA, un test è completato normalmente con la chiamata di OnDeinit() e OnTester(). In questo caso, vengono ottenuti i valori delle intere statistiche di trading e criterio di ottimizzazione.

Esempio:

//+--------------------------------------------------------------------------------+
//|                                                          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;// number of ticks before EA unload
//+--------------------------------------------------------------------------------+
//| Funzione deinizializzazione Expert                                             |
//+--------------------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- 
   Print(TimeCurrent(),": " ,__FUNCTION__," reason code = ",reason);
//--- "clear" comment
   Comment("");
//---
  }
//+--------------------------------------------------------------------------------+
//| Funzione tick dell'Expert                                                      |
//+--------------------------------------------------------------------------------+
void OnTick()
  {
   static int tick_counter=0;
//---
   tick_counter++;
   Comment("\nPrima di decaricare l'expert advisor ",__FILE__," left",
           (ticks_to_close-tick_counter)," ticks");
//--- prima
   if(tick_counter>=ticks_to_close)
     {
      ExpertRemove();
      Print(TimeCurrent(),": ",__FUNCTION__," l'expert advisor verrà decaricato");
     }
   Print("tick_counter =",tick_counter);
//---
  }
//+--------------------------------------------------------------------------------+

Vedi anche

Funzionamento programmi, Eventi terminale client