UninitializeReason

Restituisce il codice del motivo di deinizializzazione.

int  UninitializeReason();

Valore restituito

Restituisce il valore di _UninitReason che viene formato prima che OnDeinit() venga chiamato. Il valore dipende dalle ragioni che hanno portato alla deinizializzazione.

Esempio

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- ottenere il codice del motivo della deinitializzazione nella variabile 'reason'
   int reason=UninitializeReason();
//--- creare una stringa messaggio con un motivo di deinitializzazione e inviare il messaggio al journal
   string message=StringFormat("%s: Uninitialize reason code: %d (%s)",__FUNCTION__reasonUninitializeReasonDescription(reason));
   Print(message);
//-- con successo
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- creare una stringa messaggio con un codice motivo di deinitializzazione dalla variabile formale 'reason' e inviare il messaggio al journal
   string message=StringFormat("%s: Uninitialize reason code: %d (%s)",__FUNCTION__reasonUninitializeReasonDescription(reason));
   Print(message);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  }
//+----------------------------------------------------------------------------+
//| Restituisce una descrizione del codice del motivo della deinitilizzazione  |
//+----------------------------------------------------------------------------+
string UninitializeReasonDescription(const int reason)
  {
   switch(reason)
     {
      //--- l'EA ha smesso di funzionare chiamando la funzione ExpertRemove()
      case REASON_PROGRAM :
        return("Expert Advisor terminated its operation by calling the ExpertRemove() function");
      //--- programma rimosso dal grafico
      case REASON_REMOVE :
        return("Program has been deleted from the chart");
      //--- programma ricompilato
      case REASON_RECOMPILE :
        return("Program has been recompiled");
      //--- simbolo o periodo del grafico modificato
      case REASON_CHARTCHANGE :
        return("Symbol or chart period has been changed");
      //--- grafico chiuso
      case REASON_CHARTCLOSE :
        return("Chart has been closed");
      //--- input modificati dall'utente
      case REASON_PARAMETERS :
        return("Input parameters have been changed by a user");
      //--- un altro account è stato attivato o la riconnessione al server di trading e avvenuta a causa di modifiche nelle impostazioni dell'account
      case REASON_ACCOUNT :
        return("Another account has been activated or reconnection to the trade server has occurred due to changes in the account settings");
      //--- applicato un altro modello grafico
      case REASON_TEMPLATE :
        return("A new template has been applied");
      //--- il gestore OnInit() restituisce un valore diverso da zero
      case REASON_INITFAILED :
        return("This value means that OnInit() handler has returned a nonzero value");
      //--- terminale chiuso
      case REASON_CLOSE :
        return("Terminal has been closed");
     }
 
//--- motivo di deinitializzazione sconosciuto
   return("Unknown reason");
  }