CalendarValueHistoryByEvent
Получает массив значений по всем событиям на заданном диапазоне времени по идентификатору события.
int CalendarValueHistoryByEvent(
ulong event_id,
MqlCalendarValue& values[],
datetime datetime_from,
datetime datetime_to=0
);
|
Параметры
event_id
[in] Идентификатор события.
values[]
[out] Массив типа MqlCalendarValue для получения значений событиий. Смотри пример обработки событий календаря.
datetime_from
[in] Начальная дата диапазона времени, из которого выбираются события по заданному идентификатору, при этом datetime_from < datetime_to.
datetime_to=0
[in] Конечная дата диапазона времени, из которого выбираются события по заданному идентификатору. Если параметр datetime_to не задан (или равен 0), то будут возвращены все значения событий от заданной даты datetime_from, имеющиеся в базе Календаря, в том числе и значения событий, которые запланированы на будущее.
Возвращаемое значение
- 4001 – ERR_INTERNAL_ERROR (общая ошибка исполняющей системы),
- 4004 – ERR_NOT_ENOUGH_MEMORY (не достаточно памяти для выполнения запроса),
- 5401 – ERR_CALENDAR_TIMEOUT (превышен лимит запроса по времени),
- 5400 – ERR_CALENDAR_MORE_DATA (размер массива недостаточен для получения описаний всех значений, поэтому получили только то, что вместилось),
struct MqlCalendarValue
{
...
long actual_value; // актуальное значение события
long prev_value; // предыдущее значение события
long revised_prev_value; // пересмотренное предыдущее значение события
long forecast_value; // прогнозное значение события
...
};
|
Примечание
Пример:
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- код страны для Европейского союза по стандарту ISO 3166-1 Alpha-2
string EU_code="EU";
//--- получим события для Евросоюза
MqlCalendarEvent events[];
int events_count=CalendarEventByCountry(EU_code,events);
//--- выведем события для Евросоюза в Журнал
if(events_count>0)
{
PrintFormat("События для Европейского союза: %d",events_count);
//--- сократим список событий, для изучения достаточно оставить 10
ArrayResize(events,10);
ArrayPrint(events);
}
//--- видими, что событие "ECB Interest Rate Decision" имеет event_id=999010007
ulong event_id=events[6].id; // id этого события может поменяться в Календаре, поэтому сверяйте
string event_name=events[6].name; // имя события из Календаря
PrintFormat("Получим значения для события event_name=%s event_id=%d",event_name,event_id);
//--- получим все значения события "ECB Interest Rate Decision"
MqlCalendarValue values[];
//--- зададим границы диапазона, из которого берем события
datetime date_from=0; // берем все события с начала доступной истории
datetime date_to=D'01.01.2016'; // берем события не старше 2016 года
if(CalendarValueHistoryByEvent(event_id,values,date_from,date_to))
{
PrintFormat("Получены значения события %s: %d",
event_name,ArraySize(values));
//--- сократим список значений, для изучения достаточно оставить 10
ArrayResize(values,10);
ArrayPrint(values);
}
else
{
PrintFormat("Ошибка! Не удалось получить значения для события event_id=%d",event_id);
PrintFormat("Код ошибки: %d",GetLastError());
}
}
//---
/*
Результат:
События для Европейского союза: 56
[id] [type] [sector] [frequency] [time_mode] [country_id] [unit] [importance] [multiplier] [digits] [source_url] [event_code] [name] [reserv
[0] 999010001 0 5 0 0 999 0 2 0 0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-non-monetary-policy-meeting" "ECB Non-monetary Policy Meeting"
[1] 999010002 0 5 0 0 999 0 2 0 0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-monetary-policy-meeting-accounts" "ECB Monetary Policy Meeting Accounts"
[2] 999010003 0 5 0 0 999 0 3 0 0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-monetary-policy-press-conference" "ECB Monetary Policy Press Conference"
[3] 999010004 0 5 0 0 999 0 3 0 0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-president-draghi-speech" "ECB President Draghi Speech"
[4] 999010005 0 5 0 0 999 0 2 0 0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-vice-president-vitor-constancio-speech" "ECB Vice President Constancio Speech"
[5] 999010006 1 5 0 0 999 1 3 0 2 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-deposit-rate-decision" "ECB Deposit Facility Rate Decision"
[6] 999010007 1 5 0 0 999 1 3 0 2 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-interest-rate-decision" "ECB Interest Rate Decision"
[7] 999010008 0 5 0 0 999 0 2 0 0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-economic-bulletin" "ECB Economic Bulletin"
[8] 999010009 1 5 0 0 999 2 2 3 3 "https://www.ecb.europa.eu/home/html/index.en.html" "targeted-ltro" "ECB Targeted LTRO"
[9] 999010010 0 5 0 0 999 0 2 0 0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-executive-board-member-praet-speech" "ECB Executive Board Member Praet Speech"
Получим значения для события event_name=ECB Interest Rate Decision event_id=999010007
Получены значения события ECB Interest Rate Decision: 102
[id] [event_id] [time] [period] [revision] [actual_value] [prev_value] [revised_prev_value] [forecast_value] [impact_type] [reserved]
[0] 2776 999010007 2007.03.08 11:45:00 1970.01.01 00:00:00 0 3750000 4250000 -9223372036854775808 -9223372036854775808 0 0
[1] 2777 999010007 2007.05.10 11:45:00 1970.01.01 00:00:00 0 3750000 3750000 -9223372036854775808 -9223372036854775808 0 0
[2] 2778 999010007 2007.06.06 11:45:00 1970.01.01 00:00:00 0 4000000 3750000 -9223372036854775808 -9223372036854775808 0 0
[3] 2779 999010007 2007.07.05 11:45:00 1970.01.01 00:00:00 0 4000000 4000000 -9223372036854775808 -9223372036854775808 0 0
[4] 2780 999010007 2007.08.02 11:45:00 1970.01.01 00:00:00 0 4000000 4000000 -9223372036854775808 -9223372036854775808 0 0
[5] 2781 999010007 2007.09.06 11:45:00 1970.01.01 00:00:00 0 4000000 4000000 -9223372036854775808 -9223372036854775808 0 0
[6] 2782 999010007 2007.10.04 11:45:00 1970.01.01 00:00:00 0 4000000 4000000 -9223372036854775808 -9223372036854775808 0 0
[7] 2783 999010007 2007.11.08 12:45:00 1970.01.01 00:00:00 0 4000000 4000000 -9223372036854775808 -9223372036854775808 0 0
[8] 2784 999010007 2007.12.06 12:45:00 1970.01.01 00:00:00 0 4000000 4000000 -9223372036854775808 -9223372036854775808 0 0
[9] 2785 999010007 2008.01.10 12:45:00 1970.01.01 00:00:00 0 4000000 4000000 -9223372036854775808 -9223372036854775808 0 0
*/
|
Смотри также
CalendarCountries, CalendarEventByCountry, CalendarValueHistory, CalendarEventById, CalendarValueById