- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
Olay yönetimi
MQL5 dili önceden tanımlanmış belirli olayların yönetilmesini sağlar. Bu olayları yönetmek için, bir MQL5 programında fonksiyonların tanımlanmış olması gerekmektedir: fonksiyon adı, dönüş tipi, (varsa) bir parametre kümesi ve tipleri, olay yönetimi fonksiyonunun açıklamasına tam anlamıyla uyumlu olmalıdır.
Müşteri terminali olay yöneticisi, bir olayı yöneten fonksiyonları tanımlamak için dönüş ve parametre tiplerini kullanır. Eğer belirli bir fonksiyon aşağıdaki açıklamalara uyumlu olmayan bir dönüş tipine ve bazı parametrelere sahipse, bu şekildeki bir fonksiyon bir olayı yönetmek için kullanılamaz.
Fonksiyon |
Açıklama |
---|---|
Fonksiyon, Start olayının skriptte ayarlanan bazı eylemleri gerçekleştirmek için oluştuğunda çağrılır. |
|
Fonksiyon, çalışan bir MQL5 programını başlatmak için Init olayı oluştuğunda göstergeler ve uzman danışmanlarda çağrılır. |
|
Fonksiyon, çalışan bir MQL5 programını sonlandırmak için Deinit olayı oluştuğunda göstergeler ve uzman danışmanlarda çağrılır. |
|
Fonksiyon, yeni bir fiyatı(tik) işlemek için NewTick olayı oluştuğunda uzman danışmanlarda çağrılır. |
|
Fonksiyon, fiyat bilgisinin değişimini işlemek için Calculate olayı oluştuğunda göstergelerde çağrılır. |
|
Fonksiyon, Timer periyodik olayının terminal tarafından sabit zaman aralıklarında oluşturulmasıyla göstergeler ve uzman danışmanlarda çağrılır. |
|
Fonksiyon, bir işlem sunucusu üzerinde bir alım-satım işleminin sonunda oluşturulan Trade olayı sırasında uzman danışmanlarda çağrılır. |
|
Fonksiyon, bir işlem isteği gerçekleştirim sonuçlarını işlemek için TradeTransaction olayı oluştuğunda uzman danışmanlarda çağrılır. |
|
Fonksiyon, piyasa derinliğindeki değişiklikleri işlemek için BookEvent olayı oluştuğunda uzman danışmanlarda çağrılır. |
|
Fonksiyon, bir MQL5 programı veya bir kullanıcı tarafından yapılan grafik değişikliklerini işlemek için ChartEvent olayı oluştuğunda göstergelerde ve uzman danışmanlarda çağrılır. |
|
Fonksiyon, bir uzman danışmanın geçmiş veriler üzerinde test edilmesinden sonra gerekli eylemleri gerçekleştirmek için Tester olayı oluştuğunda uzman danışmanlarda çağrılır. |
|
Fonksiyon, strateji sınayıcısında optimizasyondan önce gerekli eylemleri gerçekleştirmek için TesterInit olayı oluştuğunda uzman danışmanlarda çağrılır. |
|
Fonksiyon, strateji sınayıcısında uzman danışman optimizasyonundan sonra TesterDeinit olayı oluştuğunda uzman danışmanlarda çağrılır. |
|
Fonksiyon, strateji sınayıcısında uzman danışman optimizasyonu sırasında yeni bir veri çerçevesinin gelişini işlemek için TesterPass olayı oluştuğunda uzman danışmanlarda çağrılır. |
Müşteri terminali gelen olayları ilişkili olan açık grafiklere gönderir. Ayrıca, olaylar grafikler tarafından (grafik olayları) yada MQL5 programları (özel olaylar) tarafından oluşturulabilir . Grafiksel objenin oluşumu/silinimi olaylarının meydana gelmesi CHART_EVENT_OBJECT_CREATE ve CHART_EVENT_OBJECT_DELETE grafik özelliklerin ayarlanması ile etkinleştirilebilir/devre dışı bırakılabilir. Her bir MQL5 uygulaması ve grafiği, yeni gelen tüm olayların yerleştiği kendisine ait olaylar sırasına(kuyruğuna) sahiptir.
Bir program sadece üzerinde çalışmakta olduğu grafikten olayları alır. Tüm olaylar alındıkları sıraya göre birbiri peşi sıra yönetilir. Eğer sıra zaten NewTick olayını içeriyorsa veya bu olay yönetilme aşamasındaysa, o zaman yeni NewTick olayı MQL5 uygulama sırasına eklenmez. Benzer şekilde, eğer ChartEvent zaten bir MQL5 programı sırası içerisinde veya bu gibi bir olay yönetiliyorsa, o zaman bu tip yeni bir olay sıraya yerleştirilmez. Zamanlayıcı(Timer) olayının yönetimi de aynı şekilde işlemden geçirilir – eğer Timer olayı zaten sırada veya yönetiliyorsa, yeni zamanlayıcı olayı sıraya konulmaz.
Olay sıraları sınırlı ancak yeterli bir boyuta sahiptir, bu nedenle sıra taşması doğru bir şekilde geliştirilmiş program için olası değildir. Sıra taştığında, yeni olaylar sıraya yerleştirilmeden atılır.
Olayları yönetmek için sonsuz döngüleri kullanmamanız şiddetle önerilir. Olası istisnalar tek bir Start olayını işleyen komut dosyalarıdır.
Kütüphaneler hiç bir olayı yönetmez.