CopyIndicatorBuffer

Obtiene en un vector los datos del búfer indicado del indicador especificado en la cantidad especificada.

copyBuffer

Los elementos de los datos a copiar (el búfer de indicador con el índice buffer_index) se cuentan desde la posición de inicio partiendo del presente hacia el pasado, es decir, una posición de inicio igual a 0 indicará la barra actual (valor del indicador para la barra actual).

Al copiar una cantidad desconocida de datos, deberemos declarar el vector sin especificar el tamaño (sin asignar memoria a los datos), porque la función CopyBuffer() intentará asignar el tamaño del vector receptor al tamaño de los datos copiados.

Si queremos copiar los valores de los indicadores parcialmente, deberemos utilizar para ello un vector intermedio en el que se copie la cantidad necesaria, y ya desde este vector intermedio realizar el copiado elemento a elemento del número necesario de valores en los lugares apropiados del vector receptor.

Si se va a copiar una cantidad de datos conocida de antemano, será mejor declarar previamente el tamaño del vector para evitar sobreasignaciones de memoria innecesarias.

Los datos del vector se copiarán de forma que el elemento más antiguo se encuentre al principio de la memoria física asignada para el vector. Existen 3 variantes de la función.

Referenciación según la posición inicial y el número de elementos necesarios

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // handle del indicador
   ulong     buffer_index,         // número de búfer del indicador
   ulong     start_pos,            // desde dónde comenzamos 
   ulong     count                 // cuánto copiamos
   );

Referenciación según la fecha inicial y el número de elementos necesarios

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // handle del indicador
   ulong     buffer_index,         // número de búfer del indicador
   datetime  start_time,           // desde qué fecha
   ulong     count                 // cuánto copiamos
   );

Referenciación según la fecha inicial y final del intervalo temporal requerido.

bool  vector::CopyIndicatorBuffer(
   long      indicator_handle,     // handle del indicador
   ulong     buffer_index,         // número de búfer del indicador
   datetime  start_time,           // desde qué fecha
   datetime  stop_time             // hasta qué fecha
   );

Parámetros

indicator_handle

[in]  Manejador del indicador obtenido con la función de indicador correspondiente.

buffer_index

[in]  Número del búfer de indicador.

start_pos

[in]  Número del primer elemento copiado.

count

[in]  Número de elementos copiados.

start_time

[in]  Hora de la barra correspondiente al primer elemento.

stop_time

[in]  Hora de la barra correspondiente al último elemento.

Valor retornado

Retorna true en caso de éxito, o false en caso de error.

Observación

Al solicitar los datos desde el indicador, si las series temporales solicitadas aún no han sido construidas o deben ser cargadas desde el servidor, la función retornará de inmediato false, pero, en este caso, el propio proceso de carga/construcción será iniciado.

Al solicitar los datos desde un experto o script, se inicializará la carga desde el servidor, si el terminal no dispone de estos datos a nivel local; o bien comenzará la construcción de la serie temporal necesaria, si los datos se pueden construir a partir de la historia local, pero aún no están preparados. La función retornará la cantidad de datos que estarán listos cuando expire el tiempo de espera.

Ver también

CopyBuffer