In diesem Video schauen wir uns einmal diesen Indikator hier an. Es handelt sich um einen Oszillator. Es ist der Commodity Channel Index. Und wir möchten uns einmal ansehen, wie man für diesen Indikator, für den Metatrader 5 in MQL5 einen Expert Advisor programmieren kann, der in der Lage ist, nicht nur die Signale auf dem Chart auszugeben, sondern auch selbständig Positionen zu eröffnen und zu schließen. Um das zu tun, klicken Sie bitte auf den kleinen Button hier oben links oder drücken sie die F4 Taste im Metatrader. Das öffnet dann hier das Meta Editor Fenster. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen SimplerICCIStandaloneEA. Klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der On Tick Funktion gelöscht werden. Auch die zwei Kommentarzeilen werden entfernt. Wir starten hier oben damit, dass wir die Datei Trade.mqh importieren. Das geht mit dem include Befehl. Diese Datei gehört zum Umfang von MQL5 dazu. Diese Datei ermöglicht uns eine Instanz von der Klasse CTrade zu bilden. Die bekommt den Namen trade. Und wir werden sie später verwenden, um Positionen zu eröffnen. Vorher müssen wir ein paar Dinge berechnen. Zunächst brauchen wir den Ask und den Bid Preis. Die liefert uns die Funktion SymboInfoDouble für das aktuelle Währungspaar auf dem Chart. Mit SYMBOL_ASK kriegen wir den Ask Preis. Und SYMBOL_BID wird uns den Bid Preis liefern. Wir formatieren das Ganze mit NormalizeDouble und Unterstrich Digits. Denn manche Währungspaare haben drei Nachkommastellen, während andere fünf Nachkommastellen haben. Und diese Funktion stellt sicher, dass die richtige Anzahl von Nachkommastellen berechnet wird. Jetzt wo wir die zwei Preise haben, erstellen wir uns ein Preis-Array. Das machen wir mit der Funktion MqlRates und nennen es PriceInfo. Dieses Array wird die Preise für die Kerzen auf dem Chart aufnehmen. Zunächst sortieren wir es mit ArrySetAsSeries von der aktuellen Kerze an abwärts. Danach nutzen wir CopyRates um es mit Preisdaten zu füllen. Und zwar für das aktuelle Symbol, also Währungspaar auf dem Chart, die auf dem Chart ausgewählte Zeiteinheit. Wir starten von der aktuellen Kerze null und kopieren uns die Preisdaten für drei Kerzen in unser PriceInfo Array. Außerdem brauchen wir eine string Variable für unser Signal. Die nennen wir auch Signal. Den wert ermitteln wir später. Zunächst weisen wir hier noch keinen Wert zu. Jetzt brauchen wir noch ein Array. Das bekommt den Namen myPriceArray. Und das wird dieses Mal die Daten für unseren Expert Advisor aufnehmen. Wir definieren jetzt den Commodity Channel Index Expert Advisor indem wir die Funktion ICCI benutzen. Die wird mit MQL5 mitgeliefert. Und als Parameter nutzen wir das aktuelle Währungspaar, die aus dem Chart ausgewählte Zeiteinheit. Und wenn Sie sich fragen, was diese 14 hier bedeutet, dann klicken Sie doch einmal auf Einfügen, Indikatoren, Oszillatoren, Commodity Channel Index. Dann werden Sie sehen, dass hier die Periode auf 14 eingestellt ist. Das sind 14 Kerzen und genau das, was wir hier verwenden. Als letzten Parameter übergeben wir PRICE_CLOSE, damit die Ergebnisse anhand der Schlusskurse berechnet werden. Auch dieses Array wird mit ArraySetAsSeries wieder von der aktuellen Kerze an abwärts sortiert. Und dieses Mal nutzen wir CopyBuffer um anhand der von uns getroffenen Definition, die wir hier oben erstellt haben für Buffer null, also das erste Puffer, im Klartext diese blaue Linie hier, von der aktuellen Kerze null für drei Kerzen die Preisdaten in unser PriceArray zu kopieren. Und jetzt erhalten wir den aktuellen ICCIWert für die Kerze, die gerade auf dem Chart ausgebildet wird, indem wir einfach auf Kerze null in unserem PriceArray zugreifen. Wenn dieser Wert über der oberen Linie ist, dann möchten wir verkaufen. Wir prüfen also, ob der ICCIWert größer ist als 100. Das wäre der Fall, wenn diese blaue Linie hier oberhalb der gestrichelten 100-er Linie ist. In dem Fall geben wir hier das Signal verkaufen aus und weisen auch das Wort verkaufen unserer Signal Variable zu. Ist der Wert aber unter der unteren Linie, dann möchten wir gerne kaufen. Wir prüfen also, ob unser ICCIWert kleiner ist als minus 100. Das wäre zum Beispiel hier der Fall. Die blaue Linie liegt deutlich unter der minus 100 Linie. In dem Fall steht hier oben kaufen. Und wir weisen den Wert Kaufen auch unserer Signal Variable zu. Fehlt noch die Positionseröffnung. Wenn unser Signal den Wert Verkaufen hat und PositionsTotal kleiner ist als eins, das bedeutet vom Prinzip, wir haben keine geöffnete Position, dann möchten wir gerne verkaufen und nutzen trade.Sell um zehn Microlot zu verkaufen. In dem anderen Fall, wir kaufen zehn Microlot, wenn unser Signal den Wert Kaufen hat. Und wir ebenfalls keine geöffneten Positionen haben. In dem Fall nutzen wir trade.Buy, um zehn Microlot zu kaufen. Zum Schluss erstellen wir noch eine Chart Ausgabe. Das macht die Comment Funktion. Die gibt uns auf dem Chart den Text: Das aktuelle Signal ist, gefolgt durch den durch uns ermittelten Signal aus. Bitte vergessen Sie nicht die schließende Klammer hier unten. Und wenn Sie soweit sind, können Sie hier oben auf Kompilieren klicken oder die F7 Taste drücken. Das hat hier ohne Fehler funktioniert. Und darum klicken wir hier oben oder drücken F4, um in den Metatrader zurückzukehren. Und im Meta Trader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R, wählen hier als Datei SimplerICCIStandAloneEA aus, markieren die Option für die Visualisierung und starten unseren Test. Und da läuft unser Expert Advisor auch schon los. Er hat hier eine erste Position eröffnet. Und Sie haben in diesem kurzen Video gelernt, wie Sie für den Commodity Channel Index einen eigenständig lauffähigen Expert Advisor für den Metatrader 5 erstellen können, der auch in der Lage ist, selbständig Positionen zu eröffnen. Und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.
Download “MQL5 TUTORIAL DEUTSCH - SIMPLER ICCI STANDALONE EXPERT ADVISOR” SimplerICCIStandaloneEA.txt – 131-mal heruntergeladen – 1,76 kB