- Tipos de matrices y vectores
- Creación e inicialización de matrices y vectores
- Copiar matrices, vectores y arrays
- Copiar series temporales en matrices y vectores
- Copiar el historial de ticks en matrices y vectores
- Evaluación de expresiones con matrices y vectores
- Manipulación de matrices y vectores
- Productos de matrices y vectores
- Transformaciones (descomposición) de matrices
- Obtener estadísticas
- Características de matrices y vectores
- Resolución de ecuaciones
- Métodos de aprendizaje automático
Copiar el historial de ticks en matrices o vectores
Como en el caso de las barras, puede copiar los ticks en un vector o matriz. Esto se consigue mediante las sobrecargas de los métodos CopyTicks y CopyTicksRange, que funcionan sobre una base similar a las funciones CopyTicks y CopyTicksRange pero reciben datos en el llamador. Estas funciones se describirán en detalle en la Parte 5, en la sección sobre arrays de ticks reales en estructuras MqlTick. Aquí sólo mostraremos los prototipos y mencionaremos los puntos principales.
bool matrix<T>::CopyTicks(const string symbol, uint flags, ulong from_msc, uint count)
bool vector<T>::CopyTicks(const string symbol, uint flags, ulong from_msc, uint count)
bool matrix<T>::CopyTicksRange(const string symbol, uint flags, ulong from_msc, ulong to_msc)
bool matrix<T>::CopyTicksRange(const string symbol, uint flags, ulong from_msc, ulong to_msc)
El parámetro symbol establece el nombre del instrumento financiero para el que se solicitan los ticks. El intervalo de ticks puede especificarse de distintas maneras:
- En CopyTicks, puede especificarse como un número de ticks (el parámetro count), a partir de algún momento (from_msc), en milisegundos.
- En CopyTicksRange, puede ser un intervalo de dos puntos en el tiempo (de from_msc a to_msc).
La composición de los datos copiados acerca de cada tick se especifica en el parámetro flags como una máscara de bits de valores de la enumeración ENUM_COPY_TICKS.
Identificador |
Valor |
Descripción |
---|---|---|
COPY_TICKS_INFO |
1 |
Ticks generados por los cambios Bid y/o Ask |
COPY_TICKS_TRADE |
2 |
Ticks generados por los cambios Last y Volume |
COPY_TICKS_ALL |
3 |
Todos los ticks |
COPY_TICKS_TIME_MS |
1 << 8 |
Tiempo en milisegundos |
COPY_TICKS_BID |
1 << 9 |
Bid precio |
COPY_TICKS_ASK |
1 << 10 |
Ask precio |
COPY_TICKS_LAST |
1 << 11 |
Last precio |
COPY_TICKS_VOLUME |
1 << 12 |
Volumen |
COPY_TICKS_FLAGS |
1 << 13 |
Los tres primeros bits (byte bajo) determinan el conjunto de ticks solicitados, y los restantes bits (byte alto) determinan las propiedades de estos ticks.
Las banderas de byte alto sólo pueden combinarse para matrices, ya que en el vector sólo se coloca una fila con los valores de un campo concreto de todos los ticks. Por lo tanto, sólo debe seleccionarse un bit del byte más significativo para rellenar el vector.
Al seleccionar varias propiedades de ticks en el proceso de rellenar la matriz, el orden de las filas en ella se corresponderá con el orden de los elementos en la enumeración. Por ejemplo, el precio Bid aparecerá siempre más arriba en la fila (con un índice menor) que la fila con precios Ask.
Un ejemplo de trabajo con ambos, ticks y vectores, se mostrará en la sección sobre aprendizaje automático.