- CalendarCountryById
- CalendarEventById
- CalendarValueById
- CalendarCountries
- CalendarEventByCountry
- CalendarEventByCurrency
- CalendarValueHistoryByEvent
- CalendarValueHistory
- CalendarValueLastByEvent
- CalendarValueLast
CalendarValueHistory
Ülkeye ve/veya para birimine göre sıralan belirli bir zaman aralığındaki tüm olaylar için değer dizisini elde edin.
bool CalendarValueHistory(
|
Parametreler
values[]
[out] Olay değerlerini almak için MqlCalendarValue tip dizisi. Takvim olaylarını yönetme örneğine bakın.
datetime_from
[in] Olayların belirtilen bir ID tarafından seçildiği zaman aralığının başlangıç tarihi (datetime_from < datetime_to durumundayken).
datetime_to=0
[in] Olayların belirtilen bir ID tarafından seçildiği zaman aralığının bitiş tarihi. Eğer datetime_to ayarlanmadıysa (veya 0 ise), Takvim veritabanındaki belirtilen datetime_from tarihinden başlayarak tüm olay değerleri (gelecekteki olayların değerleri dahil) geri döndürülür.
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
Başarılı olursa true, aksi takdirde false olarak geri döner. 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 datetime_to ayarlanmadıysa (veya 0 ise), Takvim veritabanındaki belirtilen datetime_from tarihinden başlayarak tüm olay değerleri (gelecekteki olayların değerleri dahil) 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.
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.
Örnek:
//+------------------------------------------------------------------+
|
Ayrıca bakınız
CalendarCountries, CalendarEventByCountry, CalendarValueHistoryByEvent, CalendarEventById, CalendarValueById