CopyIndicatorBuffer
Получает в вектор данные указанного буфера указанного индикатора в указанном количестве.
Данные в вектор будут скопированы таким образом, что самый старый по времени элемент будет в начале физической памяти, отведенной под вектор. Существует 3 варианта функции.
Обращение по начальной позиции и количеству требуемых элементов
bool vector::CopyIndicatorBuffer(
|
Обращение по начальной дате и количеству требуемых элементов
bool vector::CopyIndicatorBuffer(
|
Обращение по начальной и конечной датам требуемого интервала времени
bool vector::CopyIndicatorBuffer(
|
Параметры
indicator_handle
[in] Хэндл индикатора, полученный соответствующей индикаторной функцией.
buffer_index
[in] Номер индикаторного буфера.
start_pos
[in] Номер первого копируемого элемента.
count
[in] Количество копируемых элементов.
start_time
[in] Время бара, соответствующее первому элементу.
stop_time
[in] Время бара, соответствующее последнему элементу.
Возвращаемое значение
Возвращает true в случае успеха, иначе false в случае ошибки.
Примечание
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_index) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара).
При копировании заранее неизвестного количества данных желательно объявлять вектор без указания размера (без распределения памяти для данных), так как функция CopyBuffer() старается распределить размер принимающего вектора под размер копируемых данных.
Если необходимо произвести частичное копирование значений индикатора, то для этих целей необходимо использовать промежуточный вектор, в который копируется требуемое количество. И уже из этого вектора-посредника произвести поэлементное копирование нужного количества значений в нужные места принимающего вектора.
Если необходимо копировать заранее известное количество данных, то лучше для этого предварительно объявить вектор с указанием размера, чтобы избежать излишнего перевыделения памяти.
При запросе данных из индикатора, если запрашиваемые таймсерии еще не построены или их необходимо загрузить с сервера, то функция сразу же вернет false, но при этом сам процесс загрузки/построения будет инициирован.
При запросе данных из эксперта или скрипта, будет инициирована загрузка с сервера, если локально этих данных у терминала нет, либо начнется построение нужной таймсерии, если данные можно построить из локальной истории, но они еще не готовы. Функция вернет то количество данных, которые будут готовы к моменту истечения таймаута.
Смотри также