CopyTicksRange

La función obtiene en la matriz ticks_array los ticks en el formato MqlTick en el rango de fechas indicado. Además, la indexación se realiza del pasado hacia el presente, es decir, el tick con el número 0 es el más antiguo en la matriz. Para analizar un tick es necesario comprobar el campo flags, que informa sobre lo que  ha cambiado exactamente.

int  CopyTicksRange(
   const string     symbol_name,           // nombre del símbolo
   MqlTick&         ticks_array[],         // matriz para la recepción de ticks
   uint             flags=COPY_TICKS_ALL,  // bandera que define el tipo de ticks recibidos
   ulong            from_msc=0,            // fecha a partir de la cual se solicitan los ticks
   ulong            to_msc=0               // fecha de la que solicitan los ticks
   );

Parámetros

symbol_name

[in]  Símbolo.

ticks_array

[out]  Matriz estática o dinámica MqlTick para recibir los ticks. Si en la matriz dinámica no caben todos los ticks del intervalo de tiempo solicitado, solo se recibirán tantos ticks como quepan en la matriz. En este caso, además, la función generará el error ERR_HISTORY_SMALL_BUFFER (4407) .

flags

[in]  Bandera que define el tipo de ticks solicitados. COPY_TICKS_INFO — ticks llamados por el cambio de Bid y/o Ask, COPY_TICKS_TRADE — ticks con los cambios Last y Volume, COPY_TICKS_ALL — todos los ticks. Con cualquier tipo de solicitud, en los campos restantes de la estructura MqlTick se acabarán de escribir los valores del tick anterior.

from_msc

[in]  Fecha a partir de la cual se solicitan los ticks. Se indica en milisegundos desde el 01.01.1970. Si el parámetro from_msc no ha sido indicado, se proporcionarán los ticks desde el comienzo de la historia. Se entregan los ticks con la hora >= from_msc.

to_msc

[in]   Fecha sobre la que se solicitan los ticks. Se indica en milisegundos desde el 01.01.1970. Se entregan los ticks con la fecha y hora <= to_msc. Si el parámetro to_msc no se ha indicado, se proporcionarán todos los ticks hasta el final de la historia.

Valor devuelto

Número de ticks copiados, o bien -1, en caso de error. GetLastError() puede retornar los siguientes errores:

  • ERR_HISTORY_TIMEOUT — el tiempo de espera de la sicronización de ticks ha terminado, la función ha entregado todo lo que estaba disponible.
  • ERR_HISTORY_SMALL_BUFFER — el búfer estático es demasiado pequeño, se ha entregado todo lo que cabía en la matriz.
  • ERR_NOT_ENOUGH_MEMORY — no hay memoria suficiente para recibir la historia del rango indicado en la matriz dinámica de ticks. No se ha logrado asignar el volumen de memoria necesario para la matriz de datos.

Nota

La función CopyTicksRange() se ha pensado para solicitar los ticks de un antiguo rango solicitado, por ejemplo, de un día concreto. Mientras que CopyTicks(), por su parte, permite indicar solo la fecha inicial, por ejemplo, obtener todos los ticks desde el inicio del mes hasta el momento actual.

Vea también

SymbolInfoTick, Estructura para obtener los precios actuales, OnTick, CopyTicks