Zusammenfassung
Schleifen sind ein zentrales Konzept in der Programmierung und werden genutzt, um Aufgaben effizient und wiederholt auszuführen. In MQL4 gibt es drei Haupttypen von Schleifen: for-Schleifen, while-Schleifen und do-while-Schleifen. Jeder Schleifentyp hat seine eigene Anwendung, je nachdem, ob man die Anzahl der Wiederholungen kennt oder von einer Bedingung abhängig machen möchte. Zudem sollten Endlosschleifen vermieden werden, und es gibt Kontrollstrukturen wie break und continue, um den Schleifenfluss zu beeinflussen.
Key Takeaways
- Schleifen ermöglichen die automatisierte Wiederholung von Aufgaben und reduzieren den Codeaufwand erheblich.
- In MQL4 sind for-, while- und do-while-Schleifen die gängigsten Schleifenarten, die je nach Anforderung flexibel eingesetzt werden.
- Schleifen sollten sorgfältig programmiert werden, um Endlosschleifen zu vermeiden, und können mit break und continue gesteuert werden.
Inhaltsverzeichnis
Anklicken zum öffnen und schließen
Schleifen sind in der Programmierung ein sehr wichtiges Konzept, und sie werden verwendet, um eine Gruppe von Anweisungen wiederholt auszuführen, solange eine bestimmte Bedingung erfüllt ist. In MQL4 gibt es verschiedene Arten von Schleifen, die dir ermöglichen, Aufgaben effizienter und automatisierter zu erledigen.
Was ist eine Schleife?
Eine Schleife ist ein Codeblock, der mehrmals ausgeführt wird, bis eine bestimmte Bedingung nicht mehr erfüllt ist. Anstatt denselben Code immer wieder per Hand zu schreiben, kann eine Schleife diese Arbeit für dich übernehmen.
Beispiel
Wenn du eine Aufgabe 10 Mal wiederholen willst, kannst du eine Schleife verwenden, um den Codeblock 10 Mal automatisch auszuführen, ohne den Code 10 Mal schreiben zu müssen.
Warum werden Schleifen benötigt?
Schleifen sind hilfreich, um wiederkehrende Aufgaben zu erledigen, z.B.:
- Über mehrere Kerzen in einem Chart iterieren.
- Mehrfach Berechnungen durchführen.
- Datenstrukturen wie Arrays durchlaufen.
- Code kürzer und effizienter schreiben.
Die verschiedenen Arten von Schleifen in MQL4
In MQL4 gibt es hauptsächlich drei Arten von Schleifen:
- for-Schleife
- while-Schleife
- do-while-Schleife
for-Schleife
Die for-Schleife ist die am häufigsten verwendete Schleife in MQL4. Sie wiederholt Anweisungen eine festgelegte Anzahl von Malen, abhängig von einer Zählvariablen.
Syntax:
MQL Code
for (Initialisierung; Bedingung; Schritt) {
// Code, der wiederholt ausgeführt wird
}
- Initialisierung: Hier wird die Zählvariablen festgelegt, z.B. int i = 0.
- Bedingung: Die Schleife läuft, solange diese Bedingung true (wahr) ist, z.B. i < 10.
- Schritt: Was mit der Zählvariablen nach jedem Durchlauf passiert, z.B. i++ (erhöhe i um 1).
Beispiel
MQL Code
// Diese for-Schleife gibt die Zahlen von 0 bis 9 aus
for ( int i = 0; i < 10; i++) {
Print("Die Zahl ist: ", i);
}
Erklärung:
- Initialisierung: int i = 0 startet die Zählvariable i bei 0.
- Bedingung: i < 10 bedeutet, dass die Schleife ausgeführt wird, solange i kleiner als 10 ist.
- Schritt: i++ erhöht i nach jedem Schleifendurchlauf um 1.
Diese Schleife wird 10 Mal ausgeführt und gibt die Werte von 0 bis 9 aus.
while-Schleife
Die while-Schleife wiederholt den Codeblock, solange eine Bedingung wahr (true) ist. Diese Schleife ist besonders nützlich, wenn du nicht genau weißt, wie oft der Code ausgeführt werden soll, sondern nur, dass er so lange ausgeführt wird, bis eine Bedingung nicht mehr erfüllt ist.
Syntax:
MQL Code
while (Bedingung) {
// Code, der wiederholt ausgeführt wird, solange die Bedingung wahr ist
}
Bedingung: Solange diese Bedingung true ist, läuft die Schleife.
Beispiel:
MQL Code
int i = 0;
while (i < 5) {
Print("i ist: ", i);
i++; // Erhöhe den Wert von i um 1
}
Erklärung:
- Initialisierung: int i = 0 legt den Startwert der Variable i fest.
- Bedingung: Die Schleife läuft, solange i < 5 ist.
- i++: Nach jedem Schleifendurchlauf wird i um 1 erhöht, bis es 5 erreicht. Dann wird die Schleife beendet.
Diese Schleife gibt die Werte von i aus, solange i kleiner als 5 ist.
do-while-Schleife
Die do-while-Schleife funktioniert ähnlich wie die while-Schleife, aber der Unterschied ist, dass der Code immer mindestens einmal ausgeführt wird, selbst wenn die Bedingung von Anfang an nicht erfüllt ist.
Syntax:
MQL Code
do {
// Code, der wiederholt ausgeführt wird
} while (Bedingung);
Bedingung: Die Schleife wird so lange wiederholt, bis diese Bedingung nicht mehr erfüllt ist
Beispiel:
MQL Code
int i = 0;
do {
Print("i ist: ", i);
i++;
} while (i < 3);
Erklärung:
- Die Schleife gibt i aus und erhöht den Wert, solange i kleiner als 3 ist.
- Da die do-while-Schleife die Bedingung nach dem ersten Durchlauf überprüft, wird der Code mindestens einmal ausgeführt.
Wann verwendet man welche Schleife?
for-Schleife: Verwende sie, wenn du genau weißt, wie oft die Schleife durchlaufen werden soll, z.B. wenn du über eine feste Anzahl von Kerzen in einem Chart iterieren möchtest.
Beispiel: Du möchtest die letzten 10 Kerzen auf bestimmte Eigenschaften überprüfen:
MQL Code
for ( int i = 0; i < 10; i++) {
Print("Schlusskurs der Kerze ", i, ": ", Close);
}
while-Schleife: Verwende sie, wenn du nicht weißt, wie oft die Schleife ausgeführt werden soll, aber sie abhängig von einer Bedingung ausgeführt werden muss.
Beispiel: Du möchtest eine Berechnung durchführen, bis ein bestimmter Kontostand erreicht ist:
MQL Code
double balance = AccountBalance();
while (balance < 10000) {
Print("Kontostand ist noch zu niedrig: ", balance);
balance += 100; // Fiktive Erhöhung des Kontostands (in der Realität durch Trading)
}
do-while-Schleife: Verwende sie, wenn du sicherstellen möchtest, dass der Codeblock mindestens einmal ausgeführt wird, egal ob die Bedingung am Anfang erfüllt ist oder nicht.
Beispiel: Eine Nachricht anzeigen, bis eine Bedingung erfüllt ist:
MQL Code
int versuche = 0;
do {
Print("Versuch Nr.: ", versuche);
versuche++;
} while (versuche < 5);
Vermeide Endlosschleifen!
Eine Endlosschleife ist eine Schleife, die niemals aufhört, weil die Bedingung immer wahr bleibt. Diese Art von Schleifen kann dein Programm zum Absturz bringen oder die CPU stark belasten.
Beispiel einer Endlosschleife (das solltest du vermeiden!):
MQL Code
int i = 0;
while (i < 10) {
Print("i ist: ", i);
// i++ fehlt, deshalb bleibt die Bedingung i < 10 immer wahr
}
Hier fehlt die Anweisung, i zu erhöhen, daher bleibt i immer 0 und die Schleife läuft unendlich.
Schleifen mit break und continue
Manchmal möchtest du eine Schleife vorzeitig abbrechen oder den aktuellen Durchlauf überspringen.
break: Beendet die Schleife sofort.
Beispiel
MQL Code
for ( int i = 0; i < 10; i++) {
if (i == 5) {
break; // Beendet die Schleife, wenn i 5 erreicht
}
Print(i);
}
continue: Überspringt den aktuellen Schleifendurchlauf und fährt mit dem nächsten fort.
Beispiel:
MQL Code
for ( int i = 0; i < 10; i++) {
if (i == 5) {
continue; // Überspringt alles nach continue und fährt mit dem nächsten Durchlauf fort
}
Print(i);
}
Fragen und Antworten
Eine Schleife ist ein Codeblock, der wiederholt ausgeführt wird, solange eine bestimmte Bedingung erfüllt ist. Dies vereinfacht wiederkehrende Aufgaben.
Es gibt drei Haupttypen von Schleifen: for-Schleifen, while-Schleifen und do-while-Schleifen. Jede hat ihren spezifischen Anwendungsfall, je nach Anforderungen an die Wiederholung der Aufgaben.
Eine for-Schleife wird für eine bestimmte Anzahl von Durchläufen verwendet, wobei eine Zählvariable, eine Bedingung und ein Schritt definiert werden, die die Schleife steuern.
Eine while-Schleife wird verwendet, wenn der Codeblock so lange wiederholt werden soll, wie eine Bedingung wahr ist, und man die Anzahl der Durchläufe im Voraus nicht kennt.
Mit der break-Anweisung kann man eine Schleife vorzeitig beenden, und mit continue kann man den aktuellen Durchlauf überspringen und mit dem nächsten fortfahren.