CopyTicksRange
Получает в матрицу или вектор тики из структуры MqlTick в указанном диапазоне дат. Отсчет элементов от стартовой позиции ведется от прошлого к настоящему, то есть тик с индексом 0 является самым старым. Для анализа тика необходимо проверять поле flags, которое сообщает, что именно было изменено в данном тике.
bool matrix::CopyTicksRange(
|
Метод вектора
bool vector::CopyTicksRange(
|
Параметры
symbol
[in] Символ.
flags
[in] Комбинация флагов из перечисления ENUM_COPY_TICKS, указывающих состав запрашиваемых данных. При копировании в вектор можно указать только одно значение из перечисления ENUM_COPY_TICKS, иначе будет ошибка.
from_msc
[in] Время, начиная с которого запрашиваются тики. Указывается в миллисекундах с 01.01.1970. Если параметр from_msc не указан, то отдаются тики от самого начала истории. Отдаются тики со временем >= from_msc.
to_msc
[in] Время, по которое запрашиваются тики. Указывается в миллисекундах с 01.01.1970. Отдаются тики со временем <= to_msc. Если параметр to_msc не указан, то отдаются все тики до конца истории.
Возвращаемое значение
Возвращает true в случае успеха, иначе false в случае ошибки. GetLastError() может возвращать следующие ошибки:
- ERR_HISTORY_TIMEOUT – время ожидание синхронизации тиков вышло, функция отдала всё что было.
- ERR_HISTORY_SMALL_BUFFER – статический буфер слишком маленький, отдано столько, сколько поместилось в массив.
- ERR_NOT_ENOUGH_MEMORY – не хватает памяти для получения истории из указаного диапазона в динамический массив тиков. Не удалось выделить нужный объем памяти под массиве тиков.
Чтобы узнать, какие именно данные изменились с текущим тиком, анализируйте его флаги:
- TICK_FLAG_BID – тик изменил цену бид
- TICK_FLAG_ASK – тик изменил цену аск
- TICK_FLAG_LAST – тик изменил цену последней сделки
- TICK_FLAG_VOLUME – тик изменил объем
- TICK_FLAG_BUY – тик возник в результате сделки на покупку
- TICK_FLAG_SELL – тик возник в результате сделки на продажу
Примечание
Метод CopyTicksRange() предназначен для запроса тиков из строго указанного диапазона, например, за конкретный день истории. В то время как CopyTicks() позволяет указать только начальную дату, например – получить все тики с начала месяца по текущий момент.
Смотри также