MQL4 - automated forex trading   /  

Документация

Справочник MQL4  Операции с массивами  ArrayCopyRates

 
Используй возможности
MQL5 в MetaTrader 5
Learn possibilities of the new MQL5
Интересуешься новым?
Доступна справка по MQL5
int ArrayCopyRates( void dest_array[], string symbol=NULL, int timeframe=0)
Копирует в двухмерный массив, вида RateInfo[][6], данные баров текущего графика и возвращает количество скопированных баров, либо -1 в случае неудачи. Первое измерение содержит количество баров. Второе измерение имеет 6 элементов со значениями:
0 - время (time),
1 - цена открытия (open),
2 - наименьшая цена (low),
3 - наивысшая цена (high),
4 - цена закрытия (close),
5 - объём (volume).

Если копируются данные "чужого" инструмента и/или таймфрейма, то возможна ситуация отсутствия требуемых данных. В этом случае в переменную last_error будет помещена ошибка ERR_HISTORY_WILL_UPDATED (4066 - запрошенные исторические данные в состоянии обновления) и необходимо через некоторое время повторить попытку копирования.

Замечания: обычно массив используется, чтобы передать данные в DLL функцию.
Реального распределения памяти под массив данных и копирования не происходит. При обращении к такому массиву производится перенаправление доступа.
Параметры:
dest_array[]   -   Ссылка на двумерный массив.
symbol   -   Наименование инструмента (символ валютной пары).
timeframe   -   Период. Может быть любым значением из перечисленных периодов.
Пример:
double array1[][6];
ArrayCopyRates(array1,"EURUSD", PERIOD_H1);
Print("Текущий бар ",TimeToStr(array1[0][0]),"цена открытия ", array1[0][1]);