![video](https://d8wyob5mxqc1u.cloudfront.net/MQL5Tutorial-DE/BASICS/MQL5-TUTORIAL-GRUNDLAGEN-14-SIMPLES-BUY-LIMIT.png)
In diesem Video wollen wir uns einmal anschauen, wie man ein Buy Limit automatisch mit MQL5 im Markt platzieren kann. Ein Buy Limit ist ein Auftrag für einen Kauf, der zu einem bestimmten Kurs ausgeführt werden soll. In der Regel kaufen wir zum Marktpreis. Aber wenn wir hier mal hinein zoomen, dann sehen wir, dass Buy Limit deutlich unter dem aktuellen Marktpreis liegt. Und erst, wenn sich der Kurs bis hier unten bewegt hat, dann würde eine Kauforder ausgelöst. Und wir wollen uns einmal anschauen, wie man das mit MQL5 programmieren kann. Um das zu tun, klicken Sie im Metatrader bitte auf diesen kleinen Button hier oder drücken Sie die F4 Taste. Das ruft dann hier den Metaeditor auf. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplesBuyLimit, klicke auf Weiter, Weiter und Fertigstellen. Jetzt können wir alles löschen, was sich oberhalb dieser OnTick Funktion befindet. Auch die zwei Kommentarzeilen werden entfernt. Wir starten, indem mit dem include Befehl die Datei Trade.mqh importieren. Das ist eine Bibliothek, die vereinfachte Handelsfunktionen bereitstellt und die mit MQL5 installiert wird. Danach erstellen wir uns eine Instanz von CTrade. Die bekommt den Namen trade. Und diese Instanz werden wir später nutzen, um unser Buy Limit im Markt zu platzieren. In der OnTick Funktion selbst, müssen wir zunächst einmal den Ask Preis berechnen. Das machen wir mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Und wir nutzen SYMBOL_ASK, alles in Großbuchstaben, um den Ask Preis zu ermitteln. Mit NormalizeDouble und _Digits lässt sich der ermittelte Preis auf die entsprechende Anzahl von Nachkommastellen kürzen. In diesem Währungspaar wären das drei, während das in anderen Währungspaaren auch mal fünf Nachkommastellen sein können. Für dieses einfache Beispiel ermitteln wir einfach, ob wir bereits offene Orders oder Positionen haben. In MQL5 gibt es zwei unterschiedliche Befehle dafür. OrdersTotal liefert uns die Anzahl der Aufträge für Positionen. Und PositionsTotal liefert uns die tatsächliche Anzahl von geöffneten Positionen. Mit diesem doppelten && hier lassen sich beide Bedingungen miteinander verknüpfen. Und wir setzen erst dann unser Buy Limit ab, wenn beides geprüft worden ist. Dazu nutzen wir jetzt trade.BuyLimit. Hier brauchen wir noch ein paar Parameter. Die werden hier in runden Klammern übergeben. Ich mache immer direkt beide Klammern. Man kann leicht eine Klammer vergessen. Und gerade für Anfänger ist es vielleicht gut zu wissen, dass man eine Klammer markieren kann. Dann wird immer die jeweils andere Klammer ebenfalls angezeigt. So kann man relativ einfach rausfinden, ob man in solchen Konstrukten hier irgendwo eine Klammer vergessen hat oder eine Klammer zu viel nutzt. In unserem ersten Parameter geben wir an, wieviel wir kaufen wollen. In diesem Fall sind das zehn Mikrolot. Parameter Nummer zwei gibt an, zu welchem Preis unser Buy Limit gesetzt werden soll. Wir möchten gerne 200 Punkte unter dem aktuellen Ask Preis unser Buy Limit setzen. Im nächsten Parameter geben wir an, für welches Währungspaar wir diesen Auftrag erteilen wollen. Mit _Symbol wird das automatisch ermittelt für das Währungspaar, das wir gerade auf unserem Chart haben. Danach kommt ein Wert für den Stop Loss. In unserem Fall haben wir hier null gewählt. Wir könnten für den Stop Loss diese Notation hier verwenden und den zum Beispiel 400 Punkte unter den aktuellen Ask Preis setzen. Was wir aber setzen, ist auf jeden Fall ein Take Profit. 200 Punkte über dem Ask Preis möchten wir die Position gerne mit Profit schließen. Als nächstes geben wir an, wie lang unsere Order gültig sein soll. Wir nutzen hier ORDER_TIME_GTC. Das steht für Good to Cancel und bedeutet, wir haben kein Ablaufdatum. Darum ist auch unser nächster Parameter eine null. Hier könnten wir eine Ablaufzeit definieren. Und der letzte Parameter wäre ein Kommentar. Damit ließe sich beispielsweise bei der Verwendung von mehreren Expert Advisors in einem Chart rausfinden, zu welchem Expert Advisor unser Buy Limit gehört. Sowas nutze ich so gut wie gar nicht. Das war es soweit. Hinter die zweite runde Klammer kommt noch ein Semikolon. Und wenn Sie soweit alles eingegeben haben, dann klicken Sie hier oben auf Kompilieren oder drücken Sie die F7 Taste. Wir haben hier keine Fehler, nur eine Warnung, weil ich für den letzten Parameter eine null verwendet habe. Eigentlich sollte das ein Text sein. Und dafür könnten wir diese Konstante NULL verwenden. Die wird in Großbuchstaben geschrieben. Und wenn wir jetzt nochmal kompilieren, dann ist auch unsere Warnung weg. Und wenn das bei Ihnen auch der Fall ist, dann klicken Sie auf dieses kleine Symbol hier oben oder drücken Sie die F4 Taste, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Im Strategietester wählen wir dann die neue Datei SimplesBuyLimit.ex5 aus, markieren hier die Option für die Visualisierung und starten unseren Test. So sieht das Ganze jetzt aus. Hier unten sehen wir bereits, dass unser Buy Limit gesetzt wurde. Beschleunigen wir hier mal den Kurs etwas. Dann haben wir jetzt ein Buy Trade. Der wird aufgrund des Spreads manchmal etwas später ausgelöst. Und Sie haben in diesem Video gelernt, wie Sie mit MQL5 ein Buy Limit in den Markt setzen können. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5. Download “CODE - SIMPLES BUY LIMIT” SimplesBuyLimit.mq5 – 100-mal heruntergeladen – 863,00 B