MQL5 TUTORIAL GRUNDLAGEN – 118 SIMPLER LAST ORDER TYP

video

 

In diesem Video wollen wir uns einmal anschauen, wie man einen Expert Advisor erstellen kann, der in der Lage ist, die Richtung der letzten geschlossenen Position zu ermitteln. Also lassen Sie uns einmal schauen, wie man so etwas mit MQL5 programmieren kann. Ich hoffe, dass ich dieses Video aufnehmen kann, bevor der Baulärm wieder losgeht. Um zu starten, klicken Sie bitte im Metatrader auf dieses kleine Symbol hier oben oder drücken Sie die F4-Taste. Das ruft dann hier den Metaeditor auf und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, weiter. Ich vergebe hier mal den Namen SimplerLastOrderTyp, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb der OnTick-Funktion hier gelöscht werden und auch die zwei Kommentarzeilen werden entfernt. Wir starten hier oben mit einer include-Anweisung für die Datei trade.mqh. Die enthält die Klasse CTrade von der wir uns hier eine Instanz mit dem Namen trade erstellen. In der OnTick-Funktion berechnen wir zunächst den Ask-Preis. Das übernimmt die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart.

 

Wir nutzen SYMBOL_ASK und mit NormalizeDouble und _Digits stellen wir sicher, dass wir die richtige Anzahl von Nachkommastellen für das jeweilige Währungspaar ermitteln. Das wiederholen wir dann nochmal für den Bid-Preis. Diesmal nutzen wir SYMBOL_BID. Natürlich brauchen wir zur Ermittlung einer Positionsrichtung auch Positionen, also machen wir hier eine Position auf. Jeweils trade.Buy für einen Buy-Trade und trade.Sell für einen Sell-Trade. Natürlich würden man das hier nicht auf einem Echtgeldkonto machen, aber dafür sind Demokonten ja da. Zur Ermittlung der letzten Position möchten wir eine Funktion aufrufen. Die hat den Namen GetLastOrderType, existiert aber momentan noch nicht, denn die müssen wir gleich noch programmieren. Und das Ergebnis lassen wir uns dann mit einem Comment-Befehl auf dem Chart ausgeben. Dort wird dann stehen „Meine letzte Position war: “ und die ermittelte Positionsrichtung. Kommen wir jetzt aber zum interessanten Teil und das ist diese Funktion hier. Unsere selbsterstellte Funktion soll einen string, also eine Textkette zurückgeben und den Namen GetLastOrderType haben. Wir benötigen hier einige Variablen zur Ermittlung der Positionsdetails. Mit HistorySelect suchen wir uns jetzt einen Bereich heraus, den wir ermitteln möchten. Wir starten am Anfang bis zur aktuellen Zeit. Danach gehen wir mit Hilfe einer Vorschleife alle Deals durch. Innerhalb der Schleife ermitteln wir zunächst die Ticketnummer. Das geht mit HistoryDealGetTicket für den aktuellen Schleifenzähler. Gleichzeitig prüfen wir hier, ob diese Nummer größer ist als 0.

 

Wenn das der Fall ist, ermitteln wir den OrderProfit. Das übernimmt die Funktion HistoryDealGetDouble für die aktuelle Ticketnummer und als Parameter nutzen wir hier DEAL_PROFIT. Des Weiteren benötigen wir den Order-Typen. Der wird ermittelt mit Hilfe von HistoryDealGetInteger für die Ticketnummer und hier nutzen wir als Parameter DEAL_TYPE. Weiter geht es mit dem Währungspaar. Das bekommen wir über HistoryDealGetString für die aktuelle Ticketnummer und diesmal nutzen wir DEAL_SYMBOL. Außerdem brauchen wir den Typ für die Schließung. Den bekommen wir mit HistoryDealGetInteger für die Ticketnummer und diesmal nutzen wir DEAL_ENTRY. Jetzt prüfen wir noch, ob das Währungspaar zu unserem Währungspaar auf dem Chart passt und wir möchten noch wissen, ob der DealEntry den Wert 1 entspricht. Das ist nämlich der Fall, wenn eine Position geschlossen wurde. Wenn das der Fall war und die Schließung den Order-Typ ORDER_TYPE_BUY hatte, dann handelt es sich bei der ursprünglichen Position um einen Sell-Trade. War der Typ bei der Schließung aber ORDER_TYPE_SELL, dann wurde eine Buy-Position geschlossen. Jetzt weisen wir unserem Resultat hier noch die Ergebnisse für den OrderProfit, die Ticketnummer und die Richtung der Position zu.

 

Danach schließen wir unsere ganzen Schleifen und schlussendlich nutzen wir return, um unser ermitteltes Resultat an das Hauptmodul zurückzuliefern. Das war´s so weit. Wenn Ihnen das zu schnell ging oder wenn Sie keine Ahnung haben, was alle diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst eines der anderen Videos aus der Grundlagenserie noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs interessant für Sie. Das hier war übrigens wieder ein Vorschlag von einem Premiumkursmitglied und wenn Sie bereits Premiumkursmitglied sind und eine Idee für so ein Video hier haben, dann lassen Sie´s mich einfach wissen. Für den Moment klicken wir hier auf Kompilieren oder drücken die F7-Taste. Das hat bei mir ohne Fehler funktioniert und wenn das bei Ihnen auch so ist, dann können Sie hier oben klicken oder die F4-Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R.

 

Bitte wählen Sie hier die neu erstellte Datei SimplerLastOrderTyp.ex5 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Ich drehe hier mal die Geschwindigkeit runter. Wir sehen hier, das letzte Ticket war die Nummer 9. Jetzt sind wir schon bei zwölf angekommen. Unser Expert Advisor zeigt in wechselnder Folge hier Buy- und Sell-Trades an. Und Sie haben in diesem kurzen Video gelernt, wie Sie einen Expert Advisor programmieren können, der in der Lage ist, die Richtung der letzten Position anzuzeigen. Und Sie haben das selbst programmiert, mit diesen paare Zeilen hier in MQL5.