MQL5 TUTORIAL GRUNDLAGEN – 129 SIMPLER BOLLINGER BANDS EA

video
play-sharp-fill

 

In diesem Video möchten wir uns einmal anschauen, wie man die Bollinger Bänder automatisieren kann. Wir erzeugen hier Verkaufen- und Kaufen-Signale, je nachdem ob wir einen Ausbruch oberhalb oder unterhalb der Bänder sehen. Und wir möchten uns einmal anschauen, wie man das mit MQL5 für den MetaTrader programmieren kann. Um das zu tun, klicken Sie bitte auf diesen kleinen Button hier oben oder drücken die F4-Taste auf Ihrer Tastatur. Das ruft dann hier den MetaEditor auf und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, weiter. Ich vergebe hier einmal den Namen SimplerBollingerBandsStandAloneEA, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb der OnTick-Funktion hier gelöscht werden und wir entfernen auch beide Kommentarzeilen. Zunächst nutzen wir hier den include-Befehl, um die Datei trade.mqh zu importieren. Die stellt Handelsfunktionen bereit. Unter anderem die Klasse CTrade von der wir uns jetzt eine Instanz erstellen, die wir trade nennen. Damit werden wir gleich Positionen eröffnen.

 

In der OnTick-Funktion selbst erstellen wir uns eine string-Variable mit dem Namen signal. Die ist vom Typ string damit sie Textketten aufnehmen kann. Wir weisen hier aber zunächst noch keinen Wert zu, denn der wird noch ermittelt. Zunächst holen wir uns hier den Ask- und den Bid-Preis. Das geht mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. SYMBOL_ASK liefert uns den Ask-Preis. SYMBOL_BID liefert uns den Bid-Preis. Wenn Sie mal auf irgendein Währungspaar klicken, dann sehen Sie, dass wir hier zwei unterschiedliche Preislevel habe. Der höhere Preis ist der Ask-Preis den wir bezahlen müssen, wenn wir etwas kaufen. Der niedrigere Preis ist der Bid-Preis. Das ist das was wir bekommen, wenn wir etwas verkaufen. Das dazwischen ist der Spread. Daran verdient der Broker. Erstellen wir uns zunächst einmal ein Array für Preisdaten. Das machen wir mit der Funktion MqlRates. Unser Array bekommt den Namen PriceInfo.

 

Das wird jetzt mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert und mit dem Befehl CopyRates für das aktuelle Symbol auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit von der aktuellen Kerze für drei Kerzen mit den Preisdaten gefüllt. Das ganze Ergebnis speichern wir dann im Array. Damit haben wir alle Kursdaten zu den letzten drei Kerzen. Jetzt brauchen wir noch jeweils ein weiteres Array für den Expert Advisor. Uns interessiert hier das obere und das untere Band. Denn immer wenn der Preis hier oder hier ausbricht, dann möchten wir ein Signal erzeugen. Auch diese beiden Arrays werden mit ArraySetAsSeries wieder von der aktuellen Kerzen an abwärts sortiert. Und jetzt definieren die Bollinger Bänder. Dazu nutzen wir die Funktion iBands, die in MQL5 eingebaut ist. Wieder für das aktuelle Währungspaar und die aktuell auf dem Chart eingestellte Zeiteinheit. Wir berechnen das für 20 Kerzen. Hier stehen noch eine 0 und eine 2. Und wenn Sie sich einmal die Eigenschaften vom Bollinger Band Indikator anschauen, dann sehen Sie, dass die Standardwerte 20 Kerzen, eine Verschiebung von 0 und eine Abweichung von 2 beinhalten.

 

Das sind die gleichen Zahlen, die wir auch hier verwenden und das Ergebnis wird ermittelt anhand der Schlusskurse der Kerzen. Zunächst einmal kopieren wir die Preisdaten in die Arrays. Das tun wir mit dem Befehl CopyBuffer anhand unserer Bollinger Bands Definition, die wir getroffen haben. Hier steht eine 1 und da eine 2. Das liegt daran, dass wir zwei Bänder hier berechnen müssen. Die 1 steht für das obere, die 2 für das untere Band. Auch hier kopieren wir von der aktuellen Kerze für drei Kerzen und speichern die Werte in den beiden Arrays UpperBandArray, bzw. LowerBandArray. Die aktuellen Werte dafür bekommen wir indem wir die Werte für Kerze 0 aus dem jeweiligen Array auslesen, um eine Überkreuzung mit den Bändern zu ermitteln benötigen wir aber auch noch die Werte für die Kerze davor. Das ist dann Kerze 1 im gleichen Array.

 

Und wir speichern die Ergebnisse in myLastUpperBandValue oder myLastLowerBandValue ab. Jetzt können wir tatsächlich prüfen, ob wir einen Wiedereinstieg von unten haben. Wenn nämlich der Schlusskurs für die aktuelle Kerze aus unserem PriceInfo-Array größer ist als der Wert für das aktuelle untere Band und wenn der Schlusskurs für Kerze 1 aus unserem PriceInfo-Array noch kleiner war als der letzte Wert für unser unteres Bollinger Band, dann möchten wir gerne kaufen und darum weisen wir den Text Kaufen unserer Signalvariable zu. Im anderen Fall, wenn der Schlusskurs für Kerze 0 in unserem PriceInfo-Array kleiner ist als unser Wert für das obere Band und der Schlusskurs für Kerze 1 aus dem gleichen Array größer war als unser letzter Wert für das obere Band, dann hätten wir eine Überkreuzung von oben und dann möchten wir gerne verkaufen, darum weisen wir Verkaufen unserer Signalvariable zu. Kommen wir zum eigentlichen Kauf oder Verkauf. Immer wenn unser Signal den Wert Verkaufen hat und wir weniger als eine Position geöffnet habe, dann möchten wir gerne Verkaufen.

 

Im anderen Fall, wenn unser Signal Kaufen lautet und wir ebenfalls weniger als eine geöffnete Position haben, dann möchten wir gerne 10 Microlot kaufen. Zum Schluss erzeugen wir noch eine Chartausgabe des aktuellen Signals. Dazu nutzen wir den Comment-Befehl. Der wird uns das Wort Signal gefolgt von unserem berechneten Signal direkt auf dem Chart ausgeben. Soweit so gut. Wenn Sie alles haben, dann klicken Sie hier oben auf Kompilieren oder drücken F7 auf Ihrer Tastatur. Das sollte hier ohne Fehler und Warnungen funktionieren und wenn das so ist, dann klicken Sie bitte hier oder drücken F4, um in den MetaTrader zurückzukehren. Und im MetaTrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Steuerung und R. Hier wählen wir jetzt die Datei SimplerBollingerBandsStandAloneEA.ex5 aus, markieren hier die Visualisierung und starten unseren Test. Und so sieht das Ganze dann im laufenden Betrieb aus.

 

Hier wurde bereits eine Position eröffnet. Immer wenn die Kerzen oberhalb der oberen Bänder schließen und dann wieder eintreten, ist das für uns ein Verkaufen-Signal. Im anderen Fall bei einem Wiedereintritt von unten wäre das ein Kaufen-Signal. Man kann das hier deutlich beschleunigen. Und wie Sie sehen, werden jetzt hier Kaufen- und Verkaufen-Signale auf dem Chart ausgegeben. Wir haben hier auch schon erste Ergebnisse. Und Sie haben in diesem einfachen Video gelernt, wie man die Bollinger Bänder für den MetaTrader 5 automatisieren kann, um einen eigenständig handelsfähigen Expert Advisor zu erstellen. Und Sie haben das selbst programmiert, mit diesen paar Zeilen hier MQL5.