Matrizen und Vektoren

Eine Matrix ist eine zweidimensionale Anordnung von Double-, Float- oder komplexen Zahlen.

Ein Vektor ist eine eindimensionale Anordnung von Double-, Float- oder komplexen Zahlen. Der Vektor hat keinen Hinweis darauf, ob er vertikal oder horizontal ist. Dies wird durch den Verwendungskontext bestimmt. So wird beispielsweise bei der Vektoroperation Dot davon ausgegangen, dass der linke Vektor horizontal und der rechte vertikal ist. Wenn die Angabe des Typs erforderlich ist, können einzeilige oder einspaltige Matrizen verwendet werden. Im Allgemeinen ist dies jedoch nicht erforderlich.

Matrizen und Vektoren weisen den Speicher für Daten dynamisch zu. Matrizen und Vektoren sind Objekte, die bestimmte Eigenschaften haben, z. B. die Art der Daten, die sie enthalten, und die Dimensionen. Die Eigenschaften von Matrizen und Vektoren können mit Methoden wie vector_a.Size(), matrix_b.Rows(), vector_c.Norm(), matrix_d.Cond() und anderen ermittelt werden. Jede Dimension kann geändert werden.

Bei der Erstellung und Initialisierung von Matrizen werden sogenannte statische Methoden verwendet (diese sind wie statische Methoden einer Klasse). Zum Beispiel: matrix::Eye(), matrix::Identity(), matrix::Ones(), vector::Ones(), matrix: :Zeros(), vector::Zeros(), matrix::Full(), vector::Full(), matrix::Tri().

Matrix- und Vektoroperationen implizieren im Moment nicht die Verwendung des komplexen Datentyps, da diese Entwicklungsrichtung noch nicht abgeschlossen ist.

MQL5 unterstützt die Übergabe von Matrizen und Vektoren an DLLs. Dies ermöglicht den Import von Funktionen, die die entsprechenden Typen verwenden, aus externen Variablen.

Matrizen und Vektoren werden als Zeiger auf einen Puffer an eine DLL übergeben. Um z. B. eine Matrix vom Typ float zu übergeben, muss der entsprechende Parameter der aus der DLL exportierten Funktion einen Pufferzeiger vom Typ float aufnehmen.

MQL5

#import "mmlib.dll"
bool sgemm(uint flagsmatrix<float> &C, const matrix<float> &A, const matrix<float> &Bulong Mulong Nulong Kfloat alphafloat beta);
#import

C++

extern "C" __declspec(dllexportbool sgemm(UINT flagsfloat *Cconst float *Aconst float *BUINT64 MUINT64 NUINT64 Kfloat alphafloat beta)

Zusätzlich zu den Puffern sollten Sie Matrix- und Vektorgrößen für eine korrekte Verarbeitung übergeben.

Alle Matrix- und Vektormethoden sind unten in alphabetischer Reihenfolge aufgeführt.

Funktion

Aktion

Kategorie

Activation

Aktivierungsfunktionswerte berechnen und in den übergebenen Vektor oder Matrix schreiben.

Maschinelles Lernen

ArgMax

Rückgabe des Index des größten Wertes.

Statistik

ArgMin

Rückgabe des Index des kleinsten Wertes.

Statistik

ArgSort

Rückgabe des sortierten Indexes

Manipulation

Assign

Kopiert eine Matrix, einen Vektor oder ein Array mit automatischer Typ-Umwandlung.

Initialisierung

Average

Berechnet den gewichteten Durchschnitt von Matrix oder Vektorwerten.

Statistik

Cholesky

Berechnen der Cholesky-Zerlegung.

Transformationen

Clip

Begrenzt die Elemente einer Matrix oder eines Vektors auf einen bestimmten Bereich gültiger Werte.

Manipulation

Col

Gibt einen Spaltenvektor zurück. Schreibt einen Vektor in die angegebene Spalte.

Manipulation

Cols

Rückgabe der Anzahl der Spalten einer Matrix.

Eigenschaften

Compare

Vergleich der Elemente von zwei Matrizen oder Vektoren mit der angegebenen Präzision.

Manipulation

CompareByDigits

Vergleicht die Elemente zweier Matrizen oder Vektoren mit einer signifikanten Zahlengenauigkeit.

Manipulation

Cond

Berechnen der Konditionszahl einer Matrix.

Eigenschaften

Convolve

Liefert die diskrete, lineare Faltung (Convolution) von zwei Vektoren.

Produkte

Copy

Gibt eine Kopie der gegebenen Matrix oder des gegebenen Vektors zurück.

Manipulation

CopyIndicatorBuffer

Abrufen der Daten des spezifizierten Indikator-Puffers im angegebenen Umfang Menge in einen Vektor

Initialisierung

CopyRates

Gibt die historischen Zeitreihendaten der Struktur MqlRates der angegebenen Symbolperiodenlänge in der angegebenen Menge in eine Matrix oder einen Vektor zurück.

Initialisierung

CopyTicks

Weist die Ticks der Struktur MqlTick einer Matrix oder einem Vektor zu.

Initialisierung

CopyTicksRange

Weist die Ticks des angegebenen Zeitintervalls aus der Struktur MqlTick einer Matrix oder einem Vektor zu.

Initialisierung

CorrCoef

Berechnet den Pearson-Korrelationskoeffizienten (linearer Korrelationskoeffizient).

Produkte

Correlate

Berechnung der Kreuzkorrelation von zwei Vektoren.

Produkte

Cov

Berechnet die Kovarianzmatrix.

Produkte

CumProd

Rückgabe des kumulativen Produkts von Matrix- oder Vektorelementen, einschließlich der Elemente entlang der angegebenen Achse.

Statistik

CumSum

Rückgabe der kumulativen Summe der Matrix- oder Vektorelemente, einschließlich derjenigen entlang der angegebenen Achse.

Statistik

Derivative

Berechnet die Ableitungswerte der Aktivierungsfunktion, die dem übergebenen Vektor oder Matrix zugewiesen werden.

Maschinelles Lernen

Det

Berechnen der Determinante einer quadratischen invertierbaren Matrix.

Eigenschaften

Diag

Eine Diagonale extrahieren oder eine Diagonalmatrix konstruieren.

Manipulation

Dot

Punktprodukt von zwei Vektoren.

Produkte

Eig

Berechnet die Eigenwerte und rechten Eigenvektoren einer quadratischen Matrix.

Transformationen

EigVals

Berechnet die Eigenwerte einer allgemeinen Matrix.

Transformationen

Eye

Rückgabe einer Matrix mit Einsen auf der Diagonale und Nullen an anderer Stelle.

Initialisierung

Fill

Füllen des angegebenen Wertes einer vorhandenen Matrix oder Vektors.

Initialisierung

Flat

Zugriff auf ein Matrixelement über einen Index statt über zwei.

Manipulation

Full

Erstellung und Rückgabe einer neuen Matrix, die mit dem angegebenen Wert gefüllt wurde.

Initialisierung

GeMM

Die Methode GeMM (General Matrix Multiply) implementiert die allgemeine Multiplikation von zwei Matrizen.

Produkte

HasNan

Rückgabe einer Zahl mit dem Wert NaN in einer Matrix/einem Vektor

Manipulation

Hsplit

Horizontales Teilen einer Matrix in mehrere Submatrizen. Dasselbe wie Split mit axis=0.

Manipulation

Identity

Erzeugt eine Identitätsmatrix mit der angegebenen Größe.

Initialisierung

Init

Initialisierung einer Matrix oder eines Vektors.

Initialisierung

Inner

Inneres Produkt von zwei Matrizen.

Produkte

Inv

Berechnung der multiplikativen Inversen einer quadratischen invertierbaren Matrix nach der Jordan-Gauss-Methode.

Lösungen

Kron

Rückgabe des Kronecker-Produkts von zwei Matrizen, Matrix und Vektor, Vektor und Matrix oder zwei Vektoren.

Produkte

LinearRegression

Berechnen eines Vektors/einer Matrix mit berechneten linearen Regressionswerten

Statistik

Loss

Berechnet die Verlustfunktionswerte und schreibt sie in den übergebenen Vektor oder Matrix.

Maschinelles Lernen

LstSq

Rückgabe der Lösung der kleinsten Quadrate von linearen algebraischen Gleichungen (für nicht quadratische oder entartete Matrizen).

Lösungen

LU

Implementierung einer LU-Zerlegung einer Matrix: das Produkt aus einer unteren und einer oberen Dreiecksmatrix.

Transformationen

LUP

Implementiert eine LUP-Faktorisierung mit partieller Permutation, d.h. eine LU-Zerlegung nur mit Zeilenpermutationen: PA=LU.

Transformationen

MatMul

Matrixprodukt von zwei Matrizen.

Produkte

Max

Rückgabe des größten Wertes einer Matrix oder Vektors.

Statistik

Mean

Berechnung des arithmetischen Mittels der Elementwerte.

Statistik

Median

Berechnung des Medians der Matrix- oder Vektorelemente.

Statistik

Min

Rückgabe des kleinsten Wertes einer Matrix oder Vektors.

Statistik

Norm

Rückgabe der Matrix- oder Vektornorm.

Eigenschaften

Ones

Erzeugen und Zurückgeben einer neuen Matrix aus Einsen.

Initialisierung

Outer

Berechnet das äußere Produkt von zwei Matrizen oder zwei Vektoren.

Produkte

Percentile

Rückgabe des angegebenen Perzentils der Werte von Matrix- bzw. Vektorelementen oder den Elementen entlang der angegebenen Achse.

Statistik

PInv

Berechnung der Pseudoinverse einer Matrix nach der Moore-Penrose-Methode.

Lösungen

Power

Erhöhen einer quadratischen Matrix auf eine ganzzahlige Potenz.

Produkte

Prod

Rückgabe des Produkts von Matrix- oder Vektorelementen, das auch für die angegebene Achse ausgeführt werden kann.

Statistik

Ptp

Gibt den Wertebereich einer Matrix bzw. Vektors oder der angegebenen Matrixachse zurück.

Statistik

QR

Berechnen der qr-Faktorisierung einer Matrix.

Transformationen

Quantile

Rückgabe des angegebenen Quantils der Werte von Matrix- bzw. Vektorelementen oder Elementen entlang der angegebenen Achse.

Statistik

Rank

Liefert den Rang der Matrix unter Verwendung der Gaußschen Methode.

Eigenschaften

RegressionMetric

Berechnet die Regressionsmetrik als Abweichung von der Regressionslinie, die auf dem angegebenen Datenarray konstruiert wurde.

Statistik

Reshape

Ändern der Form einer Matrix, ohne ihre Daten zu ändern.

Manipulation

Resize

Rückgabe einer neuen Matrix mit geänderter Form und Größe.

Manipulation

Row

Gibt einen Zeilenvektor zurück. Schreiben des Vektors in die angegebene Zeile.

Manipulation

Rows

Rückgabe der Anzahl der Zeilen einer Matrix.

Eigenschaften

Set

Setzt den Wert eines Vektorelements am angegebenen Index.

Manipulation

Size

Rückgabe der Größe des Vektors.

Eigenschaften

SLogDet

Berechnet das Vorzeichen und den Logarithmus der Determinante einer Matrix.

Eigenschaften

Solve

Lösen einer linearen Matrixgleichung oder eines Systems linearer algebraischer Gleichungen.

Lösungen

Sort

Nach einem Platz sortieren.

Manipulation

Spectrum

Berechnung des Spektrums einer Matrix als die Menge ihrer Eigenwerte aus dem Produkt AT*A.

Eigenschaften

Split

Aufteilen einer Matrix in mehrere Submatrizen.

Manipulation

Std

Gibt die Standardabweichung der Werte von Matrix- bzw. Vektorelementen oder Elementen entlang der angegebenen Achse zurück.

Statistik

Sum

Rückgabe der Summe der Matrix- oder Vektorelemente, die auch für die angegebene Achse (Achsen) ausgeführt werden kann.

Statistik

SVD

Zerlegung in Singulärwerte.

Transformationen

SwapCols

Vertauschen der Spalten in einer Matrix.

Manipulation

SwapRows

Vertauschen der Zeilen in einer Matrix.

Manipulation

Trace

Rückgabe der Summe entlang der Diagonalen der Matrix.

Eigenschaften

Transpose

Transponieren (Vertauschen der Achsen) und Rückgabe der geänderten Matrix.

Manipulation

Tri

Konstruiert eine Matrix mit Einsen auf der angegebenen Diagonalen und darunter und Nullen anderswo.

Initialisierung

TriL

Gibt die Kopie einer Matrix zurück, bei der die Elemente oberhalb der k-ten Diagonale auf Null gesetzt sind. Untere Dreiecksmatrix.

Manipulation

TriU

Gibt die Kopie einer Matrix zurück, bei der die Elemente unterhalb der k-ten Diagonale auf Null gesetzt sind. Obere Dreiecksmatrix.

Manipulation

Var

Berechnung der Varianz der Werte von Matrix- oder Vektorelementen.

Statistik

Vsplit

Teilt eine Matrix vertikal in mehrere Submatrizen auf. Entspricht Split mit Achse=1

Manipulation

Zeros

Erzeugt eine neue, mit Nullen gefüllte Matrix und gibt sie zurück.

Initialisierung