MQL5 TUTORIAL DEUTSCH – SIMPLER MACD STANDALONE EXPERT ADVISOR

video
play-sharp-fill

In diesem Video geht es um den MACD. Das ist dieser Indikator hier unten. Und wir möchten uns in MQL5 einmal eine eigenständig handelsfähige Version für den Meta Trader5 programmieren. Immer, wenn wir hier eine Überschneidung der Signallinie von unten nach oben haben, dann ist das ein Kaufen Signal. Im umgekehrten Fall, wenn die rote Linie von oben nach unten überkreuzt, dann ist es ein Verkaufen Signal. Wie können wir uns jetzt in MQL5 einen solchen eigenständig handelsfähigen und automatisierten Expert Advisor erstellen? Um das zu tun, klicken Sie bitte im Meta Trader hier oben auf diesen kleinen Button oder drücken die F4 Taste. Das ruft dann hier den Meta Editor auf und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerMACDStandAloneEA. Klicke auf Weiter, Weiter und Fertigstellen. Und jetzt kann alles oberhalb dieser On Tick Funktion hier gelöscht werden. Auch die zwei Kommentarzeilen werden entfernt. Zunächst einmal nutzen wir den Include Befehl um uns die Datei Trade.mgh zu importieren. Die stellt Handelsfunktionen bereit. Darum erstellen wir uns eine Instanz von der Klasse CTrade. Die bekommt den Namen Trade. Und wir werden sie gleich benutzen, um damit Positionen zu eröffnen. Zuerst erstellen wir uns eine String Variable für das Signal. Die bekommt auch den Namen Signal. Wir weisen aber zunächst noch keinen Wert zu, denn der muss noch ermittelt werden. Jetzt berechnen wir zunächst den AskPrice. Das ist der Preis, den wir bezahlen müssen, wenn wir etwas kaufen. Berechnen können wir das mit SymbolInfoDouble. Für das aktuelle Währungspaar benutzen wir SYMBOL_ASK für den AskPrice. Und mit normolize double und Unterstrich Digits stellen wir sicher, dass wir die richtige Anzahl von Nachkommastellen bekommen. Denn es gibt Währungspaare mit 3 und andere mit 5 Nachkommastellen. Das gleiche machen wir dann nochmal für den BitPrice. Das ist der Preis, den wir erhalten, wenn wir etwas verkaufen. Den bekommen wir mit Symbol_Bid. Ansonsten sind diese beiden Zeilen hier nahezu identisch. Wir brauchen auch noch ein Array für Preisdaten. Das bekommt den Namen PriceArray. Und jetzt kommen wir zur eigentlichen Definition für den MACD. Dazu nutzen wir die in MQL5 integrierte Funktion iMACD für das aktuelle Währungspaar auf dem Chart und die dort ausgewählte Zeiteinheit. Und falls Sie sich fragen, woher diese Werte kommen, die finden Sie auch hier wieder, in Klammern stehen sie hinter dem Indikator. Und wenn man sich mit der rechten Maustasche einmal die Eigenschaften von MACD ansieht, dann sieht man, hier wird ein schneller EMA mit dem Wert 12, ein langsamer EMA mit dem Wert 26 und ein MACD-SMA mit dem Wert 9 aufgeführt. 12, 26, 9 haben wir auch hier im Quelltext. Und unser Ergebnis wird ermittelt basierend auf den Schlusskursen. Jetzt sortieren wir unsere Preise noch abwärts von der aktuellen Kerze. Das machen wir mit ArraySetAsSeries und mit CopyBuffer füllen wir unser PreisArray anhand der MACD Definition, die wir hier oben getroffen haben von der aktuellen Kerze für 3 Kerzen mit Daten. Diese 0 hier steht für den Buffer Wert. Der MACD liefert uns hier mehrere Werte. Und wir interessieren uns für den Wert im Buffer 0. Jetzt sind wir in der Lage, den EA für die aktuelle Kerze zu berechnen. Indem wir auf Kerze 0 in unserem PreisArray zugreifen. Und das Ergebnis der Variable MACDWert zuweisen. Das Ganze tun wir dann nochmal für die Kerze davor. Das wäre Kerze 1. Und das Ergebnis von Kerze 1 weisen wir der Variable letzterMACDWert zu. Jetzt können wir ein Kauf Signal ermitteln. Das haben wir, wenn der aktuelle MACDWerts sich oberhalb der Nulllinie befindet. Das ist diese gestrichelte Linie hier und wenn der letzte MACDWert noch unterhalb dieser Nulllinie war. Dann haben wir eine Überkreuzung von unten nach oben. Darum weisen wir das Wort Kaufen unserer Signal Variable zu. im umgekehrten Fall ein Verkauf Signal hätten wir immer dann, wenn der aktuelle MACDWert kleiner ist als die 0. Also wenn sich das Signal unterhalb dieser gestrichelten Linie befindet. Und der letzte MACDWert noch darüber war. In dem Fall weisen wir das Wort Verkaufen unserer Signalvariable zu. Fehlen noch die eigentlichen Befehle um zu Verkaufen oder zu Kaufen. Mit Trade.Sell können wir immer dann verkaufen, wenn unser Signal den Wert Verkaufen hat. Und wenn die aktuelle Anzahl der geöffneten Positionen kleiner ist als 1. Im anderen Fall, wenn unser Signal auf Kaufen steht, dann nutzen wir Trade.Buy um 10 Mikrolot zu kaufen. Auch das tun wir nur, wenn wir weniger als eine geöffnete Position haben. Und zum Schluss nutzen wir noch den Comment Befehl, um uns auf dem Chart den Text „Das aktuelle Signal ist“ gefolgt von dem ermittelten Signal anzeigen zu lassen. Das wars auch schon. Wenn Sie soweit sind, können Sie oben auf Kompilieren klicken oder F7 drücken. Das hat hier ohne Fehler funktioniert. Es gibt hier noch Warnungen, das man den Konversionstyp überprüfen könnte. Für unser einfaches Beispiel soll das aber ausreichen. Und darum klicken wir hier oben oder drücken F4 um in den Meta Trader zurückzukehren. Und im Meta Trader klicken wir auf Ansicht, Strategietester oder wählen STRG+R aus. Das ruft dann hier den Strategietester auf. Hier wählen wir dann SimplerMACDStandAloneEA.ex5 aus, klicken auf Visualisierung und starten unseren Test. Und so sieht unser Expertadvisor dann im laufenden Betrieb aus. Wir haben hier schon eine erste eröffnete Position, die jetzt gerade geschlossen wurde. Unser Kontostand hat sich gerade erhöht. Und Sie haben in diesem kurzen Video gelernt, wie Sie den MACD Oszillator mit MQL5 eigenständig so programmieren können, dass er in der Lage ist, selbständig Positionen zu handeln und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.