Deinitialisierungsgruende

Koden der Deinitialisierungsgruende von Expert, die durch die Funktion UninitializeReason() zurückgegeben werden. können jede der folgenden Werte haben:

Konstante

Wert

Beschreibung

REASON_PROGRAM

0

Expert beendet seine Operation durch Aufruf der Funktion ExpertRemove()

REASON_REMOVE

1

Das Programm ist entfernt vom Chart

REASON_RECOMPILE

2

Das Programm ist umcompiliert

REASON_CHARTCHANGE

3

Symbol oder Chartperiode wurde verändert

REASON_CHARTCLOSE

4

Das Chart wurde abgeschlossen

REASON_PARAMETERS

5

Eingabeparameter wurden vom Benutzer verändert  

REASON_ACCOUNT

6

Ein anderes Konto wurde aktiviert oder das Konto wurde mit dem Handelsserver neu verbunden, nachdem die Kontoeinstellungen geändert worden

REASON_TEMPLATE

7

andere Chartschablone wurde angewendet

REASON_INITFAILED

8

Der Wert bedeutet, dass Bearbeiter OnInit() Nichtnullwert zurückgegeben hat

REASON_CLOSE

9

Das Terminal wurde geschlossen

Kode des Deinitialisierungsgrundes wird auch als Parameter der vorbestimmten Funktion übertragen OnDeinit(const int reason).

Beispiel:

//+------------------------------------------------------------------+
//| get text description                                             |
//+------------------------------------------------------------------+
string getUninitReasonText(int reasonCode)
  {
   string text="";
//---
   switch(reasonCode)
     {
      case REASON_ACCOUNT:
         text="Account was changed";break;
      case REASON_CHARTCHANGE:
         text="Symbol or timeframe was changed";break;
      case REASON_CHARTCLOSE:
         text="Chart was closed";break;
      case REASON_PARAMETERS:
         text="Input-parameter was changed";break;
      case REASON_RECOMPILE:
         text="Program "+__FILE__+" was recompiled";break;
      case REASON_REMOVE:
         text="Program "+__FILE__+" was removed from chart";break;
      case REASON_TEMPLATE:
         text="New template was applied to chart";break;
      default:text="Another reason";
     }
//---
   return text;
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- Zweiter Weg , Kode des Deinitialisierungsgrundes zu bekommen 
   Print(__FUNCTION__,"_Kode des Deinitialisierungsgrundes = ",reason);
//--- Zweiter Weg, Kode des Deinitialisierungsgrundes zu bekommen 
   Print(__FUNCTION__,"_UninitReason = ",getUninitReasonText(_UninitReason));
  }