Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Visualizaciones:
1020
Ranking:
(41)
Publicado:
2014.01.14 12:39
Actualizado:
2014.02.14 09:33
\MQL5\Include\
incmatrix.mqh (29.22 KB) ver
smatrix.mq5 (2.18 KB) ver
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Clase para trabajar con matrices.

Matriz se crea en una matriz bidimensional, en secuencia: elementos de la primera fila, la segunda y así sucesivamente. Los dos últimos elementos representan el tamaño de la matriz: número de filas y columnas.

Ejemplo:

double m[]={1,2,3,
           4,5,6,
           2,3}; // Matriz de dos filas y tres columnas.

Métodos de la clase:

Método Descripción del método y parámetros

void SetSize(
  double& aA[],
  int aRows,
  int aCols
)

Establece el tamaño de la matriz aA. aRows - número de filas, aCols - número de columnas.

void SetValue(
  double& aA[],
  int aRow,
  int aCol,
  double aValue
)

Establece el valor (Value) del elemento de la matriz (aA) situado en fila aRow, columna aCol.

int GetSize(
  double& aA[],
  int& aRows,
  int& aCols
)

Devuelve el número de elementos de la matriz aA. Por referencia devuelve: aRows - número de filas, aCols - número de columnas.

int GetRows(
  double& aA[]
)

Devuelve el número de filas de la matriz aA.

int GetCols(
  double& aA[]
)

Devuelve el número de columnas de la matriz aA.

double GetValue(
  double& aA[],
  int aRow,
  int aCol
)

Obtiene el valor del elemento de matriz de aA situado en fila aRow y columna aCol.

void Copy(
  double& aFrom[],
  double& aTo[]
)

Copias la matriz desde la matriz aFrom hasta la matriz aTo.

bool CheckForAdd(
  double& aA[],
  double& aB[]
)

Comprueba si coinciden dos matrices por tamaño para la suma (totalmente equivalente por la altura y la anchura).

bool CheckForMult(
  double& aA[],
  double& aB[]
)

Comprueba si coinciden dos matrices de tamaño para la multiplicación (número de columnas en la matriz aA equivale al número de columnas en la matriz aB).

bool CheckIsSq(
  double& aA[]
)

Comprueba si la matriz es cuadrada.

void AddNum(
  double& aA[],
  double aNum,
  double& aR[]
)

Agrega número aNum a la matriz aA. La matriz resultante es devuelta por referencia en la matriz aR.

void MultNum(
  double& aA[],
  double aNum,
  double& aR[]
)

Multiplies matrix aA by number aNum. La matriz resultante es devuelta por referencia en la matriz aR.

void AddMx(
  double& aA[],
  double& aB[],
  double& aAB[]
)

Agrega matriz aA en la matriz aB. La matriz resultante es devuelta por referencia en matriz aAB.

void MultMx(
  double& aA[],
  double& aB[],
  double& aAB[])

Multiplica la matriz aA por la matriz aB. La matriz resultante es devuelta por referencia en matriz aAB.

void Transpose(
  double& aA[],
  double& aT[]
)

Transpón la matriz aA. Una vez Transpuesta la matriz es devuelta por referencia en la matriz aT.

void AlgAdd(
  double& aA[],
  double& aAA[]
)

Obtiene el cofactor de la matriz. aA - matriz fuente, aAA - cofactor (devuelto por referencia).

bool Invert(
  double& aA[],
  double& aB[]
)

Devuelve la matriz aR inversa de la matriz aA de referencia. El método devuelve true si existe la matriz inversa o false, si no existe la matriz inversa.

void Triangle(
  double& aA[],
  double& aT[]
)

Devuelve matriz triangular a partir de matriz aA de referencia.

void Minor(
  double aA[],
  int aRow,
  int aCol,
  double& aM[]
)

Obtiene el menor de la matriz aA por fila aRow y columna aCol. Menor es devuelto por referencia en la matriz aM

double MinorDef(
  double& aA[],
  int aRow,
  int aCol
)

Devuelve el valor determinante de la matriz aA menor por la fila aRow y columna aCol.

void MinorDefMx(
  double& aA[],
  double& aM[]
)

Obtiene menores (matriz con los valores de los determinantes menores). aA - matriz fuente, aM - matriz con determinantes menores (devuelto por referencia).

double Def(
  double& aA[]
)

Devuelve el valor determinante de la matriz aA.

int Rank(
  double& aA[]
)

Devuelve el rango de la matriz aA.

int RankDRC(
  double& aA[],
  double& aDef,
  int& aRow,
  int& aCol
)

Devuelve el rango de la matriz aA y devuelve por referencia:

  • aDef - el valor determinante,
  • aRow - fila del menor con determinante no igual a 0
  • aCol - columna del menor con determinante no igual a 0

void CopyCol(
  double& aFrom[],
  double& aTo[],
  int aFromCol,
  int aToCol,
  double& aR[]
)

Columna de copias con el índice aFromCol desde la matriz aFrom hasta la matriz aTo a la columna con índice aToCol. Resultado devuelto por referencia en la matriz aR.

void CopyRow(
  double& aFrom[],
  double& aTo[],
  int aFromRow,
  int aToRow,
  double & aR[]
)

Fila de copias con el índice aFromRow desde la matriz aFrom hasta la matriz aTo de la fila con índice aToRow. Resultado devuelto por referencia en la matriz aR.

void AppendCol(
  double& aA[],
  double& aC[],
  double& aF[]
)

Se extiende la matriz aA mediante la adición de columna aC en él. Resultado devuelto por referencia en la matriz aF.

void AppendRow(
  double& aA[],
  double& aR[],
  double& aF[]
)

Se extiende la matriz aA añadiendo la fila aR en él. Resultado devuelto por referencia en la matriz aF.

bool SystemKramer(
  double& aK[],
  double& aY[],
  double& aX[]
)

Resuelve el sistema de ecuaciones lineales utilizando la regla de Cramer.

  • aK - matriz de coeficientes (cuadrada),
  • aY - columna de valores,
  • aX - fila de resultados

bool SystemInverse(
  double& aK[],
  double& aY[],
  double& aX[]
)

Resuelve el sistema de ecuaciones lineales utilizando la matriz invertible.

  • aK - matriz de coeficientes (cuadrada),
  • aY - columna de valores,
  • aX - fila de resultados

bool SystemGauss(
  double& aK[],
  double& aY[],
  double& aX[]
)

Resuelve el sistema de ecuaciones lineales utilizando eliminación Gaussiana.

  • aK - matriz de coeficientes (cuadrada),
  • aY - columna de valores,
  • aX - fila de resultados

int SystemCheck(
  double& aK[],
  double& aY[]
)

Comprueba el sistema de ecuaciones.

  • aK - matriz de coeficientes (cuadrada),
  • aY - columna de valores.

Valor devuelto:

  • -1 - sin solución,
  • 0 - una solución,
  • 1 - infinitas soluciones

void Alert(
  double& aA[],
  int aDigits=2,
 string aCaption=""
)

Muestra la matriz entera en un cuadro de alerta.

  • aA - matriz,
  • aDigits - número de dígitos después del punto decimal,
  • aCaption - título del mensaje

void Alert2(
  double& aA[],
  int aDigits=2,
 string aCaption=""
)

La matriz de muestra en el cuadro de alerta línea a línea, las filas mostradas de abajo a arriba, luego el título, es decir, el de cuadro de alerta de la matriz se orienta normalmente: título en la parte superior, después las filas en orden.

void Alert1Str(
  double& aA[],
  int aDigits=2
)

Se muestra el array de la matriz como una cadena en el cuadro de alerta.

El script sMatrix.mq4 es un ejemplo del uso de esta librería para resolver un sistema de ecuaciones lineales utilizando la regla de Cramer, matriz inversible y eliminación Gaussiana.

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/951

r_Ma r_Ma

Un indicador promedio móvil obtenido promediando los valores de todas las variantes de cálculo de la Media Móvil clásica.

KLines KLines

Conjunto de niveles de soporte y resistencia con cinco timeframes diferentes.

r_Gator r_Gator

Un análogo del indicador de Alligator con un retraso menor de señales.

Widescreenshooter Widescreenshooter

Script para crear capturas de pantalla ancha.