MQL5 TUTORIAL GRUNDLAGEN – 8 WIE FUNKTIONIERT DIE WHILE SCHLEIFE?

video
play-sharp-fill

In diesem Video schauen wir uns einmal den While Loop an. Der zählt hier oben gerade bis 500.000 und erst dann läuft unser Test hier unten los. Und wir wollen uns jetzt einmal anschauen, wie man dem While Befehl dazu einsetzen kann, bestimmte Dinge in einer Schleife auszuführen. Um das zu tun klicken wir im Metatrader auf diesen kleinen Button hier oder drücken die F4 Taste. Das ruft dann den Metaeditor auf. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerWhileLoop. Klicke auf Weiter, Weiter und Fertigstellen. Jetzt können wir alles oberhalb der OnTick Funktion löschen, auch die zwei Kommentarzeilen können weg. Wir starten damit, dass wir uns hier oben eine integer Variable für einen Verzögerungszähler erstellen. Die bekommt zunächst den Wert eins zugewiesen. Wir verwenden eine integer Variable, weil wir keine Nachkommastellen benötigen. Das gleiche machen wir hier nochmal. Das hier soll unser Mindestwert sein. Bis 500.000 soll unsere While Schleife hochzählen, bevor unser Programm weiterläuft. Auch hier reicht uns wieder ein ganzzahliger Wert. Und innerhalb unserer OnTick Funktion möchten wir jetzt überprüfen, ob unser Verzögerungszähler noch kleiner ist, als der Mindestwert für den Start. Und alles was innerhalb der zwei geschweiften Klammer hier steht, wird ausgeführt, solange der Ausdruck hier oben wahr ist. In diesem einfachen Beispiel möchten wir gerne mit dem Comment Befehl den Text DelayCounter gefolgt von dem aktuellen Wert unseres Zählers ausgeben. Und danach wird der Zähler um eins erhört. Das geht mit dem Befehl DelayCounter= DelayCounter+1. Das war es auch schon so weit. Und wenn wir alles haben, klicken wir hier oben auf Kompilieren oder drücken auf die F7 Taste. Das sollte hier ohne Fehler funktionieren. Und in dem Fall können wir hier oben klicken oder die F4 Taste 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 jetzt die neue Datei SimplerWhileLoop.ex5 aus, markieren die Option für die Visualisierung und starten unseren Test. Unser Counter fängt hier oben an hochzuzählen. Und sobald ein Wert von 500.000 erreicht ist, geht es hier weiter. Soweit so gut, aber der While Loop hat leider einen Haken. Nehmen wir einmal diese Erhöhung des Zählers, schneiden sie aus und fügen sie außerhalb des While Loops ein. Kompilieren unseren Code hier erneut. Und starten einen neuen Test. Dann passiert hier überhaupt nichts. Egal, ob wir die Geschwindigkeit verändern. Der Counter wird nicht hochgezählt. Und der Grund dafür ist, dass wir hier eine Endlosschleife erschaffen haben. Da der Wert innerhalb der Schleife niemals hochgezählt wird, ist diese Bedingung hier immer wahr. Und unser Programm würde den While Loop nie wieder verlassen. Man könnte den While Loop hier auch gegen if austauschen. Erneut kompilieren. Und jetzt würde unser Counter die ganze Zeit laufen. Wenn Sie also While in Ihrem Programm verwenden, dann stellen Sie auf jeden Fall sicher, dass innerhalb der While Schleife eine Veränderung existiert die dafür sorgt, dass der Ausdruck, der oben abgefragt wird, irgendwann einmal nicht wahr ist. Denn nur dann funktioniert die Schleife so wie gewollt. Andernfalls würde sie Ihr Programm auf ewig blockieren. In diesem kurzen Video haben Sie gelernt, wie Sie die While Schleife einsetzen können. Und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.

Download “CODE - SIMPLER WHILE LOOP”

SimplerWhileLoop.mq5 – 79-mal heruntergeladen – 438 B