MQL5 Tutorial Deutsch – Fortgeschrittener Break Even Stop

video
play-sharp-fill

Heute möchten wir uns einmal einen Break Even Stop ansehen.

Das bedeutet, sobald hier der Kaufpreis um 200 Punkte nach oben überschritten wird, wird der Stop auf den Kaufpreis gesetzt damit wir keine Verlust mehr machen.

In diesem Fall warten wir jetzt hier bis die 200 Punkte erreicht sind, dann dürfte diese grüne Linie hier rot werden und sich vom Buypreis in den aktuellen Stop verwandeln, das ist jetzt hier gerade geschehen.

Und ab hier kann man dann den Trade laufen lassen oder den Stop von Hand nachziehen.

Wie kann man jetzt einen solchen Break Even Stop programmieren?

Um das zu tun, klicken wir im Metatrader hier oben auf den kleinen Button oder drücken die F4-Taste.

Das startet dann hier den Metaeditor und hier wählen wir, Datei – Neu – Expert Advisor aus Vorlage – Weiter – Ich vergebe hier einmal den Namen FortgeschrittenerBreakEvenStop – klicke auf Weiter – Weiter – Fertigstellen.
Alles oberhalb der OnTick Funktion hier kann jetzt gelöscht werden und danach entfernen wir die zwei Kommentarzeilen.

Damit wir etwas traden können, was einen Break Even Stop nachzieht, importieren wir erst einmal die Datei Trade.mqh.

Es handelt sich hierbei um eine interne Bibliothek von MQL5 die Verwaltungs- und Öffnungs- und Schliess-Funktionen für Trades enthält.

Und jetzt erstellen wir uns von Ctrade eine Instanz mit dem Namen trade.

Hier steht es auch, Klasse CTrade: Ctrade ist eine Klasse für den vereinfachten Zugriff auf die Handelsfunktionen.

Da wir uns eine Buyposition eröffnen möchten, holen wir uns zunächst einmal den Askpreis.

Das machen wir mit der Funktion SymbolInfoDouble, für das aktuelle Währungspaar und wir nutzen die Konstante SYMBOL_ASK um den Askpreis zu ermitteln.

Wenn man hier F1 drückt, dann sieht man dass man sich mit SYMBOL_BID, den Bidpreis, also das beste Verkaufsangebot, holen kann.

Das würden wir brauchen wenn wir einen Shorttrade eröffnen möchten.

Mit NormalizeDouble und _Digits stellen wir sicher, dass wir die richtige Anzahl von Nachkommastellen erhalten, denn es gibt Währungspaare mit drei oder mit fünf Nachkommastellen.

Wenn keine Positionen geöffnet sind, wenn also die Funktion PositionsTotal kleiner eins ist, dann eröffnen wir eine Buyposition zu Testzwecken, deswegen bitte nicht auf einem Echtgeldkonto handeln.

Wir machen das in diesem Falle mit Trade.Buy, unsere Positionsgröße beträgt zehn Microlot, wir handeln das auf dem aktuellen Chart, kaufen zum Askpreis, der initiale Stoploss wird 1000 Punkte unter unserem Askpreis gesetzt und unser Takeprofit liegt 500 Punkte darüber.

Der letzte Parameter hier wäre ein Kommentar, den benötigen wir nicht, also nutzen wir hier NULL.

Nachdem wir jetzt eine Position eröffnet haben rufen wir eine Funktion auf die den Break Even Stop setzen soll, die wird den Namen CheckBreakEvenStop haben und bekommt als Parameter den Askpreis, den wir hier oben ermittelt haben.

Unsere neue Funktion ist vom Typ void, hat also keinen Rückgabewert, bekommt den Namen CheckBreakEvenStop und benötigt den Askpreis als übergebenen Parameter.

Im ersten Schritt zählen wir hier alle offenen Positionen durch, das machen wir mit dieser for-Schleife hier, unser Zähler bekommt den Namen i, zählt von der Gesamtanzahl der Positionen minus 1 runter, solange wie i noch grösser ist als null, also wie wir noch offene Positionen haben wird von i eins abgezogen und die Schleife geht von vorne los.

Und in dieser for-Schleife werden wir mit PositionGetSymbol für unseren Zähler das Währungspaar für die aktuelle Position ermitteln.

Wenn das Währungspaar auf dem Chart mit dem Währungspaar für unsere aktuelle Position identisch ist, if, _Symbol==Symbol, dann ermitteln wir die aktuelle Ticket Nummer für die Position.

Das geht mit PositionGetInteger und wir benutzen die Konstante POSITION_TICKET.

Danach berechnen wir den Eröffnungspreis der Position, das geht mit PositionGetDouble und wir nutzen POSITION_PRICE_OPEN.

Die beiden ermittelten Werte werden in der Variable PositionTicket und PositionBuyPrice gespeichert.

So und sobald der Askpreis jetzt 200 Punkte über dem von uns gewählten Kaufpreis liegt, if Ask > PositionBuyPrice + 200* _Point, dann ändern wir hier den Stop Loss, das geht mit Trade.PositionModify und als Parameter übergeben wir PositionTicket, also die Ticket Nummer die wir hier ermittelt haben, und PositionBuyPrice, den haben wir hier berechnet.

Hier können wir noch den Take Profit ändern, das wollen wir aber nicht tun.

Das einzige was wir in diesem einfachen Beispiel noch machen, ist unseren if loop, unseren for loop und unsere BreakEven Stop Funktion, zu schliessen.

Danach klicken wir hier oben auf kompilieren oder drücken die Taste F7 und dann sollte das ohne Fehler und Warnungen funktionieren und wenn das bei Ihnen auch so ist, dann klicken Sie bitte hier oben oder drücken Sie F4 um in den Metatrader zurückzukehren.

Im Metatrader klicken wir auf Ansicht – Strategietester, oder drücken STRG+R, das ruft dann hier das Strategietester Panel auf und hier wählen wir die Datei FortgeschrittenerBreakEvenStop.ex5 aus, ausserdem brauchen wir hier die Visualisierungsoption und starten hier unseren Test.

Jetzt hat unser Expert Advisor hier gekauft, mit der Minus-Taste zoomen wir jetzt mal in das Chart und erhöhen hier die Geschwindigkeit.

Dann sollten Sie sehen wie sich hier unser Break Even Stop, beim erreichen der 200 Punkt Profitgrenze, automatisch setzen lässt.

Ok, das wars auch schon, Sie haben gelernt wie man mit einem einfachen Expert Advisor in MQL5, den Break Even Stop so setzt, dass bei einem geöffnetem Trade keine Verluste mehr auftretten können und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.

Download “MQL5 Tutorial - Fortgeschrittener Break Even Stop”

MQL5-Tutorial-Deutsch-Fortgeschrittener-Break-Even-Stop.mp4 – 214-mal heruntergeladen – 21,81 MB