MQL5 Programmierung – Switch und Case Abfragen

video
play-sharp-fill
In diesem Video werden wir herausfinden, wie man die “ switch “ und die “ case “ Anweisung verwendet, um den Kontrollfluss eines Expert Advisors zu ändern.
Dies ist ein automatisierter Expert Advisor; er tut im Moment nicht viel, wir haben nur eine Ausgabe: „Kunde wünscht RSI“, und jetzt wollen wir herausfinden, wie man diesen Wert mit Hilfe der „switch“- und „case“-Anweisung ändern kann.
Dazu klicken Sie bitte auf das kleine Symbol hier oder drücken Sie F4. Nun sollten Sie das Metaeditor-Fenster sehen und hier wählten Sie die gewünschte Option: „Datei/Neu/Expert Advisor (Vorlage)“ aus der Vorlage, „Weiter“, ich werde diese Datei nennen: „SimpleSwitchCase“, klicken Sie auf „Continue“, „Continue“ und „Finish“ und nun können wir alles oberhalb der „OnTick“-Funktion entfernen und lassen auch hier die beiden Kommentare entfernen.
Wir beginnen mit der Verwendung einer ganzzahligen Variablen, die aufgerufen wird: „choice“ und diese sollte den Wert 5 haben. Innerhalb der „OnTick“-Funktion verwenden wir auch eine Zeichenkettenvariable namens „choice“, die den Wert 5 haben sollte: „entry“, wir weisen hier keinen Wert zu, weil wir den Eintrag auf der Basis unserer Wahl hier definieren wollen. Das geschieht mit Hilfe der „switch“-Anweisung, wir wollen verschiedene Optionen für unsere Wahl durchgehen, also für den Fall, dass der Kunde 5 wählt: „der Kunde will RSI“. Wir verwenden hier ein Plus- und ein Gleichheitszeichen, und ich werde später erklären, warum wir das tun, denn jetzt wollen wir abbrechen. Diese „break“-Anweisung hier wird die „switch-case“-Schleife verlassen, sobald dieser Code hier ausgeführt wurde.
Lassen Sie uns hier noch einen weiteren hinzufügen; für den Fall, dass unsere Wahl auf 4 steht, sollte der Eintrag „der Kunde will Bollinger-Bänder“ werden, auch hier verwenden wir die „break“-Anweisung, um unser „switch and case construct“ hier zu belassen.
Lassen Sie uns noch eine weitere hinzufügen; für den Fall, dass unsere „choice“-Variable den Wert 3 hat, wollen wir „customer wants MacD“ zu unserer „entry“-Anweisung hinzufügen.
Sie könnten hier auch einen Ausdruck wie 1 plus 1 (1+1) anstelle einer Zahl verwenden, aber die case-Anweisung nimmt keine Variablen an, sonst würden Sie hier einen Fehler erhalten.
Lassen Sie uns auch eine „Standard“-Option hinzufügen; „Standard“ wird immer dann ausgeführt, wenn keiner der oben genannten Werte wahr ist, und in diesem Fall möchten wir unsere „Eingabe“-Anweisung haben: „der Kunde weiß es nicht“.
Fügen wir hier zwei geschweifte Klammern hinzu und danach möchten wir eine Ausgabe für unseren „Eintrag“ mit der Funktion „Kommentar“ erstellen.
Wenn Sie fertig sind, klicken Sie bitte hier auf den „Kompilieren“-Knopf, der ohne Fehler oder Warnungen funktionieren sollte, und in diesem Fall können wir hier auf einen kleinen Knopf klicken oder F4 drücken, um zurück zu Metatrader zu gelangen.
In Metatrader klicken wir auf: „View/ Strategy Tester“ oder drücken STRG und R, hier wollen wir die neue Datei auswählen: „SimpleSwitchCase.ex5“, bitte aktivieren Sie hier die Option für die Visualisierung und starten Sie einen Test.
Hier ist unsere Ausgabe: „der Kunde will RSI“, also ändern wir hier die Auswahl auf 3, kompilieren den Code neu, starten einen weiteren Test und diesmal erhalten wir die Ausgabe: „der Kunde will MacD“, denn das ist gleichbedeutend mit unserer „Wahl“ 3. Ändern wir das hier auf 11, kompilieren wir den Code neu, und dieses Mal bekommen wir die Ausgabe: „Der Kunde weiß es nicht“, weil 11 nicht in unserer Auswahlliste steht, so daß wir hier die Standardausgabe erhalten.
Okay, es gibt etwas Besonderes an diesen „switch“- und „case“-Anweisungen, und das ist die Möglichkeit, die „break“-Anweisung zu entfernen, lassen Sie es uns für die ersten beiden „case“-Anweisungen hier tun, setzen Sie die „choice“ wieder auf 5, kompilieren Sie den Code neu, starten Sie einen weiteren Test und dieses Mal erhalten wir den Text: „der Kunde will RSI“, „der Kunde will Bollinger-Bänder“ und „der Kunde will MacD“, und zwar deshalb, weil nun die ersten drei Teile unseres „switch-case-Konstrukts“ ausgeführt wurden. Denken Sie also bitte daran, dass unser kleines Expertenratgeber-Programm die Schleife nicht verlässt, wenn Sie den „Pausen“-Operator hier weglassen, sondern mit der Überprüfung der nächsten Bedingung fortfahren.
In diesem kleinen Video haben Sie gelernt, wie man die „switch“- und „case“-Anweisung verwendet, und Sie haben es mit ein paar Zeilen MQL5-Code realisiert.