MQL4 TUTORIAL GRUNDLAGEN – 61 SIMPLE FUNKTIONS UEBERLADUNG

video
play-sharp-fill

In diesem Video wollen wir uns einmal mit dem Thema Funktionsüberladung beschäftigen. Das bedeutet, wir werden eine Funktion erstellen, die unterschiedliche Parameter entgegennehmen und verarbeiten kann. Und um das zu tun, klicken Sie bitte hier oben auf dieses kleine Symbol oder drücken die F4-Taste. Das ruft dann hier den Metaeditor auf und hier klicken auf Datei, neue Datei, Expert Advisors aus Vorlage, weiter. Ich vergebe hier einmal den Namen SimpleFunktionsÜberladung. Klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb dieser OnTick-Funktion hier gelöscht werden. Und wir entfernen auch die zwei Kommentarzeilen. Innerhalb der OnTick-Funktion möchten wir gerne eine Differenz berechnen. Das ist nur ein Rechenbeispiel damit wir etwas haben, was wir übergeben können. Die Differenz wird errechnet aus dem Ask-Preis abzüglich des Bid-Preises. Und in unserem Beispiel möchten wir gerne eine Funktion mit dem Namen AddValues nutzen und hier Parameter übergeben. Im ersten Beispiel sind das nur zwei Parameter. Die Funktion selbst soll einfach die Parameter addieren und das Ganze als Resultat zurückliefern. Im Anschluss lassen wir uns hier das Resultat mit dem Comment-Befehl auf dem Chart ausgeben. Da werden wir dann den Text sehen „das Resultat ist“ gefolgt von dem ermittelten Wert. Da diese Funktion hier aber noch nicht existiert müssen wir die jetzt programmieren. Unsere benutzerdefinierte Funktion soll den Namen AddValues bekommen. Der Rückgabetyp wird vom Typ Double sein, damit er auch Nachkommastellen liefern kann. Und wir übergeben hier zwei Parameter. Einmal für den Ask- und einmal für den Bid-Preis. Falls sie sich wundern, warum wir hier nicht Ask und Bid nutzen: Wir können innerhalb dieser Klammern hier, die Namen für die Parameter vergeben, wie wir das möchten. Denn diese beiden Werte hier werden als Referenz übergeben, damit wir die Originalfunktion und die überladene Funktion auseinander halten können. Hätte ich außerdem gerne ein Printausgabe im Journal. Die wird uns anzeigen, dass diese Funktion zwei Parameter verarbeitet. Diese beiden Parameter werden hier einfach addiert und der Ergebnisvariablen zugewiesen. Und danach geben wir unsere Ergebnisvariable zurück an unsere Hauptfunktion. Das war es soweit mit unsere benutzerdefinierten Funktion Nummer 1. Wir können das Ganz jetzt hier mit einem Klick auf diese Schaltfläche oder dem Druck auf die F7-Taste kompilieren. Das funktioniert auch schon, aber das hier ist noch keine Überladung. Um eine überladenen Funktion zu erstellen, bauen wir uns hier mit dem gleichen Funktionsnamen und dem selben Rückgabetyp, die Funktion Nummer 2. Die übernimmt hier aber drei Parameter. Auch hier hätte ich gerne eine Printausgabe im Journal, dass dieses die Funktion die drei Parameter verarbeiten kann. Hier nutzen wir ebenfalls die Funktion für das Addieren der einzelnen Parameterwerte und weisen das Ergebnis hier dem Ergebniswert zu. Im Anschluss wird unser Ergebniswert hier mit dem Return-Befehl an die Hauptfunktion zurückgegeben. Und das war es so weit auch schon. Wir haben jetzt also eine Funktion mit dem gleichen Namen zweimal erstellt, mit unterschiedlichen Parametern. Wenn Sie nicht wissen, was diese ganzen Codezeilen hier bewirken sollen oder wenn Ihnen das zu schnell war, dann möchten Sie sich vielleicht zunächst die anderen Videos aus dieser Grundlagenserie noch einmal anschauen oder vielleicht ist auch der Premiumkurs interessant für Sie. Dieses Video ist aus einer Anregung von einem Premiumkursteilnehmer entstanden. Und wenn Sie schon Mitglied im Premiumkurs sind und eine Idee für ein solches Video haben, dann schicken Sie mir doch einfach ein E-Mail. Für den Moment klicken wir hier mal auf kompilieren. Das hat auch ohne Fehler und ohne Warnungen funktioniert. Und wenn man jetzt hier die übergebenen Parameter ausschneidet, dann sehen Sie, dass nach einer öffnenden runden Klammer hier oben in der Hilfe angezeigt wird, dass wir zwei Möglichkeiten haben. Die erste Möglichkeit wäre eine Variable für den Ask- und eine für den Bid-Wert zu verwenden. Und wenn wir darauf klicken, dann wird uns hier die zweite Möglichkeit angezeigt. Das ist die überladene Funktion. Die nimmt den Ask-, den Bid- und den Differenzwert an. Schauen wir mal, ob das Ganze auch funktioniert, wie wir uns das vorstellen. Dazu klicken wir hier oben auf dieses kleine Symbol oder drücken die F4-Taste. Im Metatrader selbst rufen wir dann über Ansicht den Strategietester auf oder drücken die Tastenkombination Steuerung + R. Bitte wählen Sie hier die neu erstellte Funktion SimpelFunktionsÜberladung.ex4 aus, markieren Sie die Option für den visuellen Modus und starten Sie Ihren Test. Unser Expert Advisor läuft und addiert hier fleißig. Und wenn wir auf die Reiterkarte Journal klicken, dann sehen wir, dass wir derzeit mit der Funktion arbeiten, die zwei Parameter verarbeiten kann. Das wollen wir jetzt einmal ändern und dazu fügen wir hier oben einfach den Differenzwert hinzu. Wie Sie sehen, wird auch direkt die zweite Überladung angezeigt. Jetzt müssen wir den Quelltext natürlich noch einmal kompilieren. Wechseln wieder in den Metatrader. Stoppen hier unseren Test und starten ihn erneut. Auf dem Chart sehen wir jetzt keine große Veränderung, aber wenn wir auf die Reiterkarte Journal klicken, dann sehen wir, dass wir jetzt die Funktion mit den drei übergebenen Parametern nutzen. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie man eine Funktionsüberladung für Metatrader 4 programmieren kann. Und Sie haben dies selbst getan mit diesen paar Zeilen hier in MQL4.