Доступ к таймсериям

Группа функций, предназначенных для доступа к ценовым данным любого доступного символа/периода.

Если запрашивается информация с другого графика (название инструмента и/или значение таймфрейма отличаются от текущих), то возможна ситуация, что в клиентском терминале не открыт соответствующий график и необходимые данные должны быть запрошены у сервера. В этом случае в переменную 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));