MQL5 TUTORIAL GRUNDLAGEN – 111 SIMPLER STANDARD DEVIATION EA

video
play-sharp-fill

 

In diesem Video wollen wir uns einmal anschauen, wie man für diesen Standard Deviation Indikator einen Expert Advisor erstellt, der in der Lage ist, anhand der letzten 200 Kerzen die Höchste und Niedrigste zu ermitteln. Also lassen Sie uns einmal schauen, wie man so etwas mit MQL5 programmieren kann. Um das zu tun, klicken Sie bitte im Metatrader hier oben 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 vergebe hier mal den Namen SimplerStandardDeviationEA, klicke auf weiter, weiter und fertigstellen. Jetzt kann hier alles oberhalb dieser OnTick-Funktion gelöscht werden und auch die zwei Kommentarzeilen werden entfernt. Wir starten mit einem include-Befehl. Damit können wir uns die Inhalte der Datei trade.mqh zu Nutze machen.

 

Die enthält auch die Klasse CTrade von der wir uns hier eine Instanz mit dem Namen trade erstellen. Die werden wir später nutzen, um Positionen zu eröffnen. Innerhalb der OnTick-Funktion starten wir damit, dass wir uns zunächst eine signal-Variable erstellen. Der weisen wir hier aber noch keinen Wert zu, denn den möchten wir gleich noch ermitteln. Dazu berechnen wir uns 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 und mit der Funktion NormalizeDouble und _Digits stellen wir sicher, dass wir die richtige Anzahl von Nachkommastellen berechnen. Je nach Währungspaar kann das dreistellig oder fünfstellig sein. Jetzt brauchen wir auch noch ein Array für unsere Preisdaten.

 

Das ist vom Typ double damit es auch Nachkommastellen aufnehmen kann und mit Hilfe der Funktion ArraySetAsSeries sortieren wir jetzt die Daten von der aktuellen Kerze an abwärts. Um unsere Werte zu ermitteln steht uns die Funktion iStdDev zur Verfügung. Die ist Bestandteil von MQL5 und benötigt einige Parameter. Und das sind das aktuelle Währungspaar auf dem Chart und die auf dem Chart eingestellte Zeiteinheit. Wir möchten das Ganze für 20 Kerzen berechnen, ohne einen Wert für die Verschiebung anzugeben.

 

Wir nutzen hier MODE_SMA für SimpleMovingAverage und die Ergebnisse sollen anhand er Schlusspreise berechnet werden. Mit Hilfe der Funktion CopyBuffer füllen wir jetzt unser Array anhand er Definition, die wir hier oben getroffen haben und zwar für Buffer 0. Angefangen von Kerze 0 für 200 Kerzen mit Werten. Das ermöglicht uns herauszufinden, welches die Nummer der höchsten Kerze ist.

 

Dazu nutzen wir die Funktion ArrayMaximum. Die wird in unserem Array suchen. Angefangen von Kerze 0 wird das ganze Array durchsucht und die Nummer der höchsten Kerze landet dann in dieser Variable. Das Ganze gibt’s natürlich dann auch noch in umgekehrter Form. Mit ArrayMinimum können wir die Nummer der niedrigsten Kerze ermitteln. Der Rest des Befehls ist hier identisch. Und damit wir den aktuellen Wert auf dem Chart ausgeben können, ermitteln wir den noch, indem wir uns den Wert von unserem Array für Kerze 0 holen. Der wird mit NormalizeDouble hier auf sechs Stellen verkürzt. Denn das ist auch das was uns der Indikator hier unten anzeigt.

 

Kommen wir zur Definition der Signale. Wenn unsere aktuelle Kerze 0 den niedrigsten Wert für unseren Indikator beinhaltet, dann ist das für uns ein Kaufen-Signal und dann setzen wir unser Signal hier auf buy. Andernfalls, wenn unsere aktuelle Kerze den höchsten Wert hat, dann ist das für uns ein Verkaufen-Signal und dann setzen wir unser Signal hier auf sell. Und so fern unser Signal auf verkaufen steht und uns der Rückgabewert von PositionsTotal einen Wert von <1 zurückliefert, dann bedeutet das wir haben keine offenen Positionen, aber ein verkaufen-Signal und dann nutzen wir trade.Sell, um zehn Microlot zu verkaufen.

 

Haben wir aber ein kaufen-Signal und ebenfalls keine geöffneten Positionen, dann nutzen wir hier trade.Buy und kaufen zehn Microlot. Zum Schluss nutzen wir den Comment-Befehl für eine Chartausgabe. Die wird uns den aktuellen Wert, die Nummer der höchsten und der niedrigsten Kerze und das aktuelle Signal auf dem Chart ausgeben. Das wars auch schon so weit. Wenn Ihnen das hier zu schnell ging oder wenn Sie keine Ahnung haben, was alle diese Codezeilen hier bewirken, dann möchten Sie sich vielleicht zunächst eines der anderen Videos aus unserer Grundlagenserie noch einmal anschauen. Vielleicht ist aber auch der Premiumkurs interessant für Sie.

 

Den finden Sie auf unserer Webseite und da gibt es jetzt auch Angebote zum Download für solche Quellcodes für den Fall, dass Sie das nicht alles selbst abtippen möchten. Für den Moment klicken wir mal auf Ansicht, lassen uns hier die Werkzeugleiste einblenden und klicken hier auf Kompilieren. Alternativ können Sie auch die F7-Taste drücken. In meinem Fall hat das ohne Fehler funktioniert 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 Tasten Steuerung und R. Bitte wählen Sie hier die neu erstellte Datei SimplerStandardDeviationEA.ex5 aus, markieren Sie hier unten die Option für den visuellen Modus und starten Sie Ihren Test.

 

Hier läuft unser Expert Advisor auch schon. Wir sehen, dass auch Positionen geöffnet und geschlossen werden und sobald hier eine Kerze 0 auftaucht, bedeutet das, dass eine Kauf- oder Verkaufen-Position eröffnet wird. Das ist jetzt gerade passiert. Unser Expert Advisor funktioniert also wie gewünscht und Sie haben in diesem kurzen Video gelernt, wie Sie für diesen Standard Deviation Indikator hier einen Expert Advisor erstellen können und Sie haben das selbst programmiert, mit diesen paar Zeilen hier in MQL5.