Copiar series temporales en matrices y vectores

El método matrix<T>::CopyRates copia las series temporales con el historial de cotizaciones directamente en una matriz o vector. Este método funciona de forma similar a las funciones que veremos en detalle en la Parte 5, en el capítulo sobre series temporales, a saber: CopyRates y funciones Copy independientes para cada campo de la estructura MqlRates.

bool matrix<T>::CopyRates(const string symbol, ENUM_TIMEFRAMES tf, ulong rates_mask,
ulong start, ulong count)

bool matrix<T>::CopyRates(const string symbol, ENUM_TIMEFRAMES tf, ulong rates_mask,
datetime from, ulong count)

bool matrix<T>::CopyRates(const string symbol, ENUM_TIMEFRAMES tf, ulong rates_mask,
datetime from, datetime to)

En los parámetros, debe especificar el símbolo, el marco temporal y el intervalo de barras solicitado, bien por número y cantidad, o bien por intervalo de fechas. Los datos se copian de forma que el elemento más antiguo se coloque al principio de la matriz/vector.

El parámetro rates_mask especifica una combinación de banderas de la enumeración ENUM_COPY_RATES con un conjunto de campos disponibles. La combinación de banderas permite obtener varias series temporales del historial en una sola solicitud. En este caso, el orden de las filas en la matriz corresponderá al orden de los valores en la enumeración ENUM_COPY_RATES; en particular, la fila con datos High en la matriz siempre estará por encima de la fila con datos Low.

Al copiar a un vector, sólo se puede especificar un valor de la enumeración ENUM_COPY_RATES. De lo contrario, se producirá un error.

Identificador

Valor

Descripción

COPY_RATES_OPEN

1

Open precios

COPY_RATES_HIGH

2

High precios

COPY_RATES_LOW

4

Low precios

COPY_RATES_CLOSE

8

Close precios

COPY_RATES_TIME

16

Horas de apertura de barra

COPY_RATES_VOLUME_TICK

32

Volúmenes de ticks

COPY_RATES_VOLUME_REAL

64

Volúmenes reales

COPY_RATES_SPREAD

128

Diferenciales

 

Combinaciones

COPY_RATES_OHLC

15

Open, High, Low, Close

COPY_RATES_OHLCT

31

Open, High, Low, Close, Time

Veremos un ejemplo de utilización de esta función en la sección Resolución de ecuaciones.