- Символы и таймфреймы
- Технические особенности организации и хранения таймсерий
- Получение характеристик массивов котировок
- Количество доступных баров (Bars/iBars)
- Поиск индекса бара по времени (iBarShift)
- Обзор Copy-функций для получения массивов котировок
- Получение котировок в виде массива структур MqlRates
- Раздельный запрос массивов цен, объемов, спредов, времени
- Чтение цены, объема, спреда и времени по индексу бара
- Поиск максимального и минимального значения в таймсерии
- Работа с массивами реальных тиков в структурах MqlTick
Раздельный запрос массивов цен, объемов, спредов, времени
Вместо запроса всех характеристик кодировок в виде массива MqlRates, можно читать только данные конкретного поля (цены, объема, спреда или времени) в отдельный массив. Для этого определено несколько функций, действующих по общим принципам, рассмотренным в разделе Обзор Copy-функций для получения массивов котировок.
Следующая схема объединяет описания всех прототипов.
Схема прототипов Copy-функций
В скрипте SeriesRates.mq5 воспользуемся функциями копирования цен OHLC, чтобы сравнить их с результатом вызова CopyRates.
void OnStart()
|
Запустив скрипт, получим в журнале следующие записи.
CopyRates(EURUSD,PERIOD_D1,D'2021.10.01',N,rates)=10 / ok [time] [open] [high] [low] [close] [tick_volume] [spread] [real_volume] [0] 2021.09.20 00:00:00 1.17272 1.17363 1.17004 1.17257 58444 0 0 [1] 2021.09.21 00:00:00 1.17248 1.17486 1.17149 1.17252 58514 0 0 [2] 2021.09.22 00:00:00 1.17240 1.17555 1.16843 1.16866 72571 0 0 [3] 2021.09.23 00:00:00 1.16860 1.17501 1.16835 1.17381 68536 0 0 [4] 2021.09.24 00:00:00 1.17379 1.17476 1.17007 1.17206 51401 0 0 [5] 2021.09.27 00:00:00 1.17255 1.17255 1.16848 1.16952 57807 0 0 [6] 2021.09.28 00:00:00 1.16940 1.17032 1.16682 1.16826 64793 0 0 [7] 2021.09.29 00:00:00 1.16825 1.16901 1.15894 1.15969 68964 0 0 [8] 2021.09.30 00:00:00 1.15963 1.16097 1.15626 1.15769 68517 0 0 [9] 2021.10.01 00:00:00 1.15740 1.16075 1.15630 1.15927 66777 0 0 CopyOpen(EURUSD,PERIOD_D1,D'2021.10.01',N,open)=10 / ok CopyHigh(EURUSD,PERIOD_D1,D'2021.10.01',N,high)=10 / ok CopyLow(EURUSD,PERIOD_D1,D'2021.10.01',N,low)=10 / ok CopyClose(EURUSD,PERIOD_D1,D'2021.10.01',N,close)=10 / ok Copied OHLC arrays match MqlRates array |
Напомним, что тиковый объем в поле tick_volume представляет собой простой счетчик тиков за период. Биржевой объем в поле real_volume равен нулю у небиржевых инструментов (как и у EURUSD, в данном случае).
Другой пример использования функции CopyTime был представлен в скрипте SeriesCopy.mq5 в разделе Обзор Copy-функций для получения массивов котировок.