MQL5 TUTORIAL DEUTSCH – Simpler Market Facilitation Index

video
play-sharp-fill

Dieses farbenfrohe Lichterspiel hier im Hintergrund ist der Market Facilitation Index. Auch der ist im MetaTrader 5 enthalten, und in diesem Video möchten wir uns einmal anschauen, wie man den BWMFI-Wert hier auf dem Chart ausgeben kann. Falls Sie sich fragen, was diese unterschiedlich gefärbten Balken hier bedeuten: Wikipedia bietet hier in englischer Sprache für den Market Facilitation Index die Erklärungen für die vier unterschiedlichen Darstellungen, die es gibt. Grundsätzlich geht es darum, eine Verbindung zwischen dem Indikator und dem Marktvolumen herzustellen. Ich selbst bin bei der Signalwirkung von diesem Indikator eher skeptisch, aber wir wollen uns jetzt einmal anschauen, wie man den BWMFI-Wert von Bill Williams in MQL5 programmieren kann.
Um das zu tun, klicken Sie bitte hier oben auf diesen kleinen Button im MetaTrader, und jetzt sollten Sie den Meta-Editor sehen. Und hier wählen wir „Datei/ Neu/ Expert Advisor (Vorlage)/ Weiter“. Ich vergebe hier einmal den Namen „SimplerBWMFI“, klicke auf „Weiter/ Weiter/ Fertigstellen“. Und jetzt können Sie alles oberhalb der „onTick“-Funktion entfernen und auch diese beiden Kommentarzeilen löschen. Innerhalb der „onTick“-Funktion erstellen wir uns zunächst einmal ein Array für den Expert Advisor. Das ist vom Typ „Double“ und bekommt den Namen „BWMFIArray“, das steht für „Bill Williams Market Facilitation Index“. Danach definieren wir den Expert Advisor, indem wir die eingebaute MQL5-Funktion iBWMFI nutzen. Die benötigt als Parameter das aktuell auf dem Chart ausgewählte Währungspaar, die auf dem Chart eingestellte Zeiteinheit, und als 3. Parameter wird das Tick-Volumen übergeben. Denn wenn man sich hier einmal die Eigenschaften mit der rechten Maustaste anzeigen lässt, dann sieht man hier unten, dass als Standardwert-Volumen „Tick“ eingestellt ist. Im Anschluss sortieren wir unser Array von der aktuellen Kerze abwärts. Das kann die Funktion „ArraySetAsSeries“ übernehmen, die ebenfalls in MQL5 eingebaut ist. Die sortiert unser Array, welches wir hier oben erstellt haben, von der aktuellen Kerze 0 –das ist diese Kerze- abwärts für 3 Kerzen. Und danach können wir mit „CopyBuffer“ unser Array hier mit Daten füllen. Wir möchten das gerne anhand der von uns getroffenen Definition aus dieser Zeile hier machen, für jeweils einen Buffer oder eine Linie, darum nutzen wir hier den Wert 0. Wir brauchen von der aktuellen Kerze für 3 Kerzen die Daten. Da die aktuelle Kerze den Index 0 hat, nutzen wir hier die 0, und diese 3 sorgt dafür, dass wir auch für die nächsten 2 Kerzen Daten erhalten. Und alle diese Daten möchten wir im Array speichern, darum geben wir als letzten Parameter hier unser BWMFIArray an. Um den aktuellen Wert berechnen zu können, greifen wir auf die Kerze 0, also auf die aktuelle Kerze in unserem BWMFIArray, zu und weisen das Ergebnis der Variable „BWMFIWert“ zu. Die ist vom Typ „Double“, kann also Dezimalzahlen mit Nachkommastellen verarbeiten. Fehlt noch die Ausgabe auf dem Chart, und das übernimmt für uns die MQL5-Funktion „Comment“. Die wird uns den Text „BWMFIWert“, gefolgt von dem hier berechneten Wert ausgeben.
Das war’s auch schon. Sie können jetzt hier oben auf „Kompilieren“ klicken, oder F7 auf Ihrer Tastatur drücken; dann sollten Sie hier unten keine Fehler oder Warnungen erhalten. Und wenn das bei Ihnen auch so ist, dann klicken Sie bitte hier oben auf diesen kleinen Button, oder drücken die F4-Taste auf Ihrer Tastatur, um in den MetaTrader zurückzukehren. Und im MetaTrader klicken wir auf „Ansicht/ Strategietester“, oder drücken die Tastenkombination Stgr+R. Das ruft dann hier dieses StrategietesterPanel auf, und hier wählen wir die Datei „SimplerIBWMFI.ex5“ aus. Bitte aktivieren Sie hier unten die Option für die Visualisierung, und starten Sie Ihren Test.
Und jetzt sollte Ihr Bildschirm so oder so ähnlich aussehen. Man kann hier erkennen, dass der BWMFI nur 5 Nachkommastellen hat. Unser berechneter Wert hier ist deutlich länger. Um die Anzahl der Nachkommastellen entsprechend anzupassen, nutzen wir einen kleinen Trick und berechnen für den BWMFIWert mit der Funktion „NormalizeDouble“ die Inhalte der Kerze 0 aus unserem Array und kürzen sie auf 5 Nachkommastellen ab. Der NormalizeDouble ist in der Lage, die Anzahl der Dezimalzeichen nach dem Komma entsprechend zur kürzen. Danach müssen wir unseren Quelltext erneut kompilieren. Auch das sollte wieder ohne Fehler funktionieren. Und wenn wir jetzt im MetaTrader einen neuen Test starten, dann sehen Sie, dass hier oben die BWMFI-Werte verkürzt ausgegeben werden.
Okay, in diesem kurzen Video haben Sie gelernt, wie Sie Werte für den Market Facilitation Index von Bill Williams berechnen können. Und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5.