Добавлен доступ к данным экономического календаря через MQL5-программы.
Новые функции
CalendarCountryById — получение описания страны по идентификатору.
bool CalendarCountryById(
const long country_id,
MqlCalendarCountry& country
);
CalendarEventById — получение описания события по идентификатору.
bool CalendarEventById(
const long event_id,
MqlCalendarEvent& event
);
CalendarValueById — получение описания значения события по идентификатору.
bool CalendarValueById(
const long value_id,
MqlCalendarValue& value
);
CalendarEventByCountry — получение массива доступных новостей по стране.
bool CalendarEventByCountry(
string country_code,
MqlCalendarEvent& events[]
);
CalendarEventByCurrency — получение массива доступных новостей по валюте, на которую они влияют.
bool CalendarEventByCurrency(
string currency,
MqlCalendarEvent& events[]
);
CalendarValueHistoryByEvent — получение массива значений за указанный период времени по идентификатору события.
bool CalendarValueHistoryByEvent(
ulong event_id,
MqlCalendarValue& values[],
datetime datetime_from,
datetime datetime_to=0
);
CalendarValueHistory — получение массива значений по всем
событиям за заданный период времени с фильтрацией по стране и/или
валюте.
bool CalendarValueHistory(
MqlCalendarValue& values[],
datetime datetime_from,
datetime datetime_to=0,
string country_code=NULL,
string currency=NULL
);
CalendarValueLastByEvent — получение массива последних
значений события по идентификатору. Эта функция позволяет запрашивать
только те значения, которые изменились с момента последнего запроса. Для
этого используется ее in/out параметр "change_id".
При каждом
изменении базы данных календаря у него обновляется свойство "change_id" —
идентификатор последнего изменения. При запросе данных вы указываете
"change_id" и терминал возвращает вам события, появившиеся в календаре,
начиная с этого момента, а также текущее значение "change_id", которое
можно использовать для следующего запроса. При первом вызове функции
укажите нулевой "change_id", функция при этом не вернет никаких событий,
но передаст вам текущий "change_id" для последующих запросов.
bool CalendarValueHistory(
ulong event_id,
ulong& change_id,
MqlCalendarValue& values[]
);
CalendarValueLast — получение массива последних значений по
всем событиям с фильтрацией по стране и/или валюте. Эта функция позволяет
запрашивать только те значения, которые изменились с момента последнего
запроса. Аналогично CalendarValueLastByEvent, для запроса используется
свойство "change_id".
bool CalendarValueHistory(
ulong event_id,
ulong& change_id,
MqlCalendarValue& values[],
string country_code=NULL,
string currency=NULL
);
Новые структуры
MqlCalendarCountry — описание страны.
struct MqlCalendarCountry
{
ulong id;
string name;
string code;
string currency;
string currency_symbol;
string url_name;
};
MqlCalendarEvent — описание события.
struct MqlCalendarEvent
{
ulong id;
ENUM_CALENDAR_EVENT_TYPE type;
ENUM_CALENDAR_EVENT_SECTOR sector;
ENUM_CALENDAR_EVENT_FREQUENCY frequency;
ENUM_CALENDAR_EVENT_TIMEMODE time_mode;
ulong country_id;
ENUM_CALENDAR_EVENT_UNIT unit;
ENUM_CALENDAR_EVENT_IMPORTANCE importance;
ENUM_CALENDAR_EVENT_MULTIPLIER multiplier;
uint digits;
string source_url;
string event_code;
string name;
};
MqlCalendarValue — описание значения события.
struct MqlCalendarValue
{
ulong id;
ulong event_id;
datetime time;
datetime period;
int revision;
long actual_value;
long prev_value;
long revised_prev_value;
long forecast_value;
ENUM_CALENDAR_EVENT_IMPACRT impact_type;
};
Новые перечисления
enum ENUM_CALENDAR_EVENT_FREQUENCY
{
CALENDAR_FREQUENCY_NONE =0,
CALENDAR_FREQUENCY_WEEK =1,
CALENDAR_FREQUENCY_MONTH =2,
CALENDAR_FREQUENCY_QUARTER =3,
CALENDAR_FREQUENCY_YEAR =4,
CALENDAR_FREQUENCY_DAY =5,
};
enum ENUM_CALENDAR_EVENT_TYPE
{
CALENDAR_TYPE_EVENT =0,
CALENDAR_TYPE_INDICATOR =1,
CALENDAR_TYPE_HOLIDAY =2,
};
enum ENUM_CALENDAR_EVENT_SECTOR
{
CALENDAR_SECTOR_NONE =0,
CALENDAR_SECTOR_MARKET =1,
CALENDAR_SECTOR_GDP =2,
CALENDAR_SECTOR_JOBS =3,
CALENDAR_SECTOR_PRICES =4,
CALENDAR_SECTOR_MONEY =5,
CALENDAR_SECTOR_TRADE =6,
CALENDAR_SECTOR_GOVERNMENT =7,
CALENDAR_SECTOR_BUSINESS =8,
CALENDAR_SECTOR_CONSUMER =9,
CALENDAR_SECTOR_HOUSING =10,
CALENDAR_SECTOR_TAXES =11,
CALENDAR_SECTOR_HOLIDAYS =12,
};
enum ENUM_CALENDAR_EVENT_IMPORTANCE
{
CALENDAR_IMPORTANCE_NONE =0,
CALENDAR_IMPORTANCE_LOW =1,
CALENDAR_IMPORTANCE_MODERATE =2,
CALENDAR_IMPORTANCE_HIGH =3,
};
enum ENUM_CALENDAR_EVENT_UNIT
{
CALENDAR_UNIT_NONE =0,
CALENDAR_UNIT_PERCENT =1,
CALENDAR_UNIT_CURRENCY =2,
CALENDAR_UNIT_HOUR =3,
CALENDAR_UNIT_JOB =4,
CALENDAR_UNIT_RIG =5,
CALENDAR_UNIT_USD =6,
CALENDAR_UNIT_PEOPLE =7,
CALENDAR_UNIT_MORTGAGE =8,
CALENDAR_UNIT_VOTE =9,
CALENDAR_UNIT_BARREL =10,
CALENDAR_UNIT_CUBICFEET =11,
CALENDAR_UNIT_POSITION =12,
CALENDAR_UNIT_BUILDING =13
};
enum ENUM_CALENDAR_EVENT_MULTIPLIER
{
CALENDAR_MULTIPLIER_NONE =0,
CALENDAR_MULTIPLIER_THOUSANDS =1,
CALENDAR_MULTIPLIER_MILLIONS =2,
CALENDAR_MULTIPLIER_BILLIONS =3,
CALENDAR_MULTIPLIER_TRILLIONS =4,
};
enum ENUM_CALENDAR_EVENT_IMPACRT
{
CALENDAR_IMPACT_NA =0,
CALENDAR_IMPACT_POSITIVE =1,
CALENDAR_IMPACT_NEGATIVE =2,
};
enum ENUM_CALENDAR_EVENT_TIMEMODE
{
CALENDAR_TIMEMODE_DATETIME =0,
CALENDAR_TIMEMODE_DATE =1,
CALENDAR_TIMEMODE_NOTIME =2,
CALENDAR_TIMEMODE_TENTATIVE =3,
};
Новые коды ошибок
ERR_CALENDAR_MORE_DATA =5400,
ERR_CALENDAR_TIMEOUT =5401,
ERR_CALENDAR_NO_DATA =5402,