MQL5 TUTORIAL GRUNDLAGEN – 65 SIMPLE BACKGROUND FARBE

video

In diesem Video möchten wir mal einen Expert Advisor erstellen der in der Lage ist, anhand von Kauf- und Verkaufssignalen den Bildschirmhintergrund für das Chart farblich zu verändern. Also lassen Sie uns einmal herausfinden, wie man so etwas in MQL5 programmieren kann. Um das zu tun klicken Sie im Metatrader bitte auf dieses kleine Symbol hier oben 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 vergebe hier einmal den Namen SimpleBackgroundFarbe, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser OnTick Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen werden entfernt. Im ersten Schritt berechnen wir hier den Ask Preis. Das übernimmt die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen SYMBOL_ASK, alles in Großbuchstaben und mit NormalizeDouble und _Digits stellen wir sicher, dass je nach Währungspaar, entweder drei oder fünf Nachkommastellen automatisch berechnet werden. Das Ganze wiederholen wir dann nochmal für den Bid Preis. Der Variablenname ist anders und wir nutzen in diesem Fall SIMBOL_BID. Ansonsten ist alles identisch. Für unser Signal erstellen wir uns eine gleichnamige Variable vom Typ string. Die bekommt hier aber noch keinen Wert zugewiesen, denn den möchten wir gleich noch ermitteln. Unser Kaufen und Verkaufen Signale möchten wir anhand eines gleitenden Durchschnitts ermitteln. Deswegen erstellen wir uns hier ein Moving Average Array. Und den gleitenden Durchschnitt stellt die integrierte Funktion iMA bereit. Die ist Bestandteil von MQL5 und benötigt einige Parameter. Der erste Parameter steht für das aktuelle Währungspaar. Der zweite Parameter für die auf dem Chart ausgewählte Zeiteinheit. Wir möchten unser Ergebnis anhand der letzten zwanzig Kerzen berechnen. Und das Ganze ohne Verschiebung. Deswegen hier die null. MODE_SMA wird genutzt, weil SMA für Simple Moving Average steht. Man könnte auch exponentielle Moving Averages berechnen. Aber für unser einfaches Beispiel reicht das so. Und das Ergebnis soll ermittelt werden anhand der Schlusskurse. Darum nutzen wir hier PRICE_CLOSE. Wir nutzen ArraySetAsSeries, um unser Moving Average Array, das wir hier oben erstellt haben, von der aktuellen Kerze an abwärts zu sortieren. Und mit CopyBuffer füllen wir unser Moving Average Array anhand der Definition, die wir hier oben getroffen haben für Buffer null, das ist diese rote Signallinie hier. Wir starten bei der aktuellen Kerze null und kopieren uns die Preisdaten für drei Kerzen, die wir in unserem Moving Average Array speichern. Um jetzt den aktuellen Wert für unseren gleitenden Durchschnitt zu berechnen, greifen wir einfach auf den Inhalt von Kerze null in unserem Moving Average Array zu. Und wenn dieser Wert jetzt kleiner ist als der Bid Preis, dann interpretieren wir das als Kaufsignal. Darum weisen wir den Wert Kaufen unserer Signal Variable zu. Zusätzlich nutzen wir hier eine Funktion mit dem Namen setChartColorBackground und setzen die Hintergrundfarbe für das Chart auf grün. Ist der Wert für unseren gleitenden Durchschnitt aber größer als der Ask Preis, dann setzen wir unser Signal hier auf Verkaufen. Und dann rufen wir ebenfalls die Funktion für die Änderung der Hintergrundfarbe auf. Aber dieses Mal ändern wir die Farbe auf Rot. Es gibt auch noch einen dritten Fall. Und zwar, wenn der Moving Average unter dem Ask Preis liegt und gleichzeitig aber größer ist, als der Bid Preis. In dem Fall haben wir kein Signal. Darum weisen wir hier auch keinen Text zu. Und wenn uns das Signal fehlt, rufen wir die gleiche Funktion auf und setzen den Bildschirmhintergrund hier auf Schwarz. Hier ergänzen wir noch eine Comment Ausgabe, die uns auf dem Chart den Text: Das aktuelle Signal ist… gefolgt von dem ermittelten Signal ausgeben soll. Und um diese Funktion hier aufzurufen, müssen wir die jetzt noch programmieren. Unsere benutzerdefinierte Funktion gibt keinen Rückgabewert zurück. Darum nutzen wir hier void. Der Name der Funktion soll sein: setChartColorBackground. Und wir übergeben hier als Parameter eine Farbe vom Typ Color. Ich habe die hier mal BackgroundColor genannt. Aber das können Sie auch anders halten. Und innerhalb unserer benutzerdefinierten Funktion nutzen wir ChartSetInteger für das aktuelle Währungspaar auf dem Chart. Wir möchten gerne den Hintergrund verändern. Darum ist der zweite Parameter hier CHART_COLOR_BACKGROUND, bitte alles in Großbuchstaben. Und als letzten Parameter übergeben wir hier die Farbe, die wir hier oben an die Funktion übergeben haben. Das war es soweit. Wenn Ihnen das hier zu schnell ging, oder wenn Sie nicht wissen, was diese ganzen Codezeilen hier bewirken sollen, 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. Den finden Sie auf unserer Webseite. Das hier war übrigens auch eine Idee von einem Premiumkurs Mitglied. Und wenn Sie bereits Mitglied im Premiumkurs sind und eine Idee für so ein Video haben, dann schicken Sie mir doch einfach ein E-Mail. Für den Moment klicken wir hier auf Kompilieren oder drücken die F7 Taste. Das hat hier ohne Fehler funktioniert. Und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben klicken oder die F4 Taste drücken, um in dem Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Das ruft dann hier den Strategietester auf. Und hier wählen wir die neuerstellte Datei SimpleBackgroundFarbe.ex5 aus. Bitte markieren Sie hier unten die Option für den visuellen Modus und starten Sie Ihren Test. Hier sehen wir auch schon, dass unser Expert Advisor den Hintergrund rot einfärbt. Bei einem Kaufen Signal ändert sich die Farbe in grün. Unser Expert Advisor funktioniert also so wie er soll. Und Sie haben in diesem kurzen Video gelernt, wie Sie anhand von selbst ermittelten Kaufen- und Verkaufen Signalen einen Expert Advisor erstellen können der in der Lage ist, den Bildschirm entsprechend einzufärben. Und sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.