OnDeinit

Fonksiyon, Deinit olayı meydana geldiğinde Uzman Danışmanlar ve göstergelerde çağrılır. Çalışan bir MQL5 programını sonlandırmak için kullanılır.

void  OnDeinit(
   const int  reason         // sonlandırma neden kodu
   );

Parametreler

reason

[in]  Sonlandırma neden kodu.

Geri dönüş değeri

Geri dönüş değeri yok

Not

Deinit olayı aşağıdaki durumlarda uzman danışmanlar ve göstergeler için oluşturulur:

  • MQL5 programının bağlı olduğu bir sembolün veya grafik zaman aralığının değişimi nedeniyle yeniden başlatma öncesinde;
  • Girdilerin değişimi nedeniyle yeniden başlatma öncesinde;
  • bir MQL5 programını kaldırmadan önce.

Reason parametresi aşağıdaki değerlere sahip olabilir:

Sabit

Değer

Açıklama

REASON_PROGRAM

0

Uzman danışman ExpertRemove() fonksiyonunu çağırarak çalışmayı durdurdu

REASON_REMOVE

1

Program grafikten kaldırıldı

REASON_RECOMPILE

2

Program tekrar derlendi

REASON_CHARTCHANGE

3

Bir sembol veya grafik zaman aralığı değişti

REASON_CHARTCLOSE

4

Grafik kapandı

REASON_PARAMETERS

5

Girdiler bir kullanıcı tarafından değiştirildi

REASON_ACCOUNT

6

Başka bir hesap etkinleştirildi veya hesap ayarlarındaki değişikliklerden dolayı alım-satım sunucusuna tekrar bağlanma gerçekleştirildi

REASON_TEMPLATE

7

Başka bir grafik şablonu uygulandı

REASON_INITFAILED

8

OnInit() yöneticisi sıfırdan farklı bir değer geri döndürdü

REASON_CLOSE

9

Terminal kapandı

Uzman danışman sonlandırma neden kodları, UninitializeReason() fonksiyonu veya önceden tanımlı _UninitReason değişkeninden de elde edilebilir.

Uzman danışman için örnek OnInit() ve OnDeinit() fonksiyonları

input int fake_parameter=3;      // kullanışsız parametre
//+------------------------------------------------------------------+
//| Uzman danışman başlatma fonksiyonu                               |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Programın derlendiği yapının numarasını elde edin
   Print(__FUNCTION__," Build #",__MQLBUILD__);
//--- Yeniden başlatma nedeni ayrıca OnInit()'de de elde edilebilir
   Print(__FUNCTION__," Sonlandırma neden kodu, uzman danışman yeniden başlatma sırasında da elde edilebilir");
//--- Bir sonlandırma neden kodunu elde etmenin birinci yolu
   Print(__FUNCTION__," _UninitReason = ",getUninitReasonText(_UninitReason));
//--- Bir sonlandırma neden kodunu elde etmenin ikinci yolu  
   Print(__FUNCTION__," UninitializeReason() = ",getUninitReasonText(UninitializeReason()));
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Uzman danışman sonlandırma fonksiyonu                            |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- Bir sonlandırma neden kodunu elde etmenin birinci yolu
   Print(__FUNCTION__," Deinitialization reason code = ",reason);
//--- Bir sonlandırma neden kodunu elde etmenin ikinci yolu
   Print(__FUNCTION__," _UninitReason = ",getUninitReasonText(_UninitReason));
//--- Bir sonlandırma neden kodunu elde etmenin üçüncü yolu  
   Print(__FUNCTION__," UninitializeReason() = ",getUninitReasonText(UninitializeReason()));
  }
//+------------------------------------------------------------------+
//| Sonlandırma neden kodunun metinsel açıklamasını geri döndürmek   |
//+------------------------------------------------------------------+
string getUninitReasonText(int reasonCode)
  {
   string text="";
//---
   switch(reasonCode)
     {
      case REASON_ACCOUNT:
         text="Hesap değişti";break;
      case REASON_CHARTCHANGE:
         text="Sembol yada zaman aralığı değişti";break;
      case REASON_CHARTCLOSE:
         text="Grafik kapandı";break;
      case REASON_PARAMETERS:
         text="Girde-parametresi değişti";break;
      case REASON_RECOMPILE:
         text="Program "+__FILE__+" yeniden derlendi";break;
      case REASON_REMOVE:
         text="Program "+__FILE__+" grafikten kaldırıldı";break;
      case REASON_TEMPLATE:
         text="Yeni şablon grafiğe uygulandı";break;
      default:text="Başka bir neden";
     }
//---
   return text;
  }

Ayrıca bakınız

OnInit, Olay yönetimi fonksiyonları, Program yürütme, Müşteri terminal olayları, Sonlandırma neden kodları, Değişkenlerin kapsamı ve ömrü, Nesneleri oluşturma ve silme