- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnBookEvent
Fonksiyon, BookEvent olayı meydana geldiğinde göstergelerde ve uzman danışmanlarda çağrılır. Piyasa Derinliği değişikliklerini yönetmek içindir.
void OnBookEvent(
|
Parametreler
symbol
[in] BookEvent in geldiği sembolün adı
Geri dönüş değeri
Geri dönüş değeri yok
Not
Herhangi bir sembol için BookEvent olaylarını almak için, MarketBookAdd() fonksiyonunu kullanarak ilgili sembollere abone olun. İlgili sembol için BookEvent olaylarını almak amacıyla açılan aboneliği iptal etmek için, MarketBookRelease() fonksiyonunu çağırın.
BookEvent, tüm grafikte yayınlanır. Bu durum; bir grafikteki bir uygulamanın MarketBookAdd fonksiyonunu kullanarak BookEvent e abone olması durumunda, aynı grafikte başlatılan ve OnBookEvent() yöneticisine sahip olan diğer tüm göstergeler ve uzman danışmanların da bu olayı alması anlamına gelmektedir Bu nedenle, OnBookEvent() yöneticisine aktarılan bir sembol adını, symbol parametresi olarak analiz etmek gerekir.
Aynı grafikte çalışan tüm uygulamalar için, sembollere göre sıralanmış ayrı BookEvent sayaçları sağlanır. Bu, her bir grafiğin farklı sembollerde çoklu aboneliklere sahip olabileceği ve her sembol için bir sayacın sağlandığı anlamına gelir. BookEvent e abone olmak ve abonelikten çıkmak, belirtilen semboller için abonelik sayacını yalnızca bir grafikte değiştirir. Başka bir deyişle, aynı sembol için BookEvent e bitişik iki grafik olabilir, ancak farklı abonelik sayaç değerlerine sahip olabilirler.
Başlangıç abonelik sayaç değeri sıfırdır. Her bir MarketBookAdd() çağrısında, grafikte belirtilen bir sembol için abonelik sayacı bir arttırılır (MarketBookAdd()'deki grafik ve sembol eşleşmek zorunda değildir). MarketBookRelease() i çağırırken, grafikteki belirli bir sembol için abonelik sayacı bir azalır. Herhangi bir sembol için BookEvent olayları, sayaç sıfıra eşit olana kadar grafikte yayınlanır. Bu nedenle, çalışmasının sonunda MarketBookAdd () çağrılarını içeren her bir MQL5 programının, MarketBookRelease () i kullanarak her sembol için olay alımı aboneliğinden doğru bir şekilde ayrılması önemlidir. Bunu başarmak için, MarketBookAdd() ve MarketBookRelease() çağrılarının sayısı, MQL5 program ömrünün tamamı boyunca her çağrı için bile olmalıdır. Program içindeki bayrakların veya özel abonelik sayaçlarının kullanılması, BookEvent olaylarıyla güvenle çalışmanızı sağlar ve bu olayı aynı grafikteki üçüncü parti programlarında da almak için aboneliklerin devre dışı bırakılmasını engeller.
BookEvent olayları hiçbir zaman atlanmaz, bir önceki BookEvent yönetimi hala sonlanmamış olasa bile her zaman kuyruğa eklenir.
Örnek
//+------------------------------------------------------------------+
|
Ayrıca bakınız
MarketBookAdd, MarketBookRelease, MarketBookGet, OnTrade, OnTradeTransaction, OnTick, Olay yönetimi fonksiyonları, Program yürütme, Müşteri terminal olayları