Forex Trading Framework – Bollinger Bänder traden

Das was hier gerade in ziemlich schneller Geschwindigkeit auf unserem Bildschirm abläuft, das sind die Bollinger Bänder.
Wenn ich mir einen Lieblingsindikator aussuchen müsste, dann wären es wohl die Bollinger Bänder, denn das war der Indikator, mit dem ich mein erstes profitables System erstellt habe.
Jetzt aktuell laufen die Bollinger Bänder als Einstiegssignal in unserem Golden Goose Framework.
Das hier ist die deutsche Version vom 08.04.2017. Derzeit haben wir hier drei offene Positionen und im Trading Framework werden einmal geöffnete Positionen verwaltet.
Der Equitystop wird nachgezogen und andere Dinge in der Verwaltung, wie die maximale Positionsanzahl für diese Währung oder die Berechnung des aktuellen Profits innerhalb eines Währungspaares, passieren ebenfalls im Framework.
Wir möchten uns in diesem Video auf den Einstieg konzentrieren und wie man ein Modul dafür erstellt.
Ich beschleunige das Ganze hier einmal und blende hier die grafische Darstellung ein, damit man sehen kann, wie das Ganze funktioniert.
Hier sieht man, dass unterschiedliche Positionsanzahlen gehandelt werden. Die blaue Linie hier ist das Bruttoguthaben, die sogenannte Balance.
Und die grüne Linie hier, das ist die Equity. Während dieser Back Test hier weiter läuft, wollen wir uns einmal anschauen, wie man den entsprechenden Einstieg für diesen Handel hier erstellen kann.
Um das zu tun, klicken wir hier im Metatrader auf diesen kleinen Button oder drücken die F4-Taste.
Und hier im Metatrader sehen wir das Golden Goose Framework vom 11. April 2017. Ein Framework kann man sich vom Prinzip als Trade-Verwaltung vorstellen. Hier werden diverse Funktionen importiert.
Jede Funktion hat eine eigene Aufgabe, diese hier z.B. überprüft ob wir eine neue Kerze auf dem Chart haben.
Und die ruft unterhalb vom Ordner Libraries hier dieses Golden Goose Framework auf und hier ist die Funktion untergebracht, die feststellt, ob wir eine neue Kerze haben.
Und da all diese Funktionen hier immer wieder gleich genutzt werden, habe ich sie in einer sogenannten Bibliothek zusammengefasst und brauche hier nur noch die fertigen Funktionen zu importieren.
Hier importieren wir die Einstiegslogik, das geht mit dem include-Befehl und in diesem Fall nutzen wir die Datei CheckEntry_Bollinger.mq5.
Und unsere OnTick-Funktion macht nur noch zwei Dinge, sie prüft den Signalzustand, indem sie die Funktion CheckEntry aufruft. Das ist die einzige Funktion hier, in unserem CheckEntry_Bollinger.mq5-Modul.
Und danach wird die Trade-Verwaltung im Framework aufgerufen. Das funktioniert mit der Funktion CheckForTick, der wir hier das Signal übergeben.
So, mittlerweile ist unser Test durchgelaufen. Wir haben ein Endergebnis mit einem Nettogewinn von insgesamt 2453 Euro und jetzt wollen wir uns einmal anschauen, was innerhalb der CheckEntry-Funktion passiert.
Zunächst erstellen wir uns ein Preis-Array, das geht mit der Funktion MqlRates und das Preisarray bekommt von mir den Namen PriceInfo.
Danach sortieren wir das Array von der aktuellen Kerze abwärts, indem wir die Funktion ArraySetAsSeries für unser Array PriceInfo nutzen, was wir hier oben definiert haben.
Und nachdem das erledigt ist, füllen wir das Array mit Preisdaten. Das kann die Funktion CopyRates übernehmen.
Die bekommt von uns als ersten Parameter das aktuelle Währungspaar und die, auf diesem Währungspaar eingetragene Zeiteinheit. Der nächste Parameter wird die Start Position.
Das wäre in unserem Fall Die Kerze 0, also verwenden wir hier die Null. Wir möchten gerne für 20 Kerzen die Informationen kopieren und die Daten sollen in unserer Array PriceInfo gespeichert werden.
Für das Signal selbst brauchen wir jetzt eine String-Variable, die bekommt den Namen signal und zunächst keinen Wert zugewiesen.
Dann erstellen wir uns ein Array für jedes der drei Bollinger Bänder.
Für das mittlere, für das obere und für das untere Band.
Wir sortieren die Preise für jedes Band genauso abwärts, in dem wir ArraySetAsSeries benutzen.
Auch das tun wir für jedes der drei Bänder, denn wie man sehen kann, haben die Bollinger Bänder ein unteres, ein mittleres und ein oberes Band, mit jeweils einem anderen Wert.
Jetzt kommt die eigentliche Definition der Bollinger Bänder. Das erledigt die Funktion iBands.
Auch die bezieht sich auf das aktuelle Währungspaar auf dem Chart und die auf dem Chart eingestellte Zeiteinheit.
Und wenn man sich hier einmal die Eigenschaften der Bollinger Bänder anschaut dann sieht man, dass hier 20 für die Periode eingestellt ist.
Das ist die Anzahl der Kerzen. Für die Verschiebung nutzen wir Null, also wir verschieben weder nach rechts, noch nach links und die Abweichung, die sogenannte Deviation steht auf einem Wert von zwei.
Das Ganze wird angewendet auf den Close Price, also auf den Schlusskurs und alle diese Parameter finden wir auch hier wieder.
20 Kerzen, keine Verschiebung nach rechts oder links, ein Deviation-Wert von 2 und das Ganze wird angewendet auf den Schlusskurs.
Nachdem unsere Definition erledigt ist, kopieren wir die Daten in das jeweilige Bollinger Band-Array für unsere drei Kerzen, die wir berechnen müssen. Und zwar aufgrund der BollingerBandDefinition, die wir hier getroffen haben.
Der Parameter hier steht für das mittlere, der für das obere und der für das untere Band.
Wir starten jeweils bei Kerze 0, also bei der aktuellen Kerze und kopieren uns den Wert für drei Kerzen in das jeweilige BollingerBandArray.
Und mit diesen Werten können wir uns jetzt den Bandwert für die Kerze 0 berechnen. Wir erstellen jeweils eine Variable vom Typ double myMiddleBandValue0, myUpperBandValue0 und myLowerBandValue0 und weisen aus dem jeweiligen Array Werte für Kerze 0 zu.
Das Gleiche machen wir jetzt nochmal für Kerze 1. Auch da erstellen wir eine double-Variable, die heißt jetzt myMiddleBandValue1, denn sie soll die Werte aus dem entsprechenden Array aufnehmen, und zwar für die Kerze 1.
Um unser Signal festzustellen prüfen wir, ob in der Kerze 1 von unserem Array PriceInfo, der Schlusskurs sich unterhalb des unteren Bollinger Bands befunden hat und ob für die Kerze 0 der Preis über dem unteren Band liegt.
Das wäre hier so ein Fall. Diese Kerze hat hier unten geschlossen, die nächste Kerze war bullish und hat oberhalb des unteren Bandes geschlossen.
Und wenn das so ist, dann haben wir ein Kaufsignal. Und für das Verkaufssignal prüfen wir, ob der Schlusskurs der Kerze 1 oberhalb des oberen Bollinger Bandes war und sich der Schlusskurs für die Kerze 0 jetzt unterhalb des oberen Bollinger Bandes befindet.
Den Fall sehen wir hier. Diese Kerze hat oberhalb des Bollinger Bandes geschlossen und die nächste Kerze hat ihren Schlusskurs unterhalb des oberen Bollinger Bandes.
Und in dem Fall setzen wir unser signal auf Sell, also verkaufen. Bleibt uns noch, das Signal an das Hauptmodul zurückzuliefern und das erledigt der Befehl return signal.
So, unser Einstiegsmodul wird lediglich gespeichert, während das Hauptmodul hier kompiliert werden muss. Das hat ohne Fehler und Warnungen funktioniert.
Also drücken wir jetzt auf diesen Button hier oder die F4-Taste, um in den Metatrader zurückzukehren.
Und im Metatrader klicken wir auf Ansicht -> Strategietester oder drücken die Tastenkombination STRG+R.
Das ruft dann hier den Strategietester auf. Und hier wählen wir uns das entsprechende Framework aus.
Natürlich können sie sich auch ein eigenes Framework erstellen oder alle Funktionen, die Sie für die Trade-Verwaltung benötigen, hier unterhalb der OnTick Funktion selbst programmieren, aber uns geht es ja jetzt nur um den Einstieg und um die Ergebnisse.
Ich wechsle hier mal auf das erste Währungspaar. Das ist der australische gegen den kanadischen Dollar. Wir handeln vom ersten Januar 2016 bis zum ersten Januar 2017. Und um das Ganze für dieses Video zu beschleunigen, nehme ich hier mal den Haken für die Visualisierung raus, starte den Test.
Schauen wir uns mal die Reiterkarte für die Ergebnisse an, dann sehen wir, dass wir in diesem Fall 2896 Euro Profit gemacht hätten.
Das waren 242 Trades in wenigen Sekunden, 80 Sell-Positionen und 162 Buy-Positionen.
Nehmen wir mal das nächste Währungspaar, starten einen neuen Test. Dann sollten wir in wenigen Sekunden die Ergebnisse sehen, denn das geht hier wirklich ziemlich schnell.
Innerhalb von 30 bis 60 Sekunden bekommt man mit einem aktuellen Rechner die Ergebnisse aus allen Trades für ein komplettes Handelsjahr angezeigt und in wenigen Sekunden sollte auch dieser Test hier fertig sein. Jetzt ist das der Fall. Und das wäre jetzt ein Nettogewinn von 8634 Euro gewesen.
Probieren wir mal den australischen Dollar gegen den Yen, starten einen neuen Test.
Auch der ist jetzt beendet. Und laut Ergebnis hätten wir einen Nettogewinn von 10488 Euro gemacht. Bitte beachten Sie, dass am Ende des Testzeitraumes, der Metatrader keine andere Chance hat, als hier zu zu machen.
Hätten wir den Test nur bis zu diesem Moment hier laufen lassen, hätten wir sogar ein dickes Minus gemacht. In der Praxis schließe ich meine Konten dann, wenn die Equity-Linie besonders nah an der Balance-Linie ist. Das wäre in diesem Fall hier der Fall gewesen.
Okay, Sie haben in diesem Video gelernt, wie sie für die Bollinger Bänder ein Einstiegs-Signal generieren können, dass Sie in einem solchen Trading Framework, oder einem von ihnen angepassten Expert Advisor laufen lassen können. Falls Sie nicht wissen, wie man ein solches Framework erstellt, oder wie Sie eins bekommen können, dann finden Sie weitere Informationen dazu auf meiner Webseite.
In diesem Video haben sie ein Einstiegssignal für die Bollinger Bänder erstellt und zwar mit diesen paar Zeilen in MQL5.