Wie man in wenigen Minuten einen MQL5-Expert-Advisor mit dem Expert-Advisor-Baum erstellt: Teil eins

eatree | 4 Mai, 2016


Einleitung

Der EA-Baum ist das erste Programm, mit dem man mittels 'drag and drop' einen Expert Advisor in MetaTrader-MQL5 entwerfen kann. Es ist eine lokal auf Ihrem Computer laufende Windows-Anwendung. Sie können den komplexen MQL5-Code mit einer sehr benutzerfreundlichen, graphischen Benutzerschnittstelle erstellen.

In diesem Programm entwirft man Expert Advisor, indem man Felder miteinander verbindet. Die Felder können MQL5-Funktionen enthalten, technische Indikatoren, benutzerdefinierte Indikatoren oder Werte. Die Outputs eines Feldes können mit Inputs eines anderen Feldes verbunden werden, um einen "Baum aus Feldern" zu formen. Der EA-Baum generiert MQL5-Code aus dem "Baum aus Feldern" und verwendet dann die auf Ihrem Computer installierte MetaTrader 5-Plattform, um den MQL5-Code in einen ausführbaren Expert Advisor umzuwandeln.

Abbildung 1 EA-Baum graphische Benutzerschnittstelle

Abbildung 1 EA-Baum graphische Benutzerschnittstelle


In den nächsten Abschnitten werden wir die grundlegenden Konzepte eines EA-Baumes besprechen.

1. Grundlegende Konzepte

Das Konzept von 'Feldern' und 'Flächen'.

Felder enthalten Informationen in einem EA-Baum. Sie können technische Indikatoren, mathematische Funktionen, und vieles mehr enthalten. Jedes Feld hat Input-Flächen und Output-Flächen. In diesem Beispiel hat das Feld 'Add' (hinzufügen) drei Input-Flächen mit den Labels A, B und C und eine Output-Fläche mit dem Label OUT.

Jedes Feld hat sein einzigartiges Label mit seinem Namen und einem Index. In diesem Beispiel zeigt das Label Add_1, dass der Name des Feldes Add ist und sein Index 1, was bedeutet, dass dies das erste Feld war, das in diesem Layout erstellt wurde.

Abbildung 2 Add-Feld

Abbildung 2 Add-Feld

Flächen verbinden:

Output-Flächen eines Feldes können zu den Input-Flächen eines anderen Feldes verknüpft werden, wenn sie die selben Datentypen haben, das heißt, wenn sie beide double-Datentypen sind.

In diesem Beispiel werden wir die OUT-Fläche des Add_2-Feldes mit der A-Fläche des If_Else_1-Feldes verknüpfen.

Abbildung 3 "Add"-Feld + "if else"-Feld

Abbildung 3 "Add"-Feld + "if else"-Feld

2. Das "Trade"-Feld

Das "Trade"-Feld ist das Hauptfeld im EA-Baum. Es hat viele Input-Flächen. Die wichtigsten Flächen sind openLong, openShort, closeLong und closeShort Es gibt auch viele Handel-Parameter.

 Abbildung 4 Das 'Trade'-Feld

Abbildung 4 Das 'Trade'-Feld

3. Das "MM"-Feld (Money Management)

Das MM-Feld kümmert sich um MoneyManagement bei EA-Bäumen. Es hat viele Input-Flächen. Sie müssen die Output-Flächen mit den MM-Flächen des Trade-Felds verbinden.

Abbildung 5 'Trade'-Feld und MM-Feld

Abbildung 5 'Trade'-Feld und MM-Feld


4. Logische Felder

Logische Felder sind wichtig für die Verbindung der Bedingungsflächen des Trade-Feldes: openLong, openShort, closeLong, und closeShort und der Rest der Felder im Layout.

Das Logik-Feld If-Else

Folgende Logik gilt beim If-Else-Feld:

Wenn (if) A operator B, dann ist (then) T (Output-Fläche) wahr; sonst ist (else) F wahr.

Der Operator kann gleich, nicht gleich, weniger als, größer als, etc. sein.

Abbildung 6 Das Logik-Feld If-Else

Abbildung 6 Das Logik-Feld If-Else

Das Logik-Feld Crossover

Das CrossoverFeld hat folgende Logik:

Wenn (if) A operator B AND C operator2 D, dann ist T (Output-Fläche) wahr; sonst ist (else) F wahr.

Operator1 und Operator2 können gleich, nicht gleich, weniger als, größer als, etc. sein. Die Umschaltung legt Indexe der Indikatoren zum Verbinden fest.

In diesem Beispiel haben wir die Logik:

If current Stochastic main > current Stochastic signal and

If previous Stochastic main > previous Stochastic signal

Then T is true and F is false

Abbildung 7 Crossover und Stochastik-Logik-Felder

Abbildung 7 Crossover und Stochastik-Logik-Felder

Das Logik-Feld AND

Das AND-Feld hat folgende Logik:

If (A AND B AND C AND D) then OUT(output button) is true

Abbildung 8 "And"-Feld

Das Logik-Feld OR

Das OR-Feld hat folgende Logik:

If (A OR B OR C OR D) then OUT (output button) is true

Abbildung 9 "Or"-Feld

Abbildung 9 "Or"-Feld


5. Das Feld "Technische Indikatoren"

Im Menü "Technische Indikatoren" sind viele technische Indikatoren aufgelistet, wie zum Beispiel die Felder MACD und Moving Average (MA)

Das Feld MACD technischer Indikator

Abbildung 10 Das Feld MACD technischer Indikator

Abbildung 10 Das Feld MACD technischer Indikator

Das Feld MA (Moving Average) technischer Indikator

Abbildung 11 Das Feld MA (Moving Average) technischer Indikator

Abbildung 11 Das Feld MA (Moving Average) technischer Indikator

6. Benutzerdefinierte Indikatoren

Werkzeuge für benutzerdefinierte Indikatoren sind vom benutzerdefinierten Menü und der Symbolleiste verfügbar. Der EA-Baum verwendet nur MQL5 benutzerdefinierte Indikatoren.

7. MQL5-Funktionen

Der EA-Baum hat viele Boxen für MQL5-Funktionen, unter anderem:

8. Tutorial: Einen einfachen Expert-Advisor erstellen

In diesem Abschnitt werden wir einige der Werkzeuge, die im Artikel beschrieben werden, verwenden, um einen einfachen Expert Advisor zu erstellen.

Lassen Sie uns zuerst die Expert-Advisor-Handelsregeln auflisten:

Eintrittsregeln:

Open Long:

  1. Current MACD main > current MACD signal and
  2. Previous MACD main < previous MACD signal and
  3. Current EMA(20) > previous EMA(20)

Open Short:

  1. Current MACD main < current MACD signal and
  2. Previous MACD main > previous MACD signal and
  3. Current EMA(20) < previous EMA(20)

Ausgangsregeln:

Close Long: es gelten die selben Regeln wie bei Open Short
Close Short: es gelten die selben Regeln wie bei Open Long

Wir werden Standard-Handelsfelder verwenden und keine Money-Management-Einstellungen.

Lost geht's!

1. Erstellen Sie zuerst ein Trade-Feld, dann ein AND-Feld und verbinden Sie den Output des AND-Felds mit der openLong-Taste des Trade-Felds.


Abbildung 12 Trade-Feld und AND-Feld

Abbildung 12 Trade-Feld und AND-Feld

2. Erstellen Sie ein Crossover-Feld und verbinden Sie die T(true) Output-Schaltfläche mit der A-Schaltfläche des AND-Feldes.

Abbildung 13 Trade-Feld und AND-Feld und Crossover-Feld

Abbildung 13 Trade-Feld und AND-Feld und Crossover-Feld

3. Erstellen Sie ein MACD-Feld, verbinden Sie seine Haupt-Output-Flächen mit den A- und C-Flächen des Crossover-Feldes und verbinden Sie die Signal-Output-Flächen mit den B-und D-Flächen des Crossover-Feldes.

Die Logik dahinter ist:

If current MACD main > current MACD signal andprevious MACD main < previous MACD signal

Abbildung 14 Trade-Feld und AND-Feld und Crossover-Feld und MACD-Feld

Abbildung 14 Trade-Feld und AND-Feld und Crossover-Feld und MACD-Feld


4. Erstellen Sie ein MA-Feld und ein If-Else-Feld. Verbinden Sie die Haupt-Output-Fläche des MA-Feldes mit den A- und B-Flächen des If-Else-Feldes. Verbinden Sie den OUTPUT des IF-ELSE-Feldes mit der B-Fläche des AND-Feldes.

Der untergeordnete Baum der openLong-Bedingung ist nun mit diesen drei Bedingungen komplett:

  1. Current MACD main > current MACD signal and
  2. Previous MACD main < previous MACD signal and
  3. Current EMA(20) > previous EMA(20)

Abbildung 15 Trade-Feld und AND-Feld und Crossover-Feld und MACD-Feld und MA-Feld und If-else-Feld

Abbildung 15 Trade-Feld und AND-Feld und Crossover-Feld und MACD-Feld und MA-Feld und If-else-Feld

5. Erstellen Sie ein weiteres And-Feld und verbinden Sie die Output-Fläche mit der openShort-Fläche des Trade-Feldes.

6. Da die Logik von openShort das Gegenteil von openLong ist, verbinden Sie die F-Output-Fläche des Crossover-Feldes mit der A-Fläche des neuen AND-Feldes. Verbinden Sie auch die F-Output-Fläche des If-else-Feldes mit der B-Fläche des neuen AND-Feldes.


 Abbildung 16 Trade-Feld und AND-Feld und Crossover-Feld und MACD-Feld und MA-Feld und If-else-Feld und And-Feld

Abbildung 16 Trade-Feld und AND-Feld und Crossover-Feld und MACD-Feld und MA-Feld und If-else-Feld und And-Feld

7. Um Exit-Signale zu bekommen, verbinden Sie die OUT-Variable des ersten AND-Feldes mit der closeLong-Fläche des Trade-Feldes und der OUT-Variable des zweiten AND-Feldes zur closeShort-Fläche des Trade-Feldes:

 Abbildung 17 Hinzufügen von CloseShort zum Trade-Feld
Abbildung 17. Hinzufügen von CloseShort zum Trade-Feld

8. Doppelklicken Sie auf beide MACD- und MA-Felder und wählen Sie eine Anzahl an Variablen als Input-Variablen im MQL5-Expert-Advisor, den wir generieren werden.

Abbildung 18 Eingangsparameter

Abbildung 18 Eingangsparameter

9. Das Layout ist nun vollständig. Speichern Sie das Layout und die MQL5-Datei. Öffnen Sie dann die neue MQL5-Expert-Advisor-Datei in MetaEditor 5 und erstellen sie sie.

Abbildung 19 Generierter Expert Advisor

Abbildung 19 Generierter Expert Advisor

10. Letztendlich optimieren wir die gewählten Input-Variablen mit dem MetaTrader 5 Strategy Tester.


Abbildung 20 Den Expert Advisor testen 

Abbildung 20 Den Expert Advisor testen


Fazit

Die Verwendung eines Expert-Advisor-Baumes hat viele Vorteile.