MQL5 TUTORIAL GRUNDLAGEN – 46 SIMPLER COMMODITY CHANNEL INDEX Expert Advisor

video
play-sharp-fill

In diesem Video wollen wir uns einmal diesen Oszillator hier anschauen. Das ist der Commodity Channel Index. Der wird normalerweise als Filter genutzt. Wir wollen jetzt aber mal schauen, wie man den in MQL5 als Signal programmieren kann. Um das zu tun, klicken Sie bitte im Metaeditor 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 SimplerCommodityChannelIndexEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion hier gelöscht werden. Und wir entfernen auch die zwei Kommentarzeilen. Wie so oft starten wir hier mit einem include Statement für die Datei Trade.mqh. Danach erstellen wir eine Instanz von der Klasse CTrade. Die bekommt den Namen trade. Und wir werden sie verwenden, um Positionen zu eröffnen. In der OnTick Funktion ermitteln wir zunächst den Ask Preise. Das übernimmt die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Mit SYMBOL_ASK, alles in Großbuchstaben bitte, lässt sich hier der Ask Preis ermitteln. Und zusätzlich nutze ich noch NormalizeDouble und _Digits, um die richtige Anzahl von Nachkommastellen zu ermitteln. Das können je nach Währungspaar drei oder fünf Nachkommastellen sein. Das gleiche wiederholen wir jetzt nochmal für den Bid Preis. Hier unterscheidet der Name der Variable und der Parameter hier heißt SIMBOL_BID. Ansonsten sind diese beiden Zeilen nahezu identisch. Mit MqlRates erstellen wir uns ein Array für die Preisinformationen. Das wird im Anschluss mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und mit CopyRates füllen wir unser Preis Array mit Preisdaten für drei Kerzen. Dieser Ausdruck für das aktuelle Währungspaar kann auch so geschrieben werden. Seit einiger Zeit wurde die Sprache entsprechend angepasst. Wenn man das hier mal markiert und die F1 Taste drückt, dann wird das in der Hilfe hier auch so beschrieben. Im nächsten Schritt erstellen wir uns eine leere Variable mit dem Namen signal. Die ist vom Typ string, hat hier aber noch keinen Wert. Um den zu ermitteln erstellen wir uns ein weiteres Array für den Expert Advisor. Und mit der eingebauten MQL5 Funktion iCCI können wir jetzt für das aktuelle Währungspaar und die auf dem Chart ausgewählte Zeiteinheit den Commodity Channel Index für 14 Kerzen aufgrund der Schlusskurse berechnen. Die 14 taucht auch hier in Klammern auf. Und wenn man einmal mit der rechten Maustaste auf den Oszillator klickt und Eigenschaften auswählt, dann sieht man, dass das hier die Standardwerte sind. Auch dieses Array sortieren wir von der aktuellen Kerze an abwärts. Und im Anschluss nutzen wie CopyBuffer, um anhand der Definition, die wir hier oben getroffen haben, für Buffer null, das ist diese Linie hier, von der aktuellen Kerze null an für drei Kerzen unser Array mit Daten zu füllen. Und das ermöglicht es uns, den aktuellen Wert für den Commodity Channel Index zu berechnen, indem wir auf Kerze null in unserem Array zugreifen. Wenn sich der Wert oberhalb der Einhunderter-Linie befindet, das wäre hier die obere gestrichelte Linie, dann möchten wir gerne verkaufen. Darum weisen wir den Wert Verkaufen unsere signal Variable hier zu. Im umgekehrten Fall, wenn der Wert kleiner ist und sich unter der unteren gestrichelten Linie befindet, das wäre hier diese minus einhundert Linie, dann möchten wir gerne kaufen und weisen diesen Wert der signal Variable zu. Und wenn unser signal auf Verkaufen steht und die Funktion PositionsTotal uns einen Rückgabewert von kleiner eins liefert, dann haben wir keine geöffneten Positionen. Und in dem Fall möchten wir gerne mit trade.Sell eine Sell Position für zehn Mikrolot eröffnen. Im anderen Fall, wenn unser Signal auf Kaufen steht und wir ebenfalls keine geöffneten Positionen haben, dann nutzen wir trade.Buy, um eine Buy Position mit zehn Mikrolot zu eröffnen. Zum Schluss nutzen wir noch den Comment Befehl, um auf dem Chart den Text: Das aktuelle Signal ist… gefolgt von dem ermittelten Signal auszugeben. Das war es soweit. Falls Sie nicht wissen, was dieser Code hier bewirken soll, oder wenn Ihnen das zu schnell war, dann möchten Sie sich vielleicht vorher noch die anderen Videos aus dieser Grundlagenserie anschauen. Eventuell ist aber auch der Premium Kurs auf unserer Webseite interessant für Sie. Für den Moment klicken wir hier auf Kompilieren oder drücken die F7 Taste. Das hat in meinem Fall hier ohne Fehler funktioniert. Und wenn das bei Ihnen auch so ist, dann klicken Sie bitte hier oben auf dieses kleine Symbol oder drücken die F4 Taste, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Hier wählen wir jetzt die neu erstellte Datei SimplerCommodityChannelIndexEA.ex5, markieren den visuellen Modus und starten unseren Test. Hier läuft der Expert Advisor los. Und sobald die Linie hier die untere gestrichelte Linie überschritten hat, sehen wir unseren ersten Buy Trade auf dem Chart. Unser Expert Advisor funktioniert also wie gewünscht. Und Sie haben in diesem kurzen Video gelernt, wie Sie mit MQL5 einen Expert Advisor für den Commodity Channel Index programmieren können, der in der Lage ist, automatisch Positionen zu eröffnen. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.