MQL5 TUTORIAL GRUNDLAGEN – 40 SIMPLER BUY BREAKEVEN STOP

video
play-sharp-fill

In diesem Video wollen wir uns einmal anschauen, wie man einen Break Even Stop setzen kann. Das bedeutet, sobald der Preis oberhalb des Kaufpreises liegt, wird hier so eine rote Stop loss-Linie sichtbar. Die soll verhindern, dass wir wieder ins Minus laufen und wir wollen uns einmal anschauen wie man sowas in MQL5 programmieren kann. Um das zu tun, klicken wir hier oben auf diesen kleinen Button oder drücken die F4-Taste. Das ruft dann hier den Meta Editor auf und hier klicken auf Datei, neue Datei, Expert Advisor aus Vorlage, weiter. Ich vergebe hier einmal den Namen SimplerBuyBreakEvenStop. 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 damit, dass wir die Datei Trade.mqh importieren. Das ist eine Datei, die Handelsfunktionen enthält. Denn wir müssen gleich eine Testposition eröffnen, damit wir etwas haben, wofür wir den Stop setzen können. Dazu erstellen wir uns eine Instanz von der Klasse CTrade. Die bekommt den Namen Trade. Da wir kaufen möchten, müssen wir zunächst einmal den Ask Preis berechnen. Das übernimmt die Funktion SymbolInfoDouble. Für das aktuelle Währungspaar auf dem Chart. Wir nutzen SYMBOL_ASK. Alles in Großbuchstaben, da wir den Ask Preis ermitteln möchten und mit NormalizeDouble und _Digits berechnen wir automatisch die richtige Anzahl der Nachkommastellen. Das kann sich je nach Währungspaar nämlich unterscheiden. Danach prüfen wir, ob wir offenen Positionen haben. Und nur wenn die Funktion PositionsTotal einen Rückgabewert von 0 liefert, dann haben wir keine offene Position. Und dann nutzen wir hier trade.Buy um auf unserem Testkonto eine Testposition zu eröffnen. Auf einem Echtgeldkonto würde man das natürlich nicht machen. Aber wir brauchen die Position, um jetzt im nächsten Schritt zu prüfen, ob unser Buy Break Even Stop gesetzt wird. Dazu rufen wir eine neue Funktion auf, die gibt es noch gar nicht, darum müssen wir die jetzt programmieren. Die bekommt als Parameter den Ask Preis übergeben. Sie trägt den Namen CheckBuyBreakEvenStop. wir haben keinen Rückgabewert und als Parameter nutzen wir hier den Ask Preis, damit das auch für mehrere Positionen funktioniert, gehen wir hier mit einer Vorschleife alle Positionen durch und zählen so lange runter wie wir noch offenen Positionen übrig haben. Für jede dieser Positionen benötigen wir jetzt ein paar Informationen. Wir fangen damit an, dass wir die Ticketnummer der Position ermitteln. Das geht mit der Funktion PositionGetInteger, POSITION_TICKET. Alles in Großbuchstaben. Der Rückgabewert ist hier witzigerweise eine unsignierte long-Variable, obwohl wir eigentlich eine integer-Variable erwarten. Aber wenn man das hier einmal markiert und die F1-Taste drückt, dann sieht man, dass der Rückgabewert tatsächlich long ist. Als nächstes benötigen wir den Kaufpreis. Das ist der Preis, zu dem wir eingestiegen sind. Den bekommen wir mit PositionGetDouble und übergeben hier POSITION_PRICE_OPEN. Das Ergebnis weisen wir hier der Variable buyprice zu. Das Ganze wiederholen wir jetzt noch einmal für den Positions-Stop-Loss und für den Positions-Take-Profit-Wert. Außerdem interesSiert uns noch der Typ der Position. Den bekommen wir mit PositionGetInteger, POSITION_TYPE. Der Typ gibt an, ob wir einen Kauf- oder Verkaufsposition haben. Und letztendlich möchten wir auch noch wissen, für welches Währungspaar unsere Position eröffnet wurde. Das übernimmt die Funktion PositionGetSymbol. Jetzt prüfen wir ein paar Konditionen ab: Zunächst einmal möchten wir wissen, ob das Positionssymbol übereinstimmt mit dem Währungspaar auf dem Chart. Außerdem möchten wir wissen, ob unser Positionstyp eine Kaufposition ist. In dem Fall wäre der Rückgabewert POSITION_TYPE_BUY. Ein Break Even Stop macht nur dann Sinn, wenn der PositionsStopLoss unterhalb des Kaufpreises liegt und außerdem möchte ich gerne erst den Stop Loss setzen, wenn der aktuelle Ask Price 30 Punkte oder mehr über den Einstiegspreis liegt. Und nur wenn alle dieser Bedingungen zutreffen, dann nutzen wir trade.PositionModify für das aktuelle Positionsticket und setzen den Stop Loss auf vier Punkte oberhalb des Einstiegspreises. Den TakeProfit-Wert lassen wir in diesem Fall unverändert. Fehlen noch zwei schließende Klammern für die Vorschleife und die Funktion. Und das wars so weit. Wenn Ihnen das jetzt hier alles zu schnell war oder wenn Sie nicht genau wissen was dieser Code hier bewirken soll, dann möchten Sie sich vielleicht die anderen Videos aus dieser Grundlagenserie noch einmal anschauen oder vielleicht ist auch der Premiumkurs auf der Webseite interessant für Sie. Für den Moment klicken wir mal auf kompilieren oder drücken die F7-Taste. Ich hab hier einen Fehler. Da hat sich eine eins eingeschlichen. Wiederholen wir das nochmal. Da fehlt ein L. Aber jetzt hat´s funktioniert. Wir haben hier keine Fehler. Nur eine Warnung, dass wir auf Grund einer Typumwandlung eventuell einen Datenverlust haben könnten. Für unser einfaches Beispiel soll das so reichen. Und wenn Sie keine Fehler haben, dann klicken wir jetzt hier oben oder drücken die F4-Taste, um in den Meta Trader zurückzukehren. Und im Meta Trader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R. Bitte wählen Sie hier das neue Programm SimplerBuyBreakEvenStop.ex5 aus. Markieren Sie die Option für die VisualiSierung und starten Sie ihren Test. Hier läuft unser Expert Advisor auch schon los und sobald der Preis hier diese grüne Linie durchbricht sollten wir unseren Break Even Stop sehen. Das ist jetzt gerade pasSiert. Der Preis hat sich aber wieder in die falsche Richtung bewegt. Hier sieht man das besser. Und Sie haben in diesem kurzen Video gelernt, wie Sie mit MQL5 für den Meta Trader 5 einen automatischen Break Even Stop setzen können, sobald sich der Preis einer Kaufposition in die richtige Richtung bewegt und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.