In diesem Video wollen wir uns einmal anschauen, wie man eine Funktion überladen kann. Überladen bedeutet, dass eine Funktion mit dem gleichen Funktionsnamen in der Lage ist, eine unterschiedliche Anzahl und unterschiedliche Typen von Parametern zu verarbeiten. Also schauen wir uns einmal an, wie man so etwas in MQL5 programmieren kann. Um das zu tun, klicken Sie im Metatrader bitte auf dieses kleine Symbol oder drücken Sie die F4-Taste. Das ruft dann hier den Metaeditor auf und hier klicken wir auf Datei, neue Datei, Expert Advisor aus Vorlage, weiter. Ich vergeben hier mal den Namen SimpleFunktionsÜberladung, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb dieser OnTick-Funktion gelöscht werden und auch die zwei Kommentarzeilen werden entfernt. Wir starten damit, dass wir uns in der OnTick-Funktion zunächst den Ask-Preis berechnen lassen. Das übernimmt die Funktion SymbolInfoDouble für das aktuell Währungspaar auf dem Chart. Und wir verwenden SYMBOL_ASK, alles in Großbuchstaben. Die Funktion NormalizeDouble in Verbindung mit _Digits sorgt dann dafür, dass das Ergebnis auch mit der richtigen Anzahl von Nachkommastellen angezeigt wird. Das Ganze wiederholen wir hier nochmal für den Bid-Preis. Ansonsten ist soweit alles gleich, bis auf diesen Parameter. SYMBOL_BID. Und da wir noch einen dritten Parameter brauchen, berechnen wir hier einfach mal die Differenz, in dem wir den Bid-Preis vom Ask-Preis abziehen. Ich möchte gerne eine Funktion aufrufen, die AddValues, also addiere Werte heißt. Und im ersten Fall übergeben wir hier zwei Parameter. Den Ask-Preis und den Bid-Preis. Als letzten Schritt in der OnTick-Funktion brauchen wir noch eine Ausgabe auf unserem Chart. Die Comment-Funktion wird uns den Text „das Resultat ist“ gefolgt von dem berechneten Wert ausgeben. Fangen wir mal an mit der ersten Funktion. Die ist hier in der Lage, jeweils einen double-Wert für den Ask- und für den Bid-Preis zu übernehmen. Ich möchte gerne im Journal den Eintrage sehen, dass das die Funktion ist, die nur zwei Parameter verarbeitet. Das übernimmt hier die Printausgabe. Wir addieren hier die beiden übergebenen Parameterwerte, weißen sie der Variable ReturnValue zu und zum Schluss nutzen wir den return-Befehl, um den ermittelten Wert wieder an die Hauptfunktion zurückzugeben. So weit so gut. Wir können das jetzt schon kompilieren und das geht ohne Fehler. Aber das ist noch keine Überladung. Wenn man sich aber mal hier oben diese Funktion anschaut und die Parameter ausschneidet, dann sieht man, dass man nach dem Setzen der ersten Klammer hier, diese Hilfe aufgezeigt bekommt. Das ist Möglichkeit eins von zwei. Und wenn ich darauf klicke, dann sehe ich, dass sich hier die Anzahl der Parameter verändert. Genau für so etwas ist eine Überladung gedacht. Und dazu erstellen wir uns hier einfach nochmal die gleiche Funktion, aber mit einem kleinen Unterschied. Denn jetzt soll unsere Funktion AddValues in der Lage sein, drei Parameter zu verarbeiten. Den Aks-Wert, den Bid-Wert und den Differenz-Wert. Falls sie sich wundern warum hier die Bezeichnung abweichend ist, von dem was wir hier berechnet haben: Die Namen die Sie für die übergebenen Parameter in der Funktion nutzen, sind frei wählbar. Auch hier möchten wir gerne mit dem Print-Befehl eine Ausgabe im Journal. Diesmal werden wir den Text sehen „diese Funktion verarbeitet drei Parameter“. Auch hier addieren wir einfach alle übergebenen Parameter zu einem Wert und nutzen zum Schluss den return-Befehl, um das Ergebnis an die Hauptfunktion zurückzuliefern. So weit so gut. Das hier ist nicht wirklich ein praktisches Beispiel, aber wenn Sie jetzt hier auf kompilieren klicken oder die F7-Taste drücken, dann werden Sie sehen, dass wir nach dem Setzen der ersten Klammer genau diese Anzeige bekommen. Wir haben eine Funktionsüberladung und können uns jetzt hier unterschiedliche Parameter für die Übergabe aussuchen. Falls Ihnen das hier zu schnell ging oder falls Sie nicht wissen,