Guarda come scaricare robot di trading gratuitamente
Ci trovi su Telegram!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Visualizzazioni:
28
Valutazioni:
(41)
Pubblicato:
\MQL5\Include\
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Una classe per lavorare con le matrici.

La matrice è definita in un array monodimensionale, in una riga: elementi della prima riga, della seconda riga, ecc. Gli ultimi due elementi dell'array definiscono la dimensione della matrice: il numero di colonne e il numero di righe.

Esempio:

double m[]={1,2,3,
           4,5,6,
           2,3}; // Una matrice di due righe e tre colonne.

Metodi della classe:

Metodo Assegnazione del metodo e dei parametri

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

Imposta la dimensione della matrice aA. aRows - numero di righe, aCols - numero di colonne.

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

Imposta il valore dell'elemento aA della matrice, situato nella riga aRow e nella colonna aCol.

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

Restituisce il numero di elementi della matrice aA. Per riferimento restituisce: aRows - numero di righe, aCols - numero di colonne.

int GetRows(
double& aA[]
)

Restituisce il numero di righe della matrice aA.

int GetCols(
double& aA[]
)

Restituisce il numero di colonne della matrice aA.

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

Ottiene il valore dell'elemento aA della matrice, situato nella riga aRow e nella colonna aCol.

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

Copia la matrice dalla matrice aFrom alla matrice aTo.

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

Verifica se due matrici hanno dimensioni simili per l'addizione (equivalenza completa in altezza e larghezza).

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

Verifica se due matrici sono adatte per dimensioni alla moltiplicazione (il numero di colonne della matrice aA è uguale al numero di righe della matrice aB).

bool CheckIsSq(
double& aA[]
)

Verifica se la matrice è quadrata.

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

Aggiunge il numero aNum alla matrice aA. Il risultato (matrice) viene restituito come riferimento nella matrice aR.

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

Moltiplica la matrice aA per il numero aNum. Il risultato (matrice) viene restituito come riferimento nell'array aR.

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

Aggiunge le matrici aA e aB. Il risultato (matrice) viene restituito come riferimento nell'array aAB.

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

Moltiplica la matrice aA per la matrice aB. Il risultato (matrice) viene restituito come riferimento nell'array aAB.

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

Traspone la matrice aA. La matrice trasposta viene restituita da un riferimento nella matrice aT.

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

Ottiene la matrice di addizione algebrica. aA è la matrice originale, aAA è l'addizione algebrica (restituita tramite riferimento).

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

Restituisce la matrice inversa aR dalla matrice aA per riferimento. Il metodo stesso restituisce true se la matrice inversa esiste o false se la matrice inversa non esiste.

void Triangolo(
double& aA[]
double& aT[]
)

Restituisce la matrice triangolo aT dalla matrice aA per riferimento.

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

Ottiene il minore dalla matrice aA per la riga aRow e la colonna aCol. Il minore viene restituito come riferimento nella matrice aM.

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

Restituisce il valore del determinante minore della matrice aA sulla riga aRow e sulla colonna aCol.

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

Ottiene la matrice dei minori (matrice con i valori dei determinanti dei minori). aA è la matrice di partenza, aM è la matrice con i determinanti minori (restituita per riferimento).

double Def(
double& aA[]
)

Restituisce il valore del determinante della matrice aA.

int Rank(
double& aA[]
)

Restituisce il rango della matrice aA.

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

Restituisce il rango della matrice aA e per riferimento restituisce:

  • aDef - il valore del determinante,
  • aRow - riga minore con determinante non uguale a 0
  • aCol - colonna minore con determinante non uguale a 0

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

Copia la colonna con indice aFromCol dalla matrice aFom alla matrice aTo nella colonna con indice aToCol. Il risultato viene restituito come riferimento alla matrice aR.

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

Copia una riga con indice aFromRow dalla matrice aFrom alla matrice aTo in una riga con indice aToRow. Il risultato viene restituito come riferimento alla matrice aR.

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

Espande la matrice aA aggiungendovi la colonna aC. Il risultato è restituito da un riferimento nella matrice aF.

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

Espande la matrice aA aggiungendovi la riga aR. Il risultato viene restituito come riferimento nella matrice aF.

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

Risolve il sistema di equazioni con il metodo di Kramer.

  • aK - matrice dei coefficienti (quadrata),
  • aY - colonna di valori,
  • aX - stringa di risultati

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

Risolve il sistema di equazioni attraverso la matrice inversa.

  • aK - matrice dei coefficienti (quadrata),
  • aY - colonna di valori,
  • aX - riga dei risultati

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

Risolve il sistema di equazioni con il metodo di Gauss.

  • aK - matrice dei coefficienti (quadrata),
  • aY - colonna di valori,
  • aX - stringa di risultati

int Verifica del sistema(
double& aK[]
double& aY[]
)

Verifica il sistema di equazioni.

  • aK - matrice dei coefficienti (quadrata),
  • aY - colonna di valori.

Valore di ritorno:

  • -1 - nessuna soluzione,
  • 0 - una soluzione,
  • 1 - numero infinito di soluzioni

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

Visualizza l'intera matrice in un unico avviso.

  • aA - matrice,
  • aDigits - numero di cifre decimali,
  • aCaption - intestazione del messaggio

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

Visualizza la matrice nell'avviso riga per riga, i termini sono visualizzati dal basso verso l'alto, poi la didascalia, cioè nella finestra di avviso la matrice è orientata normalmente: la didascalia è in alto, poi le righe in ordine.

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

Visualizza la matrice per riga nell'avviso.


Lo script sMatrix.mq4 è un esempio di utilizzo della libreria per risolvere un sistema di equazioni lineari utilizzando i metodi di Cramer, della matrice inversa e gaussiano.

Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/951

Indice di mercato incerto Indice di mercato incerto

Un indicatore della volatilità del mercato.

Monitoraggio della diffusione Monitoraggio della diffusione

Toolkit per il monitoraggio dello spread delle coppie di trading

Clean Market Watch -  Removes All Symbols In the Market Watch Windows In One Go Clean Market Watch - Removes All Symbols In the Market Watch Windows In One Go

Lo script Clean Market Watch è un semplice strumento di utilità progettato per rimuovere rapidamente tutti i simboli dalla finestra di Market Watch di MetaTrader 5 con un solo clic. Questo è particolarmente utile quando si vuole ricominciare da capo con un'area di lavoro pulita o quando il Market Watch è diventato ingombro di troppi simboli. Scopo Nel corso del tempo, i trader spesso accumulano numerosi simboli nella loro finestra di Market Watch, rendendo difficile concentrarsi sugli strumenti che negoziano attivamente. Rimuovere manualmente i simboli uno per uno può essere noioso e richiede molto tempo. Questo script automatizza l'intero processo, eliminando tutti i simboli in pochi secondi.

Indices Testing Indices Testing

L'EA negozia solo posizioni di acquisto e non utilizza SL e TP.