CopyIndicatorBuffer
Obtém no vetor dados do buffer especificado do indicador especificado com a quantidade indicada.
Os dados no vetor são copiados de forma que o elemento mais antigo no tempo esteja no início da memória física alocada para o vetor. Existem três alternativas para a função.
Manuseio por posição inicial e número de itens necessários
bool vector::CopyIndicatorBuffer(
|
Manuseio por data inicial e número de itens necessários
bool vector::CopyIndicatorBuffer(
|
Manuseio por datas de início e término do intervalo de tempo necessário
bool vector::CopyIndicatorBuffer(
|
Parâmetros
indicator_handle
[in] Identificador do indicador obtido pela função de indicador apropriada.
buffer_index
[in] Número do buffer de indicador.
start_pos
[in] Número do primeiro item a ser copiado.
count
[in] Número de itens a serem copiados.
start_time
[in] Tempo de barra correspondente ao primeiro item.
stop_time
[in] Tempo de barra correspondente ao último item.
Valor retornado
Retorna true se for bem-sucedido; caso contrário, false se estiver incorreto.
Observação
Os elementos de dados a serem copiados (buffer do indicador com índice buffer_index) são contados a partir da posição inicial do presente para o passado, ou seja, uma posição inicial igual a 0 representa a barra atual (valor do indicador para a barra atual).
Ao copiar antecipadamente uma quantidade desconhecida de dados, é recomendável declarar um vetor sem especificar o tamanho (sem alocar memória para os dados), pois a função CopyBuffer() tenta alocar o tamanho do vetor receptor de acordo com o tamanho dos dados que estão sendo copiados.
Se for necessária uma cópia parcial dos valores do indicador, um vetor intermediário deverá ser usado para essa finalidade, vetor esse que receberá a cópia da quantidade necessária. E já a partir desse vetor intermediário, é feita a cópia item por item do número necessário de valores para os locais corretos do vetor receptor.
Se uma quantidade predefinida de dados tiver que ser copiada, é melhor declarar um vetor com tamanho especificado antecipadamente para evitar a alocação desnecessária de memória.
Ao solicitar dados de um indicador, se a série temporal solicitada ainda não tiver sido criada ou precisar ser baixada do servidor, a função retornará imediatamente false, mas o próprio processo de download/criação será iniciado.
Ao solicitar dados de um Expert Advisor ou script, ele iniciará o carregamento a partir do servidor se o terminal não tiver esses dados localmente ou começará a criar as séries temporais necessárias se os dados puderem ser criados a partir do histórico local, mas ainda não estiverem prontos. A função retornará a quantidade de dados que estarão prontos quando o tempo limite expirar.
Veja também