Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Visualizações:
1289
Avaliação:
(41)
Publicado:
2014.01.15 09:06
Atualizado:
2016.11.22 07:33
\MQL5\Include\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Classe para trabalhar com matrizes.

Uma matriz é criada sobre um array dimensional em sequência: elementos da primeira linha, segunda e assim por diante. Os dois últimos elementos representam o tamanho da matriz: número de colunas e linhas.

Exemplo:

double m[]={1,2,3,
           4,5,6,
           2,3}; // Matriz de duas linhas e três colunas.

Métodos de Classe:

Método Descrição do método e parâmetros

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

Define o tamanho da matriz aA, aRows - número de linhas, aCols - número de colunas.

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

Define o valor (Value) do elemento de matriz (aA) localizado na linha aRow, coluna aCol.

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

Retorna o número de elementos da matriz aA . Pela referência retorna: aRows - número de linhas, aCols - número de colunas.

int GetRows(
  double& aA[]
)

Retorna o número de linhas da matriz aA.

int GetCols(
  double& aA[]
)

Retorna o número de colunas da matriz.

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

Obtêm o valor da matriz aA localizada na linha aRow e na coluna aCol.

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

Copia a matriz da array aFrom para a array aTo.

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

Verifica se duas matrizes correspondem por tamanho para adição (totalmente equivalente pela altura e largura).

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

Verifica se duas matrizes correspondem por tamanho multiplicação(número de colunas na matriz aA igual ao número de colunas na matriz aB).

bool CheckIsSq(
  double& aA[]
)

Verifica se matriz é quadrada.

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

Adiciona número aNum para matriz aA. Matriz resultante é retornada pela referência na array aR.

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

Multiplica matriz aA pelo número aNum. Matriz resultante é retornada pela referência na array aR.

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

Adiciona matriz aA para matriz aB. Matriz resultante é retornada pela referência na array aAB.

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

Multiplica matriz aA pela matriz aB. Matriz resultante é retornada pela referência na array aAB.

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

Matriz transposta aA. Matriz transposta é retornada pela referência na array aT.

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

Obtêm o matriz cofator. aA - código matriz, aAA - cofator (retornada pela referência).

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

Retorna a matriz inversa aB da matriz aA pela referência. O método retorna verdadeiro (true) se matriz inversa ou falso (false) se matriz inversa não existe.

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

Retorna matriz triangular aT da matriz aA pela referência.

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

Obtém o menor da matriz aA pela linha aRow e coluna aCol. Menor é retornada pela referência na array aM.

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

Retorna o valor determinante da matriz menor aA pela linha aRow e coluna Acol.

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

Obtém matriz menores (matriz com os valores dos determinantes menores). aA - matriz código, aM - matriz com determinantes menores (retornado pela referência).

double Def(
  double& aA[]
)

Retorna o valor determinante da matriz aA.

int Rank(
  double& aA[]
)

Retorna a posição da matriz aA.

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

Retorna posição da matriz aA e retorna pela referência:

  • aDef - o0 valor determinante,
  • aRow - linha de menor com determinante diferente de 0
  • aCol - coluna de menor com determinante diferente de 0 0

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

Copia coluna com índice aFromCol da matriz aFrom para matriz aTO para coluna com índice aToCol. Resultado é retornado por referência na array aR.

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

Copia linha com índice aFromRow da matriz aFrom para matriz aTO para linha com índice aToRow. Resultado é retornado por referência na array aR.

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

Estende matriz aA adicionando coluna aC a ela. Resultado é retornado pela referência na array aF.

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

Estende matriz aA adicionando linha aR a ela. Resultado é retornado pela referência na array aF.

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

Resolve sistema de equações lineares usando a regra de Cramer.

  • aK - matriz do coeficiente (quadrado),
  • aY - valores da coluna,
  • aX - resultados das linhas

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

Resolve sistema de equações lineares usando a matriz inversa.

  • aK - matriz do coeficiente (quadrado),
  • aY - valores da coluna,
  • aX - resultados das linhas

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

Resolve sistema de equações lineares usando eliminação gaussiana.

  • aK - matriz do coeficiente (quadrado),
  • aY - valores da coluna,
  • aX - resultados das linhas

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

Verificar sistema de equações.

  • aK - matriz do coeficiente (quadrado),
  • aY - valores das colunas.

Valor retornado:

  • -1 - sem soluções,
  • 0 - uma solução,
  • 1 - números infinitos de soluções

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

Exibe a matriz de entrada na caixa de alerta.

  • aA - matrix,
  • aDigits - número de dígitos após o ponto decimal,
  • aCaption - título da mensagem

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

Exibe matriz em caixa de alerta linha por linha, linhas exibidas de baixo para cima e então vem o título, ou seja, a caixa de alerta da matriz é orientada normalmente: título na parte superior seguido da ordenação das linhas.

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

Apresenta array de matriz como uma string na caixa de alerta.

 

O script sMatrix.mq4 é um exemplo de como usar esta biblioteca para resolver um sistema de equações lineares usando a regra de Cramer, matriz inversa e eliminação gaussiana.

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/951

GMACD GMACD

MACD de duas linhas. Este indicador está disponível por padrão em várias plataformas de negociação. Mas ele não se encontra no MetaTrader 5.

ResultRetcodeDescription ResultRetcodeDescription

A função que decifra o código do resultado da operação de negociação para as funções OrderSend() e OrderCheck().

Widescreenshooter Widescreenshooter

Script para criar capturas de tela mais largas.

Índice de Mercado Agitado Índice de Mercado Agitado

Indicador de instabilidade do mercado.