In diesem Video möchten wir uns einmal die While Schleife anschauen. Man kann mit der While Schleife Positionen eröffnen. Es gibt einen Unterschied zum If Statement. Und wir wollen uns in diesem Video einmal anschauen wie man das in MQL5 programmieren kann. Um das zu tun, klicken Sie bitte auf diesen kleinen Button hier oder drücken Sie die F4-Taste im Metatrader. 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 Simple While Schleife, klicke auf Weiter, Weiter und Fertigstellen. Und jetzt kann alles oberhalb der On Tik Funktion gelöscht werden und auch die zwei Kommentarzeilen kommen weg. Damit wir überhaupt eine Position eröffnen können, erstellen wir uns erst einmal eine Instanz von CTrade. CTrade ist eine Hilfsklasse, die in der Datei Trade.mqh enthalten ist. Also importieren wir diese Datei mit dem Include Befehl und erstellen uns hier eine Instanz von CTrade, die den Namen Trade bekommt, handeln möchten wir, wenn keine offenen Positionen da sind. In MQL5 ermitteln wir das, indem wir abfragen, ob PositionsTotal gleich 0 ist. Und wenn das der Fall ist, dann möchten wir gerne eine BuyOrder eröffnen. Dazu erstellen wir hier eine separate Funktion. Die bekommt auch den Namen OpenBuyOrder, den wir hier aufrufen. Dazu ermitteln wir erst einmal den Ask Preis. Den liefert uns die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart und mit dem Parameter SYMBOL_Ask sagen wir, dass wir den Ask Preis brauchen, SYMBOL_BID würde uns den Bid Preis liefern. Der blaue Preis ist das, was ich bezahlen muss, wenn ich etwas kaufe. Der rote Preis ist das, was ich bekomme, wenn ich etwas verkaufe. Dieser Abstand hier wird Spread genannt und das ist es, woran der Broker verdient. Und nachdem wir jetzt hier den Ask Preis ermittelt haben, möchten wir gerne zehn Mikro Lot. Das tun wir mit Trade.Buy. 0.10 steht für zehn Mikro Lot. Wenn Sie sich für den Rest der Parameter hier interessieren, dann schauen Sie sich einfach einmal das Video Simpler Buy Trade an, dort werden die restlichen Parameter erklärt. Aber in unserem Fall geht es hier um If oder While. Also schließen wir die Funktion. Klicken hier auf Kompilieren oder drücken F7. Das hat ohne Fehler funktioniert und darum können wir jetzt hier klicken oder F4 drücken, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination STRG+
R. Hier wählen wir dann unsere neu erstellte Datei SimpleWhileSchleife.ex5 aus. Ich deaktiviere hier einmal die Visualisierung. Und starte einen Test. Das geht in wenigen Sekunden. Hier ist unser Endergebnis. Wir haben 1.084,59 Euro Plus gemacht. Jetzt tauschen wir hier einmal das If Statement durch die WhileSchleife aus. Kompilieren nochmal, starten unseren Test erneut und haben hier das exakt selbe Ergebnis 1.084,59 Euro. Offensichtlich machen If und While das gleiche. Aber warum gibt es dann zwei Befehle. Um das zu prüfen, ändern wir hier einmal die Anzahl und prüfen, ob wir weniger als zehn offene Positionen haben. Danach müssen wir wieder kompilieren. Starten wir unseren Test also nochmal und diesmal haben wir einen Nettogewinn von 10.845,90 Euro gemacht. Machen wir das gleiche nochmal mit dem If Statement, kompilieren erneut, starten wieder unseren Test. Dann haben wir diesmal einen etwas abweichendes Ergebnis. Aber wie kann das sein? Wir haben doch hier nur die Anzahl der zu prüfenden Positionen geändert. Die Antwort auf diese Frage bekommen wir, wenn wir hier die Visualisierung aktivieren und den Test nochmal starten. Dann sehen wir hier, dass einzelne Positionen eröffnet werden, wenn wir das If Statement benutzen. Stoppen wir den Test mal an der Stelle und wechseln hier im Quelltext noch einmal auf While, kompilieren erneut, starten den Test erneut, dann sehen wir hier nur einen einzigen Strich und diese verschwommenen Buchstaben hier. Und das kommt davon, dass der While Befehl alle Positionen hier gleichzeitig eröffnet hat. Denn während der If Befehl in der On Tik Funktion nur einmalig ausgeführt wird, um eine Bedingung zu überprüfen, wird der While Befehl solange durchlaufen, wie dieser Ausdruck hier zutrifft. Und darum werden alle zehn Positionen gleichzeitig geöffnet. Ok. In diesem kurzen Video haben Sie gelernt, wie Sie mit dem While Befehl in einem Expert Advisor Positionen eröffnen können und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.