- CalendarCountryById
- CalendarEventById
- CalendarValueById
- CalendarCountries
- CalendarEventByCountry
- CalendarEventByCurrency
- CalendarValueHistoryByEvent
- CalendarValueHistory
- CalendarValueLastByEvent
- CalendarValueLast
CalendarValueLast
Belirtilen bir change_id ile takvim veritabanı durumundan bu yana ülkeye ve/veya para birimine göre sıralanan tüm etkinlikler için değer dizisini elde edin.
int CalendarValueLast(
|
Parametreler
change_id
[in][out] Change ID.
values[]
[out] Olay değerlerini almak için MqlCalendarValue tip dizisi. Takvim olaylarını yönetme örneğine bakın.
country_code=NULL
[in] Kod olarak ülke adı (ISO 3166-1 alpha-2)
currency=NULL
[in] Kod olarak ülke para birimi.
Geri dönüş değeri
Alınan olay değeri sayısı. Hata hakkında bilgi edinmek için, GetLastError() fonksiyonunu çağırın. Olası hatalar:
- 4001 – ERR_INTERNAL_ERROR (genel çalışma zamanı hatası),
- 4004 – ERR_NOT_ENOUGH_MEMORY (istek yürütmek için yeterli bellek yok),
- 5401 – ERR_CALENDAR_TIMEOUT (istek süresi sınırı aşıldı),
- 5400 – ERR_CALENDAR_MORE_DATA (dizi boyutu, tüm değerlerin açıklamalarını almak için yetersiz; yalnızca diziye sığan açıklamalar alındı),
- ArrayResize()'ın başarısız yürütme hataları
Not
Ekonomik takvim ile çalışmak için tüm fonksiyonlar alım-satım sunucusu zamanını (TimeTradeServer) kullanır. Bu; MqlCalendarValue yapısındaki zamanın ve CalendarValueHistoryByEvent/CalendarValueHistory fonksiyonlarındaki zaman girdilerinin, kullanıcının yerel zamanından ziyade, alım-satım sunucusu zaman diliminde ayarlandığı anlamına gelir.
Eğer events[] sabit uzunluklu dizi fonksiyona iletildiyse ve sonucun tamamını kaydetmek için yeterli alan yoksa, ERR_CALENDAR_MORE_DATA (5400) hatası etkinleştirilir.
Eğer change_id = 0 fonksiyona iletilirse, fonksiyon her zaman sıfır geri döndürür, ancak geçerli takvim veritabanı change_id halinde geri döndürülür.
country_code ve currency filtreleri için NULL ve "" değerleri eşdeğerdir ve filtrenin yokluğu anlamına gelir.
country_code için, MqlCalendarCountry yapısının kod alanı, örneğin "US", "RU" veya "EU" kullanılmalıdır.
currency için, MqlCalendarCountry yapısının currency alanı, örneğin "USD", "RUB" veya "EUR" kullanılmalıdır.
Filtreler bir arada uygulanır, yani mantıksal 'VE' sadece her iki koşulun (ülke ve para birimi) aynı anda karşılandığı olayların değerlerini seçmek için kullanılır.
Fonksiyon, belirli bir haber için diziyi ve haberin yeni değerlerini almak adına fonksiyonun sonraki çağrıları için kullanılabilecek yeni bir change_id yi geri döndürür. Böylece, bu fonksiyonu bilinen en son change_id ile çağırarak belirli bir habere ait değerleri güncellemek mümkündür.
MqlCalendarValue yapısı, actual_value, forecast_value, prev_value ve revised_prev_value alanlarındaki değerleri kontrol etmek ve ayarlamak için yöntemler sağlar. Değer belirlenmezse, alan LONG_MIN (-9223372036854775808) olarak ayarlanır.
Lütfen bu alanlarda bulunan değerlerin bir milyon ile çarpıldığını unutmayın. Bunun anlamı, CalendarValueById, CalendarValueHistoryByEvent, CalendarValueHistory, CalendarValueLastByEvent ve CalendarValueLast fonksiyonlarını kullanarak MqlCalendarValue'da değerler aldığınızda, alandaki değerlerin LONG_MIN'e eşit olup olmadığını kontrol etmeniz; alanda bir değer belirlenmişse, değeri elde etmek için değeri 1.000.000'a bölmeniz gerektiği anlamına gelir. Değerleri elde etmenin diğer bir yöntemi de MqlCalendarValue yapısının fonksiyonlarını kullanarak değerleri kontrol etmek ve elde etmektir.
Ekonomik takvim olaylarını dinleyen örnek Uzman Danışman:
#property description "Ekonomik takvim olay dinleyicisini geliştirmek adına"
|
Ayrıca bakınız
CalendarValueLast, CalendarValueHistory, CalendarValueHistoryByEvent, CalendarValueById