Группа функций, предназначенных для доступа к ценовым данным любого доступного символа/периода.
Если запрашивается информация с другого графика (название инструмента и/или значение таймфрейма отличаются от текущих), то возможна ситуация, что в клиентском терминале не открыт соответствующий график и необходимые данные должны быть запрошены у сервера. В этом случае в переменную last_error будет помещена ошибка ERR_HISTORY_WILL_UPDATED (4066 — запрошенные исторические данные в состоянии обновления) и необходимо через некоторое время повторить попытку запроса (см. пример ArrayCopySeries()).
При тестировании ценовые данные того же самого символа, но другого таймфрейма, моделируются точно, за исключением объемов. Объемы других таймфреймов не моделируются. Ценовые данные других символов не моделируются. Во всех случаях количество баров в таймсериях моделируется точно
iBars
int iBars(string symbol, int timeframe)
Возвращает количество баров на определенном графике.
Для текущего графика информация о количестве баров находится в предопределенной переменной Bars.
Параметры:
symbol — Символьное имя инструмента. NULL означает текущий символ.
timeframe — Период. Может быть одним из периодов графика. 0 означает период текущего графика.
Пример:
Print("Bar count on the 'EURUSD,H1' is ",iBars("EURUSD",PERIOD_H1));
iBarShift
int iBarShift(string symbol, int timeframe, datetime time, bool exact=false)
Поиск бара по времени. Функция возвращает смещение бара, которому принадлежит указанное время. Если для указанного времени бар отсутствует («дыра» в истории), то функция возвращает, в зависимости от параметра exact, -1 или смещение ближайшего бара.
Параметры:
symbol — Символьное имя инструмента. NULL означает текущий символ.
timeframe — Период. Может быть одним из периодов графика. 0 означает период текущего графика.
time — Значение времени для поиска.
exact — Возвращаемое значение если бар не найден. FALSE — iBarShift возвращает ближайший. TRUE — iBarShift возвращает -1.
Пример:
datetime some_time=D'2017.08.24 17:00'; int shift=iBarShift("EUROUSD",PERIOD_M1,some_time); Print("shift of bar with open time ",TimeToStr(some_time)," is ",shift);
iClose
double iClose(string symbol, int timeframe, int shift)
Возвращает значение цены закрытия указанного параметром shift бара с соответствующего графика (symbol, timeframe). В случае ошибки функция возвращает 0. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
Для текущего графика информация о ценах закрытия находится в предопределенном массиве Close[].
Параметры:
symbol — Символьное имя инструмента. NULL означает текущий символ.
timeframe — Период. Может быть одним из периодов графика. 0 означает период текущего графика.
shift — Индекс получаемого значения из таймсерии (сдвиг относительно текущего бара на указанное количество периодов назад).
Пример:
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ", iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ", iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));
iHigh
double iHigh(string symbol, int timeframe, int shift)
Возвращает значение максимальной цены указанного параметром shift бара с соответствующего графика (symbol, timeframe). В случае ошибки функция возвращает 0. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
Для текущего графика информация о максимальных ценах находится в предопределенном массиве High[].
Параметры:
symbol — Символьное имя инструмента. NULL означает текущий символ.
timeframe — Период. Может быть одним из периодов графика. 0 означает период текущего графика.
shift — Индекс получаемого значения из таймсерии (сдвиг относительно текущего бара на указанное количество периодов назад).
Пример:
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ", iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ", iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));
iHighest
int iHighest(string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)
Возвращает индекс найденного наибольшего значения (смещение относительно текущего бара).
Параметры:
symbol — Символьное имя инструмента, на данных которого будет производиться поиск. NULL означает текущий символ.
timeframe — Период. Может быть одним из периодов графика. 0 означает период текущего графика.
type — Идентификатор таймсерии. Может быть любым из значений иденитификаторов таймсерий.
count — Число элементов таймсерии (в направлении от текущего бара в сторону возрастания индекса), среди которых должен быть произведен поиск.
start — Индекс (смещение относительно текущего бара) начального бара, с которого начинается поиск наибольшего значения. Отрицательные значения игнорируются и заменяются нулевым значением.
Пример:
double val; // расчет максимального значения цены на 20 последовательных барах // с индекса 4 по индекс 23 включительно на текущем графике val=High[iHighest(NULL,0,MODE_HIGH,20,4)];
iLow
double iLow(string symbol, int timeframe, int shift)
Возвращает значение минимальной цены указанного параметром shift бара с соответствующего графика (symbol, timeframe). В случае ошибки функция возвращает 0. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
Для текущего графика информация о минимальных ценах находится в предопределенном массиве Low[].
Параметры:
symbol — Символьное имя инструмента. NULL означает текущий символ.
timeframe — Период. Может быть одним из периодов графика. 0 означает период текущего графика.
shift — Индекс получаемого значения из таймсерии (сдвиг относительно текущего бара на указанное количество периодов назад).
Пример:
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ", iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ", iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));
iLowest
int iLowest(string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)
Возвращает индекс найденного наименьшего значения (смещение относительно текущего бара).
Параметры:
symbol — Символьное имя инструмента, на данных которого будет производиться поиск. NULL означает текущий символ.
timeframe — Период. Может быть одним из значений периодов графика. 0 означает период текущего графика.
type — Идентификатор таймсерии. Может быть любым из значений идентификаторов таймсерий.
count — Число элементов таймсерии (в направлении от текущего бара в сторону возрастания индекса), среди которых должен быть произведен поиск.
start — Смещение (относительно текущего) начального бара, с которого начинается поиск наименьшего значения.
Пример:
double val = Low[iLowest(NULL,0, MODE_LOW, 10, 10)];
iOpen
double iOpen(string symbol, int timeframe, int shift)
Возвращает значение цены открытия указанного параметром shift бара с соответствующего графика (symbol, timeframe). В случае ошибки функция возвращает 0. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
Для текущего графика информация о ценах открытия находится в предопределенном массиве Open[].
Параметры:
symbol — Символьное имя инструмента. NULL означает текущий символ.
timeframe — Период. Может быть одним из периодов графика. 0 означает период текущего графика.
shift — Индекс получаемого значения из таймсерии (сдвиг относительно текущего бара на указанное количество периодов назад).
Пример:
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ", iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ", iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));
iTime
datetime iTime(string symbol, int timeframe, int shift)
Возвращает значение времени открытия указанного параметром shift бара с соответствующего графика (symbol, timeframe). В случае ошибки функция возвращает 0. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
Для текущего графика информация о времени открытия каждого бара находится в предопределенном массиве Time[].
Параметры:
symbol — Символьное имя инструмента. NULL означает текущий символ.
timeframe — Период. Может быть одним из периодов графика. 0 означает период текущего графика.
shift — Индекс получаемого значения из таймсерии (сдвиг относительно текущего бара на указанное количество периодов назад).
Пример:
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ", iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ", iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));
iVolume
double iVolume(string symbol, int timeframe, int shift)
Возвращает значение тикового объема указанного параметром shift бара с соответствующего графика (symbol, timeframe). В случае ошибки функция возвращает 0. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
Для текущего графика информация о тиковых объемах каждого бара находится в предопределенном массиве Volume[].
Параметры:
symbol — Символьное имя инструмента. NULL означает текущий символ.
timeframe — Период. Может быть одним из периодов графика. 0 означает период текущего графика.
shift — Индекс получаемого значения из таймсерии (сдвиг относительно текущего бара на указанное количество периодов назад).
Пример:
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ", iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ", iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));