English Русский 中文 Español 日本語 Português
preview
Lernen Sie, wie man ein Handelssystem mit Bill Williams' MFI entwickelt

Lernen Sie, wie man ein Handelssystem mit Bill Williams' MFI entwickelt

MetaTrader 5Handel | 2 Mai 2023, 12:53
158 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Einführung

Hier ist ein neuer Artikel aus unserer Serie darüber, wie man ein Handelssystem basierend auf den beliebtesten technischen Indikatoren entwirft. In diesem Artikel stellen wir Ihnen ein neues technisches Tool vor, das eine nützliche Ergänzung für Ihren Handel sein kann, insbesondere wenn Sie es zusammen mit anderen technischen Tools verwenden, um bessere Erkenntnisse zu gewinnen. Wir werden uns mit dem Market Facilitation Index von Bill Williams (BW MFI) vertraut machen. Dieser Indikator wird durch die folgenden Themen abgedeckt:

  1. BW-MFI-Definition
  2. BW-MFI-Strategie
  3. BW MFI-Strategieentwurf
  4. BW-MFI-Handelssystem
  5. Schlussfolgerung

Wir werden die MetaTrader 5 Handelsplattform verwenden, um die Strategien dieses Artikels zu testen und wir werden MQL5 (MetaQuotes Language) IDE verwenden, um unsere Handelssysteme für den Artikel zu erstellen. Wenn Sie nicht wissen, wie man sie herunterlädt und verwendet, können Sie das Thema Schreiben von MQL5-Code in MetaEditor aus meinem vorherigen Artikel lesen, um weitere Einzelheiten zu erfahren.

Alle in diesem Artikel erwähnten Strategien sind nur für Ausbildungszwecke gedacht und Sie müssen sie testen, bevor Sie sie in Ihrem realen Konto verwenden. Sie sind sicherlich optimierungsbedürftig. Einige der Strategien passen vielleicht gar nicht zu Ihrem Handelsstil, denn es gibt nichts, was für alle Menschen geeignet ist. Außerdem wird es für Sie als Programmierer sehr nützlich sein, wenn Sie versuchen, das Gelesene selbst anzuwenden, weil es Ihnen helfen wird, Ihre Programmierkenntnisse zu verbessern.

Haftungsausschluss: Alle Informationen werden in der vorliegenden Form nur zu Informationszwecken bereitgestellt und sind nicht für Handelszwecke oder als Ratschläge gedacht. Die Informationen garantieren keinen Erfolg. Wenn Sie sich dafür entscheiden, diese Materialien auf einem Ihrer Handelskonten zu verwenden, tun Sie dies auf eigenes Risiko und Sie sind allein verantwortlich.


BW-MFI-Definition

In diesem Thema werden wir den Indikator Market Facilitation Index (MFI) im Detail kennenlernen. Er ist einer der technischen Indikatoren, die von dem bekannten Trader und Autor Bill Williams entwickelt wurden. Dieser Indikator zielt darauf ab, die Richtung des Marktes zu messen, indem er sowohl den Preis als auch das Volumen untersucht und analysiert. Dies wird uns als Händler helfen, da es hilfreich sein kann, die zukünftige Bewegung des Marktes zu erkennen und Einblicke in die Stärke der aktuellen Preisbewegung zu geben: ob sie sich fortsetzen oder umkehren wird. Dies kann für uns sehr nützlich sein, da es uns hilft, mit dem stärksten Marktteilnehmer zu handeln und die richtige Entscheidung zu treffen.

Um die Situation zu verstehen, können wir den MFI und das Volumen analysieren. Die Fälle können wie folgt aussehen:

  • Wenn die BW-MFI und das Volumen steigen, deutet dies darauf hin, dass die Marktteilnehmer an diesem Finanzinstrument interessiert sind.
  • Wenn die BW-MFI und das Volumen abnehmen, deutet dies darauf hin, dass die Marktteilnehmer kein Interesse an diesem Finanzinstrument haben.
  • Wenn der BW-MFI steigt, aber das Volumen sinkt, bedeutet dies, dass die aktuelle Bewegung nicht durch das Volumen unterstützt wird.
  • Wenn der BW-MFI sinkt, aber das Volumen steigt, deutet dies darauf hin, dass auf dem Markt ein Gleichgewicht zwischen Käufern und Verkäufern besteht.

Nun wollen wir sehen, wie wir den BW-MFI manuell berechnen können. Dies wird nur helfen, die Hauptidee oder das Konzept dahinter zu verstehen, da wir das heutzutage nicht mehr tun müssen, da wir einfach den eingebauten Indikator im MetaTrader 5 verwenden können. Um den BW-MFI zu berechnen, müssen wir das Ergebnis durch das Volumen nach Abzug der Höchst- und Tiefstpreise dividieren.

BW MFI = (Hoch - Tief) / Volumen

Wobei:

Hoch => der Höchstpreis
Tief => der Tiefstpreis
Volumen => das aktuelle Volumen

Aber wie ich bereits erwähnt habe, brauchen wir ihn nicht manuell zu berechnen, sondern wir müssen ihn nur unter den verfügbaren Indikatoren im MetaTrader 5 auswählen. Im Folgenden zeige ich, wie man das macht.

Öffnen Sie das MetaTrader 5 Terminal, wählen Sie das Menü Einfügen -> Indikatoren -> Bill Williams -> Market Facilitation Index. Sie ist in der folgenden Abbildung dargestellt:

BW-MFI einfügen

Danach können wir das Fenster mit den Parametern des Indikators wie folgt finden:

BW MFI Fenster

1 — die Farbe, die die Situation anzeigt, wenn MFI und Volumen steigen.

2 — die Farbe, die die Situation anzeigt, wenn MFI und das Volumen abnehmen.

3 — die Farbe, die die Situation anzeigt, wenn MFI steigt und das Volumen sinkt.

4 — die Farbe, die die Situation anzeigt, wenn MFI abnimmt und das Volumen zunimmt.

5 — den Volumentyp (Tick oder Real).

6 — die Dicke der Balken des Indikators.

Nachdem Sie die oben genannten Parameter festgelegt und OK gedrückt haben, wird der Indikator wie im folgenden Beispiel an das Chart angehängt:

BW MFI gestartet

Wie Sie in der vorherigen Abbildung sehen können, erscheint der Indikator in einem Unterfenster des Charts. Er erscheint als Balken mit unterschiedlichen Werten und Farben auf der Grundlage des Preises und des Volumens, die auf der Berechnung des BW MFI-Indikators basieren. Jede Farbe und jeder Wert des Indikators zeigt einen bestimmten Zustand der Kursbewegungen an.

  • Der grüne Balken bedeutet, dass die BW-MFI und das Volumen steigen, was bedeutet, dass die Marktteilnehmer an diesem Instrument interessiert sind.
  • Der sattelbraune Balken bedeutet, dass der BW-MFI und das Volumen abnehmen, was bedeutet, dass niemand an dem Instrument interessiert ist.
  • Der blaue Balken bedeutet, dass der BW MFI steigt und das Volumen sinkt, was bedeutet, dass die Marktbewegung nicht durch das Volumen unterstützt wird.
  • Der rosafarbene Balken bedeutet, dass der BW MFI abnimmt und das Volumen zunimmt, was darauf hindeutet, dass ein Gleichgewicht zwischen Bullen und Bären besteht.

BW-MFI-Strategie

In diesem Thema werden wir einige einfache Strategien vorstellen, die auf der Grundlage des BW-MFI-Indikators zum Zwecke der Bildung eingesetzt werden können. Bitte vergessen Sie nicht, dass sie optimiert, einige Parameter geändert oder mit anderen technischen Indikatoren kombiniert werden müssen, um bessere Ergebnisse zu erzielen. Es ist daher sehr wichtig, sie zu testen, bevor Sie sie in Ihrem echten Konto verwenden, um sicherzustellen, dass sie profitabel und nützlich für Ihren Handel sind.

Strategie eins: BW MFI - Bewegungsstatus

Auf der Grundlage dieser Strategie müssen wir den Status der Bewegung des BW-MFI-Indikators auf der Grundlage der Reihenfolge der BW-MFI-Werte und der Volumenwerte ermitteln. Demnach gibt es vier Zustände:

  • Wenn der aktuelle BW-MFI größer ist als der vorherige und das aktuelle Volumen größer ist als das vorherige. Der Balken ist also grün und signalisiert einen green state (grüner Zustand).
  • Wenn der aktuelle BW-MFI geringer ist als der vorherige und das aktuelle Volumen geringer ist als das vorherige. Der Balken ist also braun und signalisiert einen fade state (Trendende).
  • Wenn der aktuelle BW-MFI größer ist als der vorherige und das aktuelle Volumen kleiner ist als das vorherige. Der Balken ist also blau und signalisiert einen fake state (widersprüchlichen Zustand).
  • Wenn der aktuelle BW-MFI kleiner ist als der vorherige und das aktuelle Volumen größer ist als das vorherige. Wenn also die Stange rosa ist, ist das ein Signal für einen squat state (Stillstand).

Einfach:

  • Aktueller BW MFI > vorheriger. BW MFI und aktuelles Volumen > vorheriges Volumen ==> Green state - grüner Balken
  • Aktueller BW MFI < vorheriger. BW MFI und aktuelles Volumen < vorheriges Volumen ==> Fade state - brauner Balken
  • Aktueller BW MFI > vorheriger. BW MFI und aktuelles Volumen < vorheriges Volumen ==> Fake state - blauer Balken
  • Aktueller BW MFI < vorheriger. BW MFI und aktuelles Volumen > vorheriges Volumen ==> Squat state - rosa Balken

Strategie zwei: BW-MFI-Signale

Auf der Grundlage dieser Strategie müssen wir ein Signal erhalten, das auf dem Stand des BW-MFI-Indikators basiert. Zunächst müssen wir den Zustand des Marktes bestimmen, wie wir ihn mit der vorherigen Strategie ermittelt haben. Auf dieser Grundlage werden wir dann unsere Entscheidung treffen. Nach dieser Strategie werden wir vier Signale haben:

  • Beim grünen Status ist dies ein Signal, einen guten Einstieg zu finden.
  • Beim fade state ist das ein Signal, einen guten Ausstieg zu finden.
  • Beim fake state ist dies ein Signal für eine falsche Ausbruchswahrscheinlichkeit.
  • Beim squat state ist das ein Zeichen dafür, dass der Markt im Gleichgewicht ist.

Strategie drei: BW MFI mit MA

Auf der Grundlage dieser Strategie werden wir einen weiteren technischen Indikator verwenden, nämlich den gleitenden Durchschnitt, um ein Kauf- oder Verkaufssignal zu erhalten. Wenn der Status grün ist und der Schlusskurs über dem gleitenden Durchschnitt liegt, handelt es sich um ein Kaufsignal. Im anderen Fall, wenn der Status grün ist und der Schlusskurs unter dem gleitenden Durchschnitt liegt, handelt es sich um ein Verkaufssignal. Auf diese Weise von Funktionen der technischen Analyse, wie wir kombinieren können technische Werkzeuge zusammen, um mehr Einblicke und sehen verschiedene Perspektiven. Sie können dies auch mit anderen technischen Werkzeugen tun, um mehr Einblicke zu erhalten, wie Unterstützung und Widerstand, MACD, gleitende Durchschnitte oder andere nützliche technische Werkzeuge, die bei der Filterung der generierten Signale nützlich sein können.

Einfach:

  • Grüner Zustand und Schlusskurs > MA ==> Kaufsignal
  • Grüner Zustand und Schlusskurs < MA ==> Verkaufssignal

BW MFI-Strategieentwurf

In diesem Teil werden wir einen sehr wichtigen Schritt bei der Entwicklung unseres Handelssystems berücksichtigen, nämlich einen Schritt-für-Schritt-Entwurf für jede erwähnte Strategie. Die Blaupause hilft bei der reibungslosen Erstellung des Handelssystems, da sie veranschaulicht, was wir dem Computer vorgeben müssen. Wir können diesen Schritt also als einen Planungsschritt für unsere kommende Strategie betrachten.

 Strategie eins: BW MFI - Bewegungsstatus

Nach dieser Strategie müssen wir ein Handelssystem erstellen, das verwendet werden kann, um ein Signal der Bewegung des BW-MFI-Indikators zu erhalten, das auf der Farbe des Balken des Indikators basiert, die entsprechend der Art des Indikators bestimmt wird, indem vier Werte jeden Tick verglichen werden, um die Position jedes einzelnen von ihnen zu bestimmen. Diese vier Werte sind der aktuelle BW-MFI, der vorherige BW-MFI, die aktuellen Mengen und die vorherigen Mengen. Wir brauchen das Programm, um sie zu überprüfen und die Position jedes Wertes zu bestimmen. Wenn der aktuelle Wert des BW MFI größer ist als der vorherige und gleichzeitig das aktuelle Volumen größer ist als das vorherige, muss das Handelssystem einen Kommentar auf dem Chart mit „Green State - Green Bar“ (Grüner Zustand - Grüner Balken) ausgeben. Das ist der erste Fall. Die zweite ist, wenn die aktuelle BW MFI ist weniger als die vorherige und zur gleichen Zeit der Wert des aktuellen Volumens ist niedriger als die vorherige, wenn das Handelssystem einen Kommentar auf dem Chart mit „Fade State - Brown Bar“ (Trendende - brauner Balken) zurück. Der dritte Fall ist, wenn der aktuelle BW-MFI-Wert größer ist als der vorherige und gleichzeitig der Wert des aktuellen Volumens niedriger ist als der vorherige. Dann muss das System einen Kommentar auf dem Chart mit „Fake State - Blue Bar“ (falscher Ausbruch - blauer Balken) zurückgeben. Der vierte und letzte Fall ist, wenn der aktuelle BW-MFI-Wert niedriger ist als der vorherige und gleichzeitig der Wert des aktuellen Volumens größer ist als der vorherige, müssen wir einen Kommentar auf dem Chart mit „Squat State - Pink Bar“ (Stillstand - rosa Balken) erhalten.

Das folgende Chart bezieht sich auf den Strategieentwurf für den Bewegungsstatus:

Blaupause Bewegungsstatus

Strategie zwei: BW-MFI-Signale

Nach dieser Strategie und nach der Identifizierung jedes Zustands auf der Grundlage der Indikatorbalken müssen wir ein Handelssystem erstellen, das verwendet werden kann, um den Kommentar auf dem Chart mit dem geeigneten Signal auf der Grundlage dieses Zustands des BW MFI-Indikators zurückzugeben. Zu diesem Zweck müssen wir ein Handelssystem erstellen, das für jeden Tick vier Zustände überprüfen und darauf basierend ein geeignetes Signal liefern kann. Wenn der Zustand des BW MFI ein grüner Zustand ist, der im Handelssystem identifiziert wird, müssen wir ein Signal als Kommentar auf dem Chart mit „Find a good entry“ (Finde einen guten Einstieg) erhalten. Der zweite Zustand, wenn wir den Zustand des Indikators überprüfen und feststellen, dass es sich um einen Fade-Zustand handelt, muss das Handelssystem ein Signal als Kommentar auf dem Chart mit „Find a good exit“ (finde einen guten Ausstieg) zurückgeben. Das dritte Szenario oder der dritte Zustand ist, wenn der Zustand des BW MFI überprüft wird und wir feststellen, dass es sich um einen falschen Zustand handelt, muss das Handelssystem einen Kommentar auf dem Chart als Signal mit „Falscher Ausbruchswahrscheinlichkeit“ zurückgeben. Der letzte Zustand ist, wenn nach der Überprüfung, dass es sich um einen besetzten Zustand, müssen wir einen Kommentar auf dem Chart als ein Signal mit „Market is Balanced“ (Markt ist im Gleichgewicht, Stillstand) zu bekommen.

Das folgende Chart bezieht sich auf den Strategieentwurf für Signale:

BW MFI-Signale Blaupause

Strategie drei: BW MFI mit MA

Gemäß dieser Strategie müssen wir ein Handelssystem erstellen, das auf der Grundlage des BW-MFI-Indikators und des einfachen gleitenden Durchschnitts ein Kauf- oder Verkaufssignal liefert. Das Handelssystem muss kontinuierlich den Schlusskurs, den aktuellen einfachen gleitenden Durchschnitt und den Zustand des aktuellen BW-MFI-Indikators überprüfen, nachdem es dessen vier Zustände bei jedem Tick ermittelt hat. Wenn das Handelssystem festgestellt hat, dass der Schlusskurs über dem aktuellen Wert des einfachen gleitenden Durchschnitts liegt und gleichzeitig der aktuelle BW-MFI-Status grün ist, muss das Handelssystem ein Kaufsignal als Kommentar auf dem Chart zurückgeben. Wenn es feststellt, dass der Schlusskurs unter dem aktuellen einfachen gleitenden Durchschnitt liegt und gleichzeitig der aktuelle BW-MFI-Status grün ist, muss das Handelssystem ein Verkaufssignal als Kommentar auf dem Chart ausgeben. Wenn es etwas anderes gibt, muss das Handelssystem nichts zurückgeben.

Das folgende Schaubild bezieht sich auf den BW-MFI mit dem MA-Strategieplan:

BW MFI mit MA-Blaupause

BW-MFI-Handelssystem

In diesem Teil des Artikels werden wir mit der Erstellung unseres Handelssystems für jede der genannten Strategien beginnen. Wir beginnen mit der Erstellung eines einfachen Handelssystems, das einen Kommentar zum Chart mit dem aktuellen BW-MFI-Wert zurückgibt, um ihn als Grundlage für andere Strategien zu verwenden. Nachfolgend finden einige Schritte, um dies zu erreichen:

Wir erstellen das Array BWMFIArray des Typs double für reelle Zahlen, um mit Werten mit Brüchen zu arbeiten.

double BWMFIArray[];

Wir legen die zeitliche Reihung der Daten in diesen Arrays mit Hilfe der Funktion „ArraySetAsSeries“ fest. Die Parameter:

  • array[]: um das erstellte Array BMWFIArray auszurichten.
  • Flags: Array-Indizierungsrichtung, die wahr (true) sein wird.
ArraySetAsSeries(BWMFIArray,true);

Erstellen einer Integer-Variablen für BWMFIDef und Definieren des Bill Williams Market Facilitation Index mit der Funktion „iBWMFI“. um den Indikator-Handle zurückzugeben:

  • symbol: Um das gewünschte Symbol zu bestimmen, verwenden wir (_Symbol), das auf das aktuelle Symbol angewendet wird.
  • period: Um die Zeitrahmen zu bestimmen, wir verwenden (_PERIOD), das für den aktuellen Zeitrahmen.
  • applied_volume: Um die Art des Volumens zu bestimmen, wird (VOLUME_TICK) verwendet.
int BWMFIDef=iBWMFI(_Symbol,_Period,VOLUME_TICK);

Definieren von Daten und Speichern von Ergebnissen mit Hilfe der Funktion „CopyBuffer“ für BWMFIArray. Die Parameter:

  • indicator_handle: Um den Indikator-Handle zu bestimmen, wird (BWMFIDef) verwendet.
  • buffer_num: Dient zur Bestimmung der Nummer des Indikatorpuffers, wir verwenden 0.
  • start_pos: Als Startposition verwenden wir 0.
  • count: Die zu kopierenden Anzahl von Werten, wir benötigen 3.
  • buffer[]: Um das zu kopierende Ziel-Array zu bestimmen, wird (BWMFIArray) verwendet.
CopyBuffer(BWMFIDef,0,0,3,BWMFIArray);

Ermittlung des aktuellen Wertes von BWMFI nach Erstellung einer Variablen des Typs double für BWMFIVal. Anschließend verwenden wir die Funktion (NormalizeDouble) zur Rundung.

  • value: BWMFIArray[0] für den aktuellen Wert.
  • digits: Wir verwenden (5) für die Anzahl der Dezimalstellen.
double BWMFIVal=NormalizeDouble(BWMFIArray[0],5);

Wir verwenden Comment(), um den Wert des aktuellen BW-MFI-Wertes anzuzeigen.

Comment("BW MFI Value = ",BWMFIVal);

Nachfolgend der vollständige Code in einem Block für dieses Handelssystem:

//+------------------------------------------------------------------+
//|                             Simple Market Facilitation Index.mq5 |
//|                                  Copyright 2023, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   double BWMFIArray[];
   ArraySetAsSeries(BWMFIArray,true);
   int BWMFIDef=iBWMFI(_Symbol,_Period,VOLUME_TICK);
   CopyBuffer(BWMFIDef,0,0,3,BWMFIArray);
   double BWMFIVal=NormalizeDouble(BWMFIArray[0],5);
   Comment("BW MFI Value = ",BWMFIVal);
  }
//+------------------------------------------------------------------+

Nach dem fehlerfreien Kompilieren der vorherigen Codezeilen finden wir diesen Experten im Navigator-Fenster unter dem Ordner Expert Advisors im MetaTrader 5-Handelsterminal wie folgt:

BW MFI nav

Wenn Sie den Experten des Simple Market Facilitation Index auf den gewünschten Chart ziehen, wird das Fenster dieses EAs erscheinen:

BW MFI Fenster

Nachdem wir ein Häkchen bei Algo Trading zulassen gesetzt und auf OK gedrückt haben, können wir feststellen, dass der EA wie folgt gestartet wurde:

Einfaches BW MFI gestartet

Jetzt sind wir bereit, Signale zu empfangen, wie im folgenden Beispiel aus dem Test:

Einfaches BW-MFI-Signal

Wie wir auf dem vorherigen Chart sehen können, haben wir ein auf dieser Handelsstrategie basierendes Signal, das als Kommentar mit dem aktuellen BW-MFI-Wert in der oberen linken Ecke angezeigt wird.

Strategie eins: BW MFI - Bewegungsstatus

Wir können den folgenden vollständigen Code finden, um diese Art von Handelssystem zu erstellen:

//+------------------------------------------------------------------+
//|                                     BW MFI - Movement Status.mq5 |
//|                                  Copyright 2023, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   double BWMFIArray[];
   double volArray[];
   ArraySetAsSeries(BWMFIArray,true);
   ArraySetAsSeries(volArray,true);
   int BWMFIDef=iBWMFI(_Symbol,_Period,VOLUME_TICK);
   int volDef=iVolumes(_Symbol,_Period,VOLUME_TICK);
   CopyBuffer(BWMFIDef,0,0,3,BWMFIArray);
   CopyBuffer(volDef,0,0,3,volArray);
   double BWMFIVal=NormalizeDouble(BWMFIArray[0],5);
   double BWMFIVal1=NormalizeDouble(BWMFIArray[1],5);
   double volVal=NormalizeDouble(volArray[0],5);
   double volVal1=NormalizeDouble(volArray[1],5);
   if(BWMFIVal>BWMFIVal1&&volVal>volVal1)
     {
      Comment("Green State - Green Bar");
     }
   if(BWMFIVal<BWMFIVal1&&volVal<volVal1)
     {
      Comment("Fade State - Brown Bar");
     }
   if(BWMFIVal>BWMFIVal1&&volVal<volVal1)
     {
      Comment("Fake State - Blue Bar");
     }
   if(BWMFIVal<BWMFIVal1&&volVal>volVal1)
     {
      Comment("Squat State - Pink Bar");
     }
  }
//+------------------------------------------------------------------+

Unterschiede in diesem Code:

Erstellen von zwei Arrays (BWMFIArray) und (volArray) und Ausrichten der Daten in diesen Arrays mit Hilfe der Funktion „ArraySetAsSeries“.

   double BWMFIArray[];
   double volArray[];
   ArraySetAsSeries(BWMFIArray,true);
   ArraySetAsSeries(volArray,true);
Erstellen ganzzahliger Variablen für BWMFIDef und volDef. Definition des Bill Williams Market Facilitation Index mit der Funktion „iBWMFI“ und der Volumina mit der Funktion „iVolumes“. Die Parameter sind für beide gleich:
  • symbol: Um das gewünschte Symbol zu bestimmen, verwenden wir (_Symbol), das auf das aktuelle Symbol angewendet wird.
  • period: Um die Zeitrahmen zu bestimmen, wir verwenden (_PERIOD), das für den aktuellen Zeitrahmen.
  • applied_volume: Um die Art des Volumens zu bestimmen, wird (VOLUME_TICK) verwendet.
   int BWMFIDef=iBWMFI(_Symbol,_Period,VOLUME_TICK);
   int volDef=iVolumes(_Symbol,_Period,VOLUME_TICK);

Definieren von Daten und Speichern von Ergebnissen mit Hilfe der Funktion „CopyBuffer“ für volArray.

CopyBuffer(volDef,0,0,3,volArray);

Festlegung der aktuellen und vorherigen Werte von BWMFI und Volumen:

   double BWMFIVal=NormalizeDouble(BWMFIArray[0],5);
   double BWMFIVal1=NormalizeDouble(BWMFIArray[1],5);
   double volVal=NormalizeDouble(volArray[0],5);
   double volVal1=NormalizeDouble(volArray[1],5);

Bedingungen der Strategie,

Im Falle des grünen Balkens,

   if(BWMFIVal>BWMFIVal1&&volVal>volVal1)
     {
      Comment("Green State - Green Bar");
     }

Im Falle des braunen Balkens,

   if(BWMFIVal<BWMFIVal1&&volVal<volVal1)
     {
      Comment("Fade State - Brown Bar");
     }

Im Falle des blauen Balkens,

   if(BWMFIVal>BWMFIVal1&&volVal<volVal1)
     {
      Comment("Fake State - Blue Bar");
     }

Im Falle des rosa Balkens,

   if(BWMFIVal<BWMFIVal1&&volVal>volVal1)
     {
      Comment("Squat State - Pink Bar");
     }

Nach dem fehlerfreien Kompilieren des vorherigen Codes und dem Ausführen werden wir feststellen, dass er mit dem Chart wie folgt verbunden ist:

Movement Status gestartet

Wie wir sehen können, erscheint der EA in der oberen rechten Ecke der vorherigen Abbildung. Wir sind bereit, Signale dieses Handelssystems zu erhalten, wie die folgenden Beispiele aus dem Test:

Im Falle des grünen Zustandssignals (green state),

Status der Bewegung - Grünes Signal

 

Wie in der vorherigen Abbildung zu sehen ist, haben wir das Signal eines grünen Zustands in der oberen linken Ecke.

Im Falle des Trendendes (fade state):

Bewegung Status - Fade-Signal

Wir haben das Signal eines Abklingens, die auf dieser Strategie basiert, als Kommentar in der oberen linken Ecke.

Im Falle des falschen Ausbruchs (fake state)

Bewegungsstatus - Widersprüchliches Signal

Das Gleiche können wir im vorherigen Beispiel sehen, als wir ein Signal eines falschen Ausbruchs basierend auf diesem Handelssystem erhielten.

Im Falle eines Stillstandes (squat state):

Bewegungsstatus - Stillstand

Wir haben das Signal eines Squat-Status (Stillstand) als Kommentar in der oberen linken Ecke des Charts auf der Grundlage dieser Handelsstrategie. 

Strategie zwei: BW-MFI-Signale

Im Folgenden finden Sie den vollständigen Code dieses Handelssystems dieser Strategie.

//+------------------------------------------------------------------+
//|                                               BW MFI Signals.mq5 |
//|                                  Copyright 2023, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
void OnTick()
  {
   double BWMFIArray[];
   double volArray[];
   ArraySetAsSeries(BWMFIArray,true);
   ArraySetAsSeries(volArray,true);
   int BWMFIDef=iBWMFI(_Symbol,_Period,VOLUME_TICK);
   int volDef=iVolumes(_Symbol,_Period,VOLUME_TICK);
   CopyBuffer(BWMFIDef,0,0,3,BWMFIArray);
   CopyBuffer(volDef,0,0,3,volArray);
   double BWMFIVal=NormalizeDouble(BWMFIArray[0],5);
   double BWMFIVal1=NormalizeDouble(BWMFIArray[1],5);
   double volVal=NormalizeDouble(volArray[0],5);
   double volVal1=NormalizeDouble(volArray[1],5);
   bool greenState = BWMFIVal>BWMFIVal1&&volVal>volVal1;
   bool fadeState = BWMFIVal<BWMFIVal1&&volVal<volVal1;
   bool fakeState = BWMFIVal>BWMFIVal1&&volVal<volVal1;
   bool squatState = BWMFIVal<BWMFIVal1&&volVal>volVal1;
   
   if(greenState)
     {
      Comment("Find a good entry");
     }
   if(fadeState)
     {
      Comment("Find a good exit");
     }
   if(fakeState)
     {
      Comment("False breakout Probability");
     }
   if(squatState)
     {
      Comment("Market is Balanced");
     }
  }
//+------------------------------------------------------------------+

Unterschiede zu diesem Code:

Deklarieren von bool-Variablen für die vier Zustände green, fade, fake und squat (Grün, Ende, Falsch und Stillstand) zu spezifischen Bedingungen für jeden Zustand,

   bool greenState = BWMFIVal>BWMFIVal1&&volVal>volVal1;
   bool fadeState = BWMFIVal<BWMFIVal1&&volVal<volVal1;
   bool fakeState = BWMFIVal>BWMFIVal1&&volVal<volVal1;
   bool squatState = BWMFIVal<BWMFIVal1&&volVal>volVal1;

Bedingungen der Strategie,

Im Falle des grünen Zustands

   if(greenState)
     {
      Comment("Find a good entry");
     }

Im Falle des Trendendes

   if(fadeState)
     {
      Comment("Find a good exit");
     }

Im Falle des falschen Ausbruchs

   if(fakeState)
     {
      Comment("False breakout Probability");
     }

Im Falle des Stillstandes

   if(squatState)
     {
      Comment("Market is Balanced");
     }

Nach dem Kompilieren und Ausführen dieses Codes können wir feststellen, dass der EA an das Chart gestartet wurde, wie im Folgenden dargestellt:

BW-MFI-Signale gestartet

Wir können in der oberen rechten Ecke sehen, dass der EA von BW MFI-Signalen auf dem Chart gestartet wurde. Wir können unsere Signale auf der Grundlage dieses Handelssystems jetzt genauso wie die folgenden erhalten:

Im Falle der Suche nach einem guten Einstiegssignal:

Finden eines guten Einstiegssignals

So können wir unser Signal, einen guten Einstieg zu finden, in der oberen linken Ecke des Charts als Kommentar dargestellt.

Im Falle der Suche nach einem guten Ausstieg:

Finden eines guten Ausstiegs

Wie wir können, haben wir unser Signal der Suche nach einem guten Ausgang in der oberen linken Ecke des Charts als Kommentar.

Im Falle eines falschen Ausbruchssignals Wahrscheinlichkeit:

BW-MFI-Signale - Falsches Ausbruchssignal

Wie wir können, haben wir unser Signal der falschen Ausbruchswahrscheinlichkeit in der oberen linken Ecke des Charts als Kommentar.

Im Falle des Marktes handelt es sich um ein Signal des Stillstandes:

BW-MFI-Signale - Stillstand

Wie wir sehen können, haben wir unser Signal des Stillstandes des Marktes in der oberen linken Ecke des Charts als Kommentar.

Strategie drei: BW MFI mit MA:

Im Folgenden finden Sie den vollständigen Code dieses Handelssystems, das auf der Strategie basiert, die wir zwischen dem BW MFI und dem gleitenden Durchschnitt kombinieren werden.

//+------------------------------------------------------------------+
//|                                               BW MFI with MA.mq5 |
//|                                  Copyright 2023, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
void OnTick()
  {
   double BWMFIArray[];
   double volArray[];
   double maArray[];
   MqlRates pArray[];
   ArraySetAsSeries(BWMFIArray,true);
   ArraySetAsSeries(volArray,true);
   ArraySetAsSeries(maArray,true);
   int BWMFIDef=iBWMFI(_Symbol,_Period,VOLUME_TICK);
   int volDef=iVolumes(_Symbol,_Period,VOLUME_TICK);
   int maDef=iMA(_Symbol,_Period,10,0,MODE_SMA,PRICE_CLOSE);
   int data=CopyRates(_Symbol,_Period,0,10,pArray);
   CopyBuffer(BWMFIDef,0,0,3,BWMFIArray);
   CopyBuffer(volDef,0,0,3,volArray);
   CopyBuffer(maDef,0,0,3,maArray);
   double BWMFIVal=NormalizeDouble(BWMFIArray[0],5);
   double BWMFIVal1=NormalizeDouble(BWMFIArray[1],5);
   double volVal=NormalizeDouble(volArray[0],5);
   double volVal1=NormalizeDouble(volArray[1],5);
   double maVal=NormalizeDouble(maArray[0],5);
   double closingPrice=pArray[0].close;
   bool greenState = BWMFIVal>BWMFIVal1&&volVal>volVal1;
   bool fadeState = BWMFIVal<BWMFIVal1&&volVal<volVal1;
   bool fakeState = BWMFIVal>BWMFIVal1&&volVal<volVal1;
   bool squatState = BWMFIVal<BWMFIVal1&&volVal>volVal1;
   if(closingPrice>maVal&&greenState)
     {
      Comment("Buy Signal");
     }
   else
      if(closingPrice<maVal&&greenState)
        {
         Comment("Sell signal");
        }
      else
         Comment("");
  }
//+------------------------------------------------------------------+

Unterschiede in diesem Code:

Wir erstellen zwei weitere Arrays für maArray vom Typ double und pArray des Typs MqlRates,

   double maArray[];
   MqlRates pArray[];

Ausrichten der Daten in maArray mit Hilfe der Funktion „ArraySetAsSeries“:

ArraySetAsSeries(maArray,true);

Erstellen einer Integer-Variablen für maDef und Definieren des gleitenden Durchschnitts mit Hilfe der Funktion „iMA“, um den Indikator-Handle und seine Parameter zu erhalten:

  • symbol: zur Bestimmung des Symbolnamens. Wir verwenden mit „_Symbol“ das Symbol des aktuellen Charts.
  • period: Um den Zeitrahmen zu bestimmen, verwenden wir (_PERIOD) für den aktuellen Zeitrahmen. Sie können auch (PERIOD_CURRENT) für den gleichen Zweck verwenden.
  • ma_period: Zur Bestimmung der Periodenlänge des Durchschnitts wird (10) verwendet.
  • ma_shift: Zur Bestimmung der horizontalen Verschiebung, falls erforderlich. Wir stellen 0 ein, da wir den MA nicht verschieben müssen.
  • ma_method: Um den Typ des gleitenden Durchschnitts zu bestimmen, wählen wir SMA (Simple Moving Average).
  • applied_price: Um die Art des in der Berechnung verwendeten Preises zu bestimmen, wird der Schlusskurs verwendet.
int maDef=iMA(_Symbol,_Period,10,0,MODE_SMA,PRICE_CLOSE);

Abrufen historischer Daten von MqlRates mit der Funktion „CopyRates“:

  • symbol_name: Um den Symbolnamen zu bestimmen, verwenden wir (_Symbol), das für das aktuelle Symbol angewendet wird.
  • timeframe: Zur Bestimmung des Zeitrahmens des Charts wird „_Period“ verwendet, der für den aktuellen Zeitrahmen gilt.
  • start_pos: Um den Startpunkt oder die Position zu bestimmen, verwenden wir 0, um von der aktuellen Position auszugehen.
  • count: Um die Anzahl der Kopien zu bestimmen, wird (10) verwendet.
  • rates_array[]: Wir verwenden pArray als Zielarray für die Daten.
int data=CopyRates(_Symbol,_Period,0,10,pArray);

Definieren von Daten und Speichern von Ergebnissen mit Hilfe der Funktion „CopyBuffer“ für BWMFIArray, volArray und maArray.

   int data=CopyRates(_Symbol,_Period,0,10,pArray);
   CopyBuffer(BWMFIDef,0,0,3,BWMFIArray);
   CopyBuffer(volDef,0,0,3,volArray);
   CopyBuffer(maDef,0,0,3,maArray);

Abrufen der Werte des aktuellen BW MFI, des Volumens, des einfachen gleitenden Durchschnitts und des Schlusskurses zusätzlich zu den vorherigen Werten des BW MFI und des Volumens.

   double BWMFIVal=NormalizeDouble(BWMFIArray[0],5);
   double BWMFIVal1=NormalizeDouble(BWMFIArray[1],5);
   double volVal=NormalizeDouble(volArray[0],5);
   double volVal1=NormalizeDouble(volArray[1],5);
   double maVal=NormalizeDouble(maArray[0],5);
   double closingPrice=pArray[0].close;

Erstellen von boolschen Variablen für die Zustände green, fade, fake und squat (Grün, Ende, Falsch und Stillstand):

   bool greenState = BWMFIVal>BWMFIVal1&&volVal>volVal1;
   bool fadeState = BWMFIVal<BWMFIVal1&&volVal<volVal1;
   bool fakeState = BWMFIVal>BWMFIVal1&&volVal<volVal1;
   bool squatState = BWMFIVal<BWMFIVal1&&volVal>volVal1;

Bedingungen für diese Strategie:

Im Falle eines Kaufsignals:

   if(closingPrice>maVal&&greenState)
     {
      Comment("Buy Signal");
     }

Im Falle eines Verkaufssignals:

   else
      if(closingPrice<maVal&&greenState)
        {
         Comment("Sell signal");
        }

andernfalls

      else
         Comment("");

Nach dem Kompilieren und Ausführen dieses Codes sehen wir, dass er auf dem Chart läuft:

 BW MFI mit gestartetem MA

Im Falle eines Kaufsignals:

BW MFI mit MA - Kaufsignal

Wie wir in der oberen linken Ecke sehen können, haben wir ein Kaufsignal, das als Kommentar im Chart erscheint.

Im Falle eines Verkaufssignals:

BW MFI mit MA - Verkaufssignal

Wie wir in der oberen linken Ecke sehen können, haben wir ein Verkaufssignal, das als Kommentar auf dem Chart erschienen ist. Durch die vorangegangenen Ausführungen in diesem Thema haben wir gelernt, wie man verschiedene Handelssysteme auf der Grundlage der genannten Strategien erstellt.

Schlussfolgerung

Am Ende dieses Artikels wird davon ausgegangen, dass Sie nun das Hauptkonzept des von Bill Williams entwickelten technischen Indikators Market Facilitation Index verstehen. Jetzt sollten Sie wissen, wie wir ihn manuell berechnen und in das Chart der Handelsplattform MetaTrader 5 einfügen können, und wie man seine Werte interpretiert. Wir haben auch gelernt, wie man ihn verwendet. Zu diesem Zweck haben wir uns einige einfache Strategien überlegt, die auf dem Hauptkonzept des Programms basieren:

  • BW MFI - Movement Status Strategie: Sie kann verwendet werden, um die Zustände des Marktes basierend auf den Balken des Indikators als Signal auf dem Chart zu erhalten (grün, fade, fake und squat states).
  • BW MFI Signal-Strategie: Sie kann verwendet werden, um Signale auf dem Chart mit der passenden Entscheidung auf der Grundlage des BW MFI-Indikators zu erhalten (Finden eines guten Einstiegs, Finden eines guten Ausstiegs, Wahrscheinlichkeit eines falschen Ausbruchs, und der Markt steht still).
  • BW MFI mit MA-Strategie: Sie kann verwendet werden, um Kauf- und Verkaufssignale zu erhalten, die auf dem BW MFI und dem einfachen gleitenden Durchschnittsindikator basieren.

Ich empfehle jedem, zusätzliche technische Instrumente zu verwenden, um bessere Ergebnisse zu erzielen und den Markt in seiner Gesamtheit zu betrachten. Außerdem müssen Sie sie testen, bevor Sie sie in Ihrem realen Handel verwenden, um sicherzustellen, dass sie für Sie nützlich sind, weil das Hauptkonzept in diesem Artikel ist es, Informationen für pädagogische Zwecke nur zu teilen. Danach haben wir Schritt-für-Schritt-Blaupausen für jede Strategie erstellt, damit wir unsere Handelssysteme leicht für den MetaTrader 5 erstellen können. Wir haben sie in der Sprache MQL5 gelernt und erstellt.

Ich hoffe, dass Sie diesen Artikel nützlich finden und weitere Einblicke in sein Thema oder ein verwandtes Thema erhalten, um Ihr Trading zu verbessern. Ich hoffe auch, dass Sie versucht haben, das in diesem Artikel Gelernte anzuwenden, indem Sie selbst Codes geschrieben haben — wenn Sie Ihre MQL5-Programmierkenntnisse verbessern wollen, ist dies ein sehr wichtiger Schritt in jedem Lernprozess. Wenn Sie weitere ähnliche Artikel über die Erstellung eines Handelssystems auf der Grundlage der beliebtesten technischen Indikatoren lesen möchten, können Sie meine anderen Artikel in dieser Serie lesen, und ich hoffe, Sie finden sie auch nützlich.

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/12172

Experimente mit Neuronalen Netzen (Teil 4): Schablonen (Templates) Experimente mit Neuronalen Netzen (Teil 4): Schablonen (Templates)
In diesem Artikel werde ich mit Hilfe von Experimenten und unkonventionellen Ansätzen ein profitables Handelssystem entwickeln und prüfen, ob Neuronale Netze für Händler eine Hilfe sein können. Der MetaTrader 5 als ein autarkes Tool für den Einsatz Neuronaler Netze im Handel. Einfache Erklärung.
Kategorientheorie in MQL5 (Teil 3) Kategorientheorie in MQL5 (Teil 3)
Die Kategorientheorie ist ein vielfältiger und expandierender Zweig der Mathematik, der in der MQL-Gemeinschaft noch relativ unentdeckt ist. In dieser Artikelserie sollen einige der Konzepte vorgestellt und untersucht werden, mit dem übergeordneten Ziel, eine offene Bibliothek einzurichten, die Einblicke gewährt und hoffentlich die Nutzung dieses bemerkenswerten Bereichs für die Strategieentwicklung von Händlern fördert.
Neuronale Netze leicht gemacht (Teil 36): Relationales Verstärkungslernen Neuronale Netze leicht gemacht (Teil 36): Relationales Verstärkungslernen
In den Verstärkungslernmodellen, die wir im vorherigen Artikel besprochen haben, haben wir verschiedene Varianten von Faltungsnetzwerken verwendet, die in der Lage sind, verschiedene Objekte in den Originaldaten zu identifizieren. Der Hauptvorteil von Faltungsnetzen ist die Fähigkeit, Objekte unabhängig von ihrer Position zu erkennen. Gleichzeitig sind Faltungsnetzwerke nicht immer leistungsfähig, wenn es zu verschiedenen Verformungen von Objekten und Rauschen kommt. Dies sind die Probleme, die das relationale Modell lösen kann.
Datenwissenschaft und maschinelles Lernen (Teil 11): Naïve Bayes, Wahrscheinlichkeitsrechnung im Handel Datenwissenschaft und maschinelles Lernen (Teil 11): Naïve Bayes, Wahrscheinlichkeitsrechnung im Handel
Der Handel mit Wahrscheinlichkeiten ist wie ein Drahtseilakt - er erfordert Präzision, Ausgewogenheit und ein ausgeprägtes Risikobewusstsein. In der Welt des Handels ist die Wahrscheinlichkeit alles. Das ist der Unterschied zwischen Erfolg und Misserfolg, Gewinn und Verlust. Indem sie sich die Macht der Wahrscheinlichkeit zunutze machen, können Händler fundierte Entscheidungen treffen, Risiken effektiv verwalten und ihre finanziellen Ziele erreichen. Ob Sie nun ein erfahrener Anleger oder ein Anfänger sind, das Verständnis der Wahrscheinlichkeit ist der Schlüssel zur Entfaltung Ihres Handelspotenzials. In diesem Artikel werden wir die aufregende Welt des Handels mit Wahrscheinlichkeiten erkunden und Ihnen zeigen, wie Sie Ihr Handelsspiel auf die nächste Stufe heben können.