MQL5 TUTORIAL GRUNDLAGEN – 41 SIMPLER SELL BREAKEVEN STOP

video

In diesem Video wollen wir uns einmal anschauen, wie man einen Breakeven Stop für einen Sell Trade setzen kann. Das ist hier diese kleine rote Linie. Die wird gesetzt, sobald sich der Preis in unsere Richtung bewegt. Und wir wollen wir uns einmal anschauen, wie man so etwas mit MQL5 programmieren kann. Um das zu tun, klicken Sie bitte hier oben auf dieses kleine Symbol 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 einmal den Namen SimplerSellBraeakEvenStop, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser OnTick Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Wir starten mit einem include Befehl. Damit importieren wir die Inhalte der Datei Trade.mqh. Die ist Bestandteil von MQL5 und stellt uns einfache Handelsfunktionen bereit, die wir gleich nutzen werden um eine Testposition zu eröffnen. Wir erstellen uns hier zunächst einmal von der Klasse CTrade eine Instanz mit dem Namen trade. Innerhalb der OnTick Funktion berechnen wir zunächst den Bid Preis. Den brauchen wir, da wir ja eine Sell Position eröffnen möchten. Der Bid Preis wird ermittelt mit SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen hier als Parameter SYMBOL_BID, alles in Großbuchstaben. Und mit NormalizeDouble und _Digits sorge ich dafür, dass die richtige Anzahl von Nachkommastellen hinter dem Komma berechnet wird. Denn das kann je nach Währungspaar unterschiedlich sein. Danach prüfen wir den Rückgabewert von PositionsTotal. Und wenn der null ist, dann haben wir keine offenen Positionen. Wir brauchen aber eine, damit wir einen Breakeven Stop setzen können. Natürlich würde man das nicht auf einem Echtgeldkonto tun. Aber für unseren Strategietest nutzen wir jetzt trade.Sell um eine Testposition über zehn Mikrolot zu eröffnen. Und danach rufen wir eine Funktion mit dem Namen CheckSellBreakEvenStop auf und übergeben der den Bid Preis. Diese Funktion existiert allerdings noch gar nicht. Darum müssen wir die jetzt programmieren. Unsere selbstprogrammierte Funktion CheckSellBreakEvenStop hat keinen Rückgabewert. Darum nutzen wir hier void. In den runden Klammern übernehmen wir hier den Bid Preis, den wir hier oben übergeben haben. Und jetzt nutzen wir eine for Schleife, um von PositionsTotal, also der Gesamtanzahl der Positionen solange alle Position durchzugehen, bis keine mehr übrig sind. Zunächst ermitteln wir die Ticket Nummer. Die bekommen wir mit PositionGetInteger. Als Parameter übergeben wir hier in Großbuchstaben POSITION_TICKET. Außerdem interessiert uns der Einstiegspreis. Ich habe den hier einmal PositionBuyPrice genannt. Den bekommen wir mit PositionGetDouble und übergeben als Parameter POSITION_PRICE_OPEN, ebenfalls alles in Großbuchstaben. Den aktuellen PositionStopLoss bekommen wir mit PositionGetDouble. Hier übergeben wir POSITION_SL. Nahezu identisch tun wir das für den Take Profit Wert. Auch hier wird PositionGetDouble genutzt. Anders ist nur der Parameter. Denn der heißt in diesem Fall POSITION_TP. Um die Richtung zu ermitteln brauchen wir noch den Typ der Position. Den kriegen wir mit PositionGetInteger, POSITION_TYPE. Und da wir ja auch nur für das aktuelle Währungspaar eine Änderung vornehmen möchten, nutzen wir PositionsGetSymbol für die aktuelle Positionsnummer, um das Währungspaar für die aktuelle Position zu ermitteln. Jetzt können wir unsere Bedingungen definieren. Zunächst möchten wir gerne wissen, ob das Währungspaar auf dem Chart und das Positionssymbol übereinstimmen. Außerdem möchte ich gerne wissen, ob der Positionstyp den Wert POSITION_TYPE_SELL hat. Denn nur wenn das so ist, handelt es sich um eine Sell Position. Dann möchten wir noch wissen, ob der PositionStopLoss derzeit noch oberhalb des Positionseinstiegspreises ist. Und ich möchte meinen Breakeven Stop erst setzen, wenn der Bid Preis mindestens dreißig Punkte unterhalb des Einstiegspreises ist. Und nur wenn alle diese Bedingungen hier erfüllt sind, dann nutzen wir trade.PositionModify für das aktuelle Positionsticket, setzen den Breakeven Stop vier Punkte unterhalb des Einstiegspreises und lassen den Wert für den Take Profit unverändert. Bitte vergessen Sie nicht hier die zwei schließenden Klammern für den for Loop und für die Funktion. Das war es dann soweit. Wenn Ihnen das hier alles zu schnell ging oder wenn Sie nicht verstehen, was diese Code Zeilen hier bewirken wollen, dann möchten Sie vielleicht die anderen Videos aus dieser Grundlagenserie noch schauen. Oder eventuell ist für Sie auch der Premiumkurs auf unserer Webseite interessant. Für den Moment klicken wir mal hier auf Kompilieren. Das hat bei mir ohne Fehler funktioniert. Und wenn das bei Ihnen auch so ist, dann können Sie jetzt 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 Ctrl+R. Bitte rufen Sie hier das neu erstellte Programm SimplerSellBraeakEvenStop.ex5 auf. Markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. So sieht das Ganze dann im laufenden Betrieb aus. Und hier wurde gerade unser Breakeven Stop gesetzt. Unser Expert Advisor funktioniert also. Und Sie haben gelernt, wie Sie mit MQL5 für einen Sell Trade einen automatischen Breakeven Stop setzen können, sobald sich der Kurs in Ihre Richtung bewegt. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.