Справочник MQL4
Операции с массивами
ArrayCopyRates
| 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]);
|
|
|