MQL4 Tutorial Deutsch – Simple While Schleife

In diesem Video möchten wir uns einmal die While Schleife anschauen. Mit einer While Schleife kann man Anweisungen mehrfach hintereinander ausführen. Sie funktioniert etwas anders als die If Abfrage. Und wir wollen uns in diesem Video einmal anschauen, wie man in MQL4 den While Befehl nutzen kann. Um das zu tun klicken Sie bitte auf diesen kleinen Button hier oder drücken Sie die F4-Taste auf ihrer Tastatur. Das ruft dann hier den Metaeditor auf und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter, ich vergebe hier mal den Namen SimpleWhileSchleife, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der On Tik Funktion hier gelöscht werden, auch die zwei Kommentarzeilen können weg. Wir möchten gerne prüfen, ob keine offenen Positionen existieren, nutzen den While Befehl. Und fragen ab, ob OrdersTotal gleich 0 ist und wenn das so ist, dann möchten wir eine Funktion aufrufen, die heißt öffne BuyOrder. Die habe ich einfach aus einem anderen Video abgeschrieben. Wenn Sie sich für die einzelnen Funktionen hier interessieren, dann schauen Sie sich einfach das Video Simple BuyOrder an. Aber in unserem Fall geht es um die Unterschiede zwischen While und If. Wenn Sie also soweit fertig sind, dann klicken Sie bitte hier oben auf Kompilieren oder drücken Sie die F7-Taste. Das hat hier ohne Fehler und Warnungen funktioniert. Und darum können wir hier klicken oder mit F4 in den Metatrader zurückkehren. Im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination STRG+R. Bitte wählen Sie das Programm SimpleWhileSchleife.ex4. Ich deaktiviere hier mal den visuellen Modus. Um das Ganze zu beschleunigen und klicke auf Test starten. Das sollte jetzt hier innerhalb von wenigen Sekunden über die Bühne gehen. Im Endergebnis haben wir einen Verlust von 39,43 Euro gemacht. Jetzt ersetzen wir mal den While durch den If Befehl, kompilieren unseren Text erneut, wiederholen hier den Test und nach ein paar Sekunden sehen wir hier im Endergebnis: Aha, gleiches Ergebnis, wieder 39,43 Euro Verlust. Offensichtlich scheinen If und While hier das selbe zu tun. Aber warum gibt es dann zwei Befehle? Ändern wir hier die Abfrage einmal und prüfen, ob wir weniger als zehn geöffnete Positionen haben. Dafür müssen wir nochmal kompilieren, starten erneut einen Test und wir haben einen Nettoprofit von 173,95 Euro. Jetzt tauschen wir If wieder gegen While aus, kompilieren ein letztes Mal, wiederholen den gleichen Test und natürlich würden wir jetzt dasselbe Ergebnis erwarten. Tatsächlich aber haben wir diesmal ein Minus gemacht von 394,29 Euro. Wie kann es sein, dass While und If gleich funktionieren, wenn das einzige, was sich verändert hat, die Anzahl der offenen Positionen ist. Nun, wenn man hier auf den visuellen Modus wechselt und sich bei mittlerer Geschwindigkeit einmal hier anschaut, was passiert, dann sehen wir hier diese verschwommene Schrift und das liegt daran, dass alle diese Positionen hier gleichzeitig geöffnet worden sind. Durch den While Befehl hier wurde so oft geprüft, ob wir weniger als zehn Positionen haben, bis das nicht mehr der Fall war und die Funktion öffne BuyOrder wurde zehnmal zur gleichen Zeit aufgerufen. Ändern wir das nochmal und wählen If, kompilieren erneut. Stoppen den Test und starten ihn nochmal. Dann sehen wir, dass mit If die Positionen nacheinander eröffnet wurden. Und der Grund dafür ist, dass If nur eine Abfrage von dieser Bedingung darstellt und genau einmal in der On Tik Funktion aufgerufen wird, während While sooft hintereinander aufgerufen wird, bis diese Bedingung hier nicht mehr stimmt. Das macht dann den Unterschied bei der Zeit für die Eröffnung dieser Positionen aus. Und das wiederrum führt dann dazu, dass das komplette Endergebnis verändert wird. In diesem kurzen Video haben Sie gelernt, wie man den While Befehl in MQL4 benutzt. Und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL4.

Download “MQL4 TUTORIAL DEUTSCH - SIMPLE WHILE SCHLEIFE” SimpleWhileSchleife.txt – 32-mal heruntergeladen – 776 B