- Символы и таймфреймы
- Технические особенности организации и хранения таймсерий
- Получение характеристик массивов котировок
- Количество доступных баров (Bars/iBars)
- Поиск индекса бара по времени (iBarShift)
- Обзор Copy-функций для получения массивов котировок
- Получение котировок в виде массива структур MqlRates
- Раздельный запрос массивов цен, объемов, спредов, времени
- Чтение цены, объема, спреда и времени по индексу бара
- Поиск максимального и минимального значения в таймсерии
- Работа с массивами реальных тиков в структурах MqlTick
Получение характеристик массивов котировок
Перед чтением массивов таймсерий бывает полезно убедиться в их наличии и соответствии характеристик ожиданиям. Для получения основных свойств, таких как глубина доступной истории в терминале и на сервере, количество построенных баров по конкретному сочетанию символ/период и отсутствии разночтений в котировках между терминалом и сервером предназначена функция SeriesInfoInteger.
Функция имеет 2 формы: первая непосредственно возвращает запрошенное значение (типа long), а вторая использует для этого четвертый параметр result, передаваемый по ссылке. При этом вторая форма возвращает признак успеха (true) или ошибки (false). В любом случае код ошибки можно узнать с помощью функции GetLastError.
long SeriesInfoInteger(const string symbol, ENUM_TIMEFRAMES timeframe, ENUM_SERIES_INFO_INTEGER property)
bool SeriesInfoInteger(const string symbol, ENUM_TIMEFRAMES timeframe, ENUM_SERIES_INFO_INTEGER property, long &result)
Функция позволяет узнать одно из свойств временного ряда для указанного символа и таймфрейма, или в целом для всей истории по символу. Запрашиваемое свойство идентифицируется третьим аргументом типа ENUM_SERIES_INFO_INTEGER. Это перечисление включает все доступные свойства:
Идентификатор |
Описание |
Тип свойства |
---|---|---|
SERIES_BARS_COUNT |
Количество баров по символу/периоду, см. Bars |
long |
SERIES_FIRSTDATE |
Самая первая дата по символу/периоду |
datetime |
SERIES_LASTBAR_DATE |
Время открытия последнего бара по символу/периоду |
datetime |
SERIES_SYNCHRONIZED |
Признак синхронизированности данных по символу/периоду на терминале и на сервере |
bool |
SERIES_SERVER_FIRSTDATE |
Самая первая дата в истории по символу на сервере независимо от периода |
datetime |
SERIES_TERMINAL_FIRSTDATE |
Самая первая дата в истории по символу в клиентском терминале независимо от периода |
datetime |
В зависимости от сути свойства полученную величину следует приводить к значению конкретного типа (см. столбец Тип свойства).
Все свойства возвращаются по состоянию на текущий момент.
В скрипте SeriesInfo.mq5 приводится пример запроса всех свойств.
void OnStart()
|
Вот пример результата, полученного на EURUSD, H1, на сервере MQ Demo:
SeriesInfoInteger(NULL,0,SERIES_BARS_COUNT)=10001 / ok
|