MQL5 TUTORIAL GRUNDLAGEN – 74 SIMPLER ENVELOPES INDIKATOR

video

In diesem Video wollen wir uns einmal anschauen, wie man diesen Indikator hier programmieren kann. Es handelt sich um den sogenannten Envelopes Indikator. Also lassen Sie uns einmal schauen, wie man so etwas in MQL5 automatisiert. 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 SimplerEnvelopesIndikator, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser OnTick Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen können weg. Wir starten mit einer include Anweisung. Die wird uns helfen. Denn damit können wir uns die Datei Trade.mqh importieren. Die wiederum enthält die Klasse CTrade, von der wir uns hier eine Instanz mit dem Namen trade erstellen. Und die werden wir gleich nutzen, um damit Positionen zu eröffnen. Innerhalb der OnTick Funktion ermitteln wir zunächst einmal den Ask Preis und den Bid Preis. Das übernimmt die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen entweder SYMBOL_ASK oder SYMBOL_BID, je nachdem, ob wir den Ask oder den Bid Preis berechnen möchten. Und mit NormalizeDouble und _Digits stellen wir sicher, dass wir die richtige Anzahl von Nachkommastellen für das jeweilige Währungspaar ermitteln. Im nächsten Schritt erstellen wir eine string Variable mit dem Namen Signal. Die kann Texte aufnehmen. Wir weisen hier aber noch keine Texte zu, denn das Signal möchten wir jetzt gleich erst noch ermitteln. Dazu starten wir zunächst einmal mit der Funktion MqlRates. Die wird uns Informationen zu den Preisen geben. Denn MqlRates ist eine Struktur, die die Informationen über Preise, Volumen und Spread aufbewahrt. Das damit erstellte Array sortieren wir mit Hilfe der Funktion ArraySetAsSeries von der aktuellen Kerze an abwärts. Und mit CopyRates kopieren wir uns die Daten, für das aktuelle Symbol auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit. Wir starten mit Kerze null. Das ist die aktuelle Kerze, kopieren die Daten für drei Kerzen und speichern Sie in unserem PriceInformation Array. Jetzt benötigen wir noch zwei weiter Arrays. Eines für das obere und eines für das untere Band des Indikators. Auch die werden beide mit ArraySetAsSeries von der Kerze an abwärts sortiert. Kommen wir zur eigentlichen Definition. Das übernimmt die Funktion iEnvelopes, die in MQL5 enthalten ist. Die benötigt einige Parameter. Der erste Parameter ist für das aktuelle Währungspaar auf dem Chart. Der zweite steht für die auf dem Chart ausgewählte Zeiteinheit. Wir berechnen die Ergebnisse für 14 Kerzen, ohne einen Verschiebungswert. Die Grundlage soll MODE_SMA für Simple Moving Average sein. Die Ergebnisse hätten wir gern anhand der Schlusskurse. Und diesen Wert hier hinten, den sehen Sie auch, wenn Sie sich die Eigenschaften des Indikators einmal anschauen. Es handelt sich hier um den Deviation Wert. Stellen wir das Ganze mal auf Deutsch um. Dann sehen wir, dass Deviation für Abweichung steht. Und hier ist der Standardwert 0.100. Und das ist auch das, was wir hier verwenden. Mit CopyBuffer kopieren wir uns jetzt Daten in unsere Arrays. Buffer null wird verwendet, um die Daten für das obere Band zu ermitteln. Buffer eins steht für das untere Band. Und wir kopieren von der aktuellen Kerze null an die Daten für drei Kerzen und speichern sie im jeweiligen Array. Um den jeweiligen Wert für das obere und untere Band zu ermitteln, greifen wir auf die Werte von Kerze null im jeweiligen Array zu. Und mit NormalizeDouble und Komma sechs stellen wir sicher, dass wir auch die richtige Anzahl von Nachkommastellen ermitteln. Denn wenn man den Mauszeiger auf eins der beiden Bänder hält, dann sieht man, dass auch hier sechs Nachkommastellen angezeigt werden. Jetzt haben wir die Möglichkeit das Signal zu ermitteln. In diesem Fall prüfen wir, ob der Schlusskurs für Kerze eins kleiner ist, als der Wert für das untere Band. Wenn das der Fall ist, dann ist das für uns ein Kaufsignal. Also weisen wir den Begriff kaufen unserer Signalvariable zu. Im anderen Fall, wenn der Schlusskurs von Kerze eins oberhalb des oberen Bandes liegt, dann ist es ein Verkaufssignal und wir weisen den Begriff verkaufen unserer Signalvariable zu. Und wenn unser Signal auf verkaufen steht und uns der Rückgabewert der Funktion PositionsTotal einen Wert von kleiner eins anzeigt, dann bedeutet das, wir haben keine offenen Positionen und ein verkaufen Signal. Und dann nutzen wir trade.Sell um zehn Mikrolot zu verkaufen. Im anderen Fall, wenn unser Signal auf kaufen steht und wir ebenfalls keine geöffneten Positionen haben, dann nutzen wir trade.Buy, um zehn Mikrolot zu kaufen. Zum Schluss nutzen wir noch den Comment Befehl, um uns eine Chartausgabe zu generieren. Die wird uns den Text: Das aktuelle Signal ist… gefolgt von dem ermittelten Signal ausgeben. Das war es im Großen und Ganzen. Wenn Ihnen das hier alles zu schnell ging oder wenn Sie keine Ahnung haben, was diese Code Zeilen 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. Für den Moment klicken wir hier auf Kompilieren oder drücken die F7 Taste. Das sollte hier ohne Fehler funktionieren. Und wenn das bei Ihnen auch so ist, dann können Sie jetzt hier oben auf dieses kleine Symbol klicken oder die F4 Taste drücken, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Bitte wählen Sie hier die neu erstellte Datei SimplerEnvelopesIndikator.ex5 aus. Markieren Sie die Option für die Visualisierung und starten Sie Ihren Test. Hier läuft unser Expert Advisor auch schon los. Wir sehen, dass wir eine erste Position eröffnet haben. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie den Envelopes Indikator in MQL5 automatisieren können. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.