MetaTrader 5 Plattform Build 3210: Neue Matrix-Methoden und Kontrolle über Indikator-Minimum/Maximum-Werte

Überarbeiteter Algorithmus zur Berechnung der Sharpe Ratio, um der traditionellen Formel zu entsprechen, bei der der Wert einem Einjahresintervall entspricht

11 Februar 2022

    MQL5

    1. Min, Max, ArgMin, ArgMax und Summenfunktionen für Vektoren und Matrizen hinzugefügt. Verwenden Sie die Funktionen, um die minimalen und maximalen Werte, relevante Indizes und die Summe zu ermitteln.
    2. Unterstützung für Flat-Methoden für die Matrix wurde hinzugefügt. Mit diesen Methoden kann ein Matrizenelement über einen Index anstelle von zwei Indizes angesprochen werden.
      double matrix::Flat(ulong index) const;      // getter
      void matrix::Flat(ulong index,double value); // setter

      Pseudocode zur Berechnung der Adresse eines Matrixelements:

      ulong row=index / mat.Cols();
      ulong col=index % mat.Cols();
      
      mat[row,col]

      Für die "Matrix mat(3,3)" zum Beispiel kann der Zugriff auf die Elemente wie folgt geschrieben werden:

        lesen:        'x=mat.Flat(4)', das 'x=mat[1][1]' entspricht
        schreiben: 'mat.Flat(5, 42)', das 'mat[1][2]=42' entspricht

      Wenn die Funktion mit einem ungültigen Matrixindex aufgerufen wird, wird der kritische Ausführungsfehler OutOfRange ausgeworfen.

    3. Verbesserte Formatierung von Fließkommazahlen in den Eingabeparametern von MQL5-Programmen. Beim Lesen einiger reeller Zahlen wurden Zahlen mit vielen Nullen in den Eingabeparametern ersetzt, z.B. wurde 0.4 als 0.400000000002 dargestellt.
    4. Es wurden Fehler in der Math-Bibliothek Math.mqh behoben. Die Funktion MathSample aus dieser Bibliothek wurde überarbeitet, um dem traditionellen Verhalten ähnlicher mathematischer Bibliotheken beim Sampling mit Backtracking zu entsprechen.
    5. Der CopyTicks/CopyTicksRange-Fehler wurde behoben, der dazu führen konnte, dass beim Überschreiten von Mitternacht veraltete Daten zurückgegeben wurden, wenn keine Ticks für das Finanzinstrument bereitgestellt wurden.
    6. Es wurden die neuen Werte INDICATOR_FIXED_MINIMUM und INDICATOR_FIXED_MAXIMUM in die Enumeration ENUM_CUSTOMIND_PROPERTY_INTEGER aufgenommen.
      Mit Hilfe dieser Eigenschaften können Sie die minimalen und maximalen Indikatorwerte mit der Funktion IndicatorSetInteger fixieren oder wieder aufheben. Beim Aufruf von IndicatorSetInteger(INDICATOR_FIXED_MINIMUM/INDICATOR_FIXED_MAXIMUM, true) wird der aktuelle Minimal- oder Maximalwert verwendet.



    Tester

    1. Überarbeiteter Algorithmus zur Berechnung der Sharpe Ratio, um der traditionellen Formel zu entsprechen, bei der der Wert einem Einjahresintervall entspricht. Der vorherige Algorithmus basierte auf der Variabilität der erzielten PnL und ignorierte Kapitalschwankungen gegenüber offenen Positionen. Jetzt werden die Kapitalschwankungen in die Berechnung einbezogen, während die Sharpe Ratio auf klassische Weise interpretiert wird:
      • Sharpe Ratio < 0              Die Strategie ist unrentabel und nicht geeignet. Schlecht.
      • 0 < Sharpe Ratio  < 1,0   Das Risiko zahlt sich nicht aus. Solche Strategien können in Betracht gezogen werden, wenn es keine Alternativen gibt. Unbestimmt.
      • Sharpe Ratio ≥ 1,0          Wenn die Sharpe Ratio größer als eins ist. Dies kann bedeuten, dass sich das Risiko auszahlt und dass das Portfolio/die Strategie Ergebnisse vorweisen kann. Gut.
      • Sharpe Ratio ≥ 3,0          Ein hoher Wert bedeutet, dass die Wahrscheinlichkeit, bei jedem einzelnen Geschäft einen Verlust zu erleiden, sehr gering ist. Sehr gut.

    Terminal

    1. Optimierter Speicherverbrauch des Terminals.
    2. Verbesserter Plattformbetrieb mit einem Netzwerk-Subsystem, um die Leistung zu steigern und Netzwerkverzögerungen zu reduzieren.
    3. Die Anzeige der Nullebene des Gitters in den Indikatoren wurde entfernt, wenn das Raster-Rendering deaktiviert ist.