Startseite Technischer Indikator Beitrag

Kerzengröße im MetaTrader 5: Ein unverzichtbarer Indikator für Trader

Anhang
18269.zip (2.74 KB, Herunterladen 0 mal)

In der Welt des Tradings ist die Kerzengröße ein entscheidender Indikator. Sie wird nach folgender Formel berechnet: "Minuend" minus "Abzug". Dabei können Minuend und Abzug aus vier Werten gewählt werden: offen, hoch, niedrig oder geschlossen.

Die Anzahl der Kerzen, für die die Größe angezeigt wird, kann in den Eingabeparametern (InpNumberOfBars) festgelegt werden. Diese Zahl bleibt konstant, selbst wenn eine neue Kerze eröffnet wird:


Über die Synchronisation von Kerzen und grafischen Objekten

Berücksichtigung grafischer Objekte

Die Namen der Objekte werden im m_arr_names[] Array gespeichert, dessen Größe der InpNumberOfBars Eingabe entspricht. Warum verwenden wir ein Array anstelle einer einfachen String-Variable? Dies ist eine Art Reserve für die Zukunft.

Bildung eines Objektnamens

Der Name des Objekts, das der 'Index'-Kerze entspricht, wird nach folgender Formel gebildet:

name[index] = m_prefix + ("high_" oder "low_") + TimeToString(time[index])

Wann Sie alle Objekte löschen müssen

Indikatoren werden in folgenden Fällen entladen:

  • Wenn der Indikator vom Chart entfernt wird;
  • Beim Schließen des Terminals (wenn der Indikator auf dem Chart aktiv war);
  • Beim Laden einer Vorlage, wenn der Indikator auf diesem Chart aktiv ist;
  • Beim Schließen des Charts, auf dem der Indikator aktiv war;
  • Beim Ändern des Profils, wenn der Indikator auf einem der Charts des vorherigen Profils aktiv war;
  • Beim Ändern des Symbols und/oder des Zeitrahmens des Charts, auf dem der Indikator aktiv ist;
  • Beim Ändern der Indikatoreingaben.

Deshalb löschen wir alle erstellten grafischen Objekte vollständig:

  • In der OnDeinit() Funktion;
  • In der OnInit() Funktion (dies ist eine Vorsichtsmaßnahme, falls es nicht gelöschte „verwaiste“ Objekte gibt);
  • In der OnCalculate() Funktion, wenn prev_calculated==0.

Außerdem leeren wir das m_arr_names[] Array:

  • In der OnCalculate() Funktion, wenn prev_calculated==0 oder prev_calculated!=rates_total.

Beibehaltung einer konstanten Anzahl grafischer Objekte:

Wenn eine neue Kerze (oder mehrere) erscheint, wird die Bedingung prev_calculated!=rates_total ausgelöst. In diesem Fall werden alle Objekte gelöscht und das m_arr_names[] Array geleert.


    Verwandte Beiträge

    Kommentar (0)