Startseite Technischer Indikator Beitrag

OnCalculate-Werte anzeigen: Ein nützliches Tool für MetaTrader 5

Anhang
23841.zip (9.13 KB, Herunterladen 0 mal)

Wenn du gerade erst mit der Programmierung von Indikatoren anfängst oder einfach nur einen Blick auf die Werte werfen möchtest, die die OnCalculate-Funktion und einige andere Funktionen liefern, dann ist dieses Tool genau das Richtige für dich.
Der Indikator zeigt dir:

  • Den aktuellsten Wert, der beim letzten Aufruf von OnCalculate bereitgestellt wurde.
  • Den vorherigen Wert vom letzten OnCalculate-Aufruf.
  • Den ersten Wert, der beim ersten Ausführen von OnCalculate ermittelt wurde.
  • Jeden Serienwert des Arrays, ob als as_series oder not_series, mit der Möglichkeit, den Serienwert durch einen Klick auf die Anzeige zu ändern.

In Version 1.10 wurde die Möglichkeit hinzugefügt, dynamisch festzulegen, ob die Arrays als as_series oder not_series gesetzt sind – einfach auf den Text klicken! Außerdem werden die Werte für Window Bars und First visible Bar dynamisch mit Änderungen im Chart aktualisiert. Die ON/OFF-Anzeige zeigt an, was bei der nächsten Ausführung von OnCalculate mit den aktuellen Einstellungen passieren wird, im Vergleich zu dem, was beim letzten Aufruf passiert ist.

In Version 1.20 kannst du nun auswählen, ob der Indikator die Arrays als as_series oder not_series setzen soll, ebenfalls durch einen Klick auf den Text. Der Indikator zeigt jetzt auch beide Enden des Zeitarrays und beide Enden des iMA-Buffers an. Diese Änderungen sollen den Unterschied zwischen as_series und not_series Arrays verdeutlichen. Zudem wird die Anzeige jetzt bei Bedarf über den OnTimeEvent-Handler aktualisiert, anstatt bei jedem Quote die Anzeige zu aktualisieren. Das reduziert die Ausführungszeit von OnCalculate von etwa 300 ms auf weniger als 1 ms – der Code zur Überprüfung der Ausführungszeit bleibt in OnCalculate und muss nur entkommentiert werden, um die Millisekunden der Ausführung anzuzeigen.

Das folgende Bild zeigt die Werte, die das OnCalculate_Values-Tool anzeigt. Achte auf die drei Werte, getrennt durch '/', die den „Aktuellsten Wert“, „Vorherigen Wert“ und „Ersten Wert“ anzeigen. Die OnCalculate-Werte werden bei jedem OnCalculate-Ereignis auf 'as_series' oder 'not_series' gesetzt – wenn Set Arrays 'ON' ist, andernfalls wird der Standardwert des Terminals beibehalten. Beachte den Wert in Klammern nach den Array-Namen, dieser Wert zeigt an, aus welcher Bar der Wert stammt – der Index '0' Wert oder der 'Wert am maximalen Index'.

OnCalculate-Werte anzeigen

Der Code implementiert eine einzelne Indikatorlinie, die den Eröffnungspreis jeder Bar zeigt, wie er von iMA bereitgestellt wird; der Zweck ist es, einen Puffer zu bieten, um die BarsCalculated-Funktion zu verwenden und die Anzeige eines Indikators zu zeigen, wenn dieser auf 'as_series' oder 'not_series' gesetzt ist. Ein Klick auf iMA_Val[0] setzt den iMA-Puffer nur einmal, wenn er geklickt wird; das iMA-Indikator-Array wird bei jedem Aufruf von OnCalculate nicht gesetzt.

Eine Sammlung von Arrays speichert die Eigenschaften jedes Anzeigeobjekts (OBJ_LABEL) in der Anzeige:

Die Funktion ArrayGetAsSeries wird verwendet, um zu bestimmen, ob die Arrays in den OnCalculate-Parametern Zeitserien-Arrays sind oder nicht, und die Anzeige zeigt das Ergebnis (As_Series oder Not_Series) – die Anzeige zeigt, dass diese Arrays zunächst keine Serien sind oder von einem Aufruf zum nächsten, nachdem sie als Serie gesetzt wurden (die SetAsSeries-Funktion setzt sie nur als Serie, wenn sie aktiviert ist; sie lässt sie auf den Standardwert zurückfallen, wenn sie deaktiviert ist – sie setzt 'as series' nicht auf falsch).

Das 3-Elemente-Array ary_OnCalcVals speichert 1) den aktuellsten, 2) den vorherigen und 3) den ersten Wert, der in den OnCalculate-Parametern gefunden wurde. Die Funktionen CopyNewToOld und MoveNewTo nehmen den aktuellen Wert für jeden Anzeigeparameter und legen ihn im historischen Speicher ab, der von ary_OnCalcVals bereitgestellt wird.

Verwandte Beiträge

Kommentar (0)