CopyTicksRange
Obtiene los ticks de la estructura MqlTick en una matriz o vector en el intervalo de fechas indicado.El conteo de elementos desde la posición de inicio se realiza del pasado hacia el presente, es decir, el tick con el índice 0 será el más antiguo. Para analizar el tick deberemos comprobar el campo flags, que indica exactamente qué ha cambiado en el tick en cuestión.
bool matrix::CopyTicksRange(
|
Método del vector
bool vector::CopyTicksRange(
|
Parámetros
symbol
[in] Símbolo.
flags
[in] Combinación de banderas de la enumeración ENUM_COPY_TICKS que indican la composición de los datos solicitados. Al copiar a un vector, podemos indicar solo un valor de la enumeración ENUM_COPY_TICKS, de lo contrario, ocurrirá un error.
from_msc
[in] Hora a partir de la cual se solicitan los ticks. Se especifica en milisegundos a partir del 01.01.1970. Si el parámetro from_msc no ha sido indicado, se proporcionarán los ticks desde el inicio de la historia. Se proporcionarán los ticks con la hora >= from_msc.
to_msc
[in] Hora hasta la que se solicitan los ticks. Se especifica en milisegundos a partir del 01.01.1970. Los ticks se retornan con la hora <= to_msc. Si no se especifica el parámetro to_msc, se retornarán todos los ticks hasta el final de la historia.
Valor retornado
Retorna true en caso de éxito, de lo contrario, retornará false en caso de error. GetLastError() puede retornar los siguientes errores:
- ERR_HISTORY_TIMEOUT - el tiempo de espera para sincronizar los ticks ha expirado, la función ha ofrecido todo lo que tenía.
- ERR_HISTORY_SMALL_BUFFER - el búfer estático es demasiado pequeño, se ha ofrecido todo lo que se puede colocar en la matriz.
- ERR_NOT_ENOUGH_MEMORY - no hay suficiente memoria para obtener en la matriz dinámica de ticks la historia del rango especificado. No se ha podido asignar la cantidad de memoria necesaria a la matriz de ticks.
Para saber exactamente qué datos han cambiado con el tick actual, analizaremos sus banderas:
- TICK_FLAG_BID el tick ha cambiado el precio Bid
- TICK_FLAG_ASK el tick ha cambiado el precio Ask
- TICK_FLAG_LAST el tick ha cambiado el precio de la última transacción
- TICK_FLAG_VOLUME el tick ha cambiado el volumen
- TICK_FLAG_BUY el tick ha aparecido como resultado de una transacción de compra
- TICK_FLAG_SELL el tick ha aparecido como resultado de una transacción de venta
Observación
El método CopyTicksRange() está pensado para solicitar los ticks de un rango estrictamente especificado, por ejemplo de un día concreto de la historia. A su vez, CopyTicks() permite especificar solo la fecha de inicio, por ejemplo, obtener todos los ticks desde principios de mes hasta el momento actual.
Ver también
Acceso a las series temporales e indicadores, CopyTicksRange