mindful FX

View Original

Unterschiede des Heiken Ashi Indikator Abrufs in MQL5 vs. MQL4

Vor einigen Monaten veröffentlichte ich hier auf diesem Blog eine Checkliste zur Konvertierung von Expert Advisors von MT4 nach MT5. Heute gibt es eine Ergänzung für Schritt 3, die Indikator-Abrufe:

Welche Unterschiede gibt es konkret für den Heiken Ashi Indikator?

Hier gibt es drei Besonderheit zu beachten. Daher habe ich einen Schritt 3 B eingefügt, der wie folgt lautet:

SCHRITT 3 B: BESONDERHEITEN IM HEIKEN ASHI INDIKATOR

Beim Heiken Ashi Indikator, der durch iCustom(…) abgefragt wird, gibt es drei Besonderheiten. Die eine bezieht sich auf den Speicherort, die zweite auf den Indikator Datei Namen, die dritte auf die Indikator-Buffer-Nummern.

Die allgemeine Vorgehensweise der Konvertierung von MQL4 auf MQL5 ist ansonsten so wie unter Schritt 3 beschrieben. (Lies dazu den Blog-Artikel Checkliste zur Konvertierung von EAs von MT4 nach MT5).

In MT4 wird der Heiken Ashi Indikator folgendermaßen abgefragt, am Beispiel des Close-Preises der Heiken Ashi Kerze:

double HA_Close_1 = iCustom ( _Symbol, PERIOD_CURRENT, "Heiken Ashi", 3, 1 );

Dabei bezieht sich der dritte Parameter auf den Indikator Datei Namen, der vierte auf die Ordnungsnummer des Buffers der Indikator-Close-Preise, und der fünfte auf den Kerzenshift.

Im MT5 ist der Heiken Ashi Indikator standardmäßig allerdings nicht direkt im Indicators-Ordner abgespeichert, sondern in einem weiteren Unterordner namens “Examples”. Daher lautet im MT5 die korrekte iCustom-Nutzung:

int handle_HA = iCustom(_Symbol, Timeframe, "Examples\\Heiken_Ashi");

Außerdem ist beim MT5 ein Unterstrich im Dateinamen des Indikators vorhanden, während im MT4 die beiden Wörter mit Leerzeichen getrennt sind!

Wir erinnern uns (s. Schritt 3 in Checkliste zur Konvertierung von EAs von MT4 nach MT5), dass Buffer und Kerzenshift später im CopyBuffer(…)-Abruf geschieht:

double werte_HA_Close[2];  // Definition des Arrays, der 2 Heiken Ashi Schlusskurse enthalten soll
CopyBuffer (handle_HA, 3, 1, 2, werte_HA_Close); // Indikator-Buffer-Abruf und Speicherung in Array

In CopyBuffer ist der zweite Parameter die Ordnungsnummer des Buffers. Der Heiken Ashi Close Preis ist in Buffer Nummer 3 zu finden, sowohl in MT4 als auch in MT5.

Alle anderen Heiken Ashi Kerzenpunkte haben allerdings abweichende Buffer-Nummern zugewiesen:

Open → MT4: 2 → MT5: 0
High → MT4: 1 bei Aufwärts-, 0 bei Abwärtskerzen → MT5: 1 (egal, ob Aufwärts- oder Abwärtskerze)
Low → MT4: 0 bei Aufwärts-, 1 bei Abwärtskerzen → MT5: 2 (egal, ob Aufwärts- oder Abwärtskerze)
Close → MT4: 3 → MT5: 3

Im MT5 sind alle vier Heiken Ashi Kerzen Punkte nun immer dem gleichen Indikator-Buffer zugewiesen. Egal, ob die Kerze gerade bullisch oder bärisch ist. Das macht uns EA-Programmierern das Leben etwas leichter!

Damit kennst Du nun die drei speziellen Unterschiede des Heiken Ashi Indikator Abrufs im Code eines EAs zwischen MT4 und MT5.

Trade wie Profis
Dein Cristof Ensslin von mindful FX

See this content in the original post