UninitializeReason

Retourne le code de la raison de la déinitialisation.

int  UninitializeReason();

Valeur de retour

Retourne la valeur de la variable _UninitReason, qui est formée avant l'appel à la fonction OnDeinit(). La valeur dépend de la raison qui a déclenchée à la déinitialisation.

Exemple :

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- récupère le code de la raison de la déinitialisation dans la variable 'reason'
   int reason=UninitializeReason();
//--- crée un message avec la raison de la déinitialisation et envoie le message dans le journal
   string message=StringFormat("%s: Uninitialize reason code: %d (%s)",__FUNCTION__reasonUninitializeReasonDescription(reason));
   Print(message);
//--- succès
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---crée un message avec le code de la raison de la déinitialisation de la variable 'reason' et l'envoie dans le journal
   string message=StringFormat("%s: Uninitialize reason code: %d (%s)",__FUNCTION__reasonUninitializeReasonDescription(reason));
   Print(message);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  }
//+------------------------------------------------------------------+
//| Renvoie une description du code de désinitialisation             |
//+------------------------------------------------------------------+
string UninitializeReasonDescription(const int reason)
  {
   switch(reason)
     {
      //--- l'EA a cessé de fonctionner en appelant la fonction ExpertRemove()
      case REASON_PROGRAM :
        return("Expert Advisor terminated its operation by calling the ExpertRemove() function");
      //--- programme supprimé du graphique
      case REASON_REMOVE :
        return("Program has been deleted from the chart");
      //--- programme recompilé
      case REASON_RECOMPILE :
        return("Program has been recompiled");
      //--- le symbole ou la période du graphique a changé
      case REASON_CHARTCHANGE :
        return("Symbol or chart period has been changed");
      //--- graphique fermé
      case REASON_CHARTCLOSE :
        return("Chart has been closed");
      //--- paramètres d'entrée changés
      case REASON_PARAMETERS :
        return("Input parameters have been changed by a user");
      //--- un autre compte a été activé ou une reconnexion au serveur de trading s'est produite en raison d'un changement dans les paramètres du compte
      case REASON_ACCOUNT :
        return("Another account has been activated or reconnection to the trade server has occurred due to changes in the account settings");
      //--- un autre template de graphique a été appliqué
      case REASON_TEMPLATE :
        return("A new template has been applied");
      //--- La fonction OnInit() a retourné une valeur différente de 0
      case REASON_INITFAILED :
        return("This value means that OnInit() handler has returned a nonzero value");
      //--- terminal fermé
      case REASON_CLOSE :
        return("Terminal has been closed");
     }
 
//--- raison inconnue
   return("Unknown reason");
  }