English Русский 中文 Español 日本語 Português 한국어 Français Italiano Türkçe
preview
Lernen Sie, wie man ein Handelssystem mit dem OBV entwickelt

Lernen Sie, wie man ein Handelssystem mit dem OBV entwickelt

MetaTrader 5Handel | 14 Juni 2022, 11:09
412 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Einführung

Dieser Artikel setzt unsere Serie darüber fort, wie man einfache Handelssysteme basierend auf den beliebtesten technischen Indikatoren entwirft, um uns beim Erlernen der MQL5-Codierung zu helfen. In diesem neuen Artikel werden wir uns den neuen technischen Indikator namens Money Flow Index (MFI) ansehen. Wir werden diesen Indikator im Detail lernen und herausfinden, wie man ein einfaches Handelssystem entwickelt, das auf dem dahinter stehenden Hauptkonzept basiert. Wir werden diesen Indikator durch die folgenden Themen behandeln:

  1. MFI-Definition
  2. MFI-Strategie
  3. AD-Strategie Blaupause
  4. AD-Handelssystem
  5. Schlussfolgerung

Wenn Sie andere Artikel aus der Serie lesen, werden Sie feststellen, dass sie die gleiche Anordnung von Themen mit neuen Informationen über den Indikator und einige neue Codes gemäß den erwähnten neuen Strategien haben, um zu versuchen, neue Konzepte über den Handel und die MQL5-Codierung zu lernen. Wir werden lernen, was der MFI-Indikator ist, was er misst und wie wir ihn manuell berechnen können, um das Hauptkonzept dahinter zu verstehen. Dann sehen wir ein Beispiel für die Berechnung des MFI-Indikators. Das sind natürlich nur die Grundlagen. Wir müssen ein wichtigeres Thema so verstehen, dass wir es als eine einfache Strategien verwenden, indem wir das grundlegende Konzept dahinter berücksichtigen. Danach werden wir für jede erwähnte Strategie einen Schritt-für-Schritt-Entwurf entwerfen, der uns dabei hilft, ein Handelssystem für sie zu entwickeln. Das interessanteste Thema ist herauszufinden, wie wir mithilfe von MQL5 ein Handelssystem für diese Strategien erstellen können, um sie auf der Handelsplattform MetaTrader 5 zu verwenden.

Um Ihr eigenes Handelssystem basierend auf Ihrer erfolgreichen Handelsstrategie erstellen zu können, rate ich Ihnen, die gesamte Codierung selbst durchzuführen. Geben Sie sich nicht mit dem Lesen zufrieden, sondern wenden Sie das Gelesene an und codieren Sie jeden einzelnen Programmcode selbst. Es ist besser, nach Funktionen und Programmierkonzepten zu suchen, um mehr darüber zu erfahren, da dies Ihnen hilft, mehr und mehr zu erfahren. Vergessen Sie nicht, dass neben dem Üben eine der wichtigsten Fähigkeiten eines jeden erfolgreichen Programmierers darin besteht, effektiv suchen zu können, da diese beiden Dinge in jedem Lern- oder Entwicklungsprozess sehr wichtig sind.

Außerdem müssen Sie jede Strategie testen, bevor Sie sie verwenden, insbesondere wenn ihr Hauptzweck pädagogisch ist. Es gibt keine Strategie, die für alle Menschen geeignet ist. Was für mich nützlich sein kann, ist für Sie möglicherweise nicht nützlich.

In diesem Artikel werden wir die MetaQuotes Language (MQL5) verwenden, um Codes von Strategien in MetaEditor zu schreiben, der in MetaTrader 5 integriert ist. Wenn Sie wissen möchten, wie man es herunterlädt und MetaEditor verwendet, lesen Sie: Schreiben von MQL5-Code mit dem MetaEditor aus dem vorherigen Artikel.

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. 

Lassen Sie uns jetzt direkt unsere Themen durchgehen, um ein neues Tool zu lernen, um die Anzahl der Tools in unseren Handelskoffern zu erhöhen.


MFI-Definition

In diesem Abschnitt beschreiben wir den Money Flow Index (MFI)-Indikator im Detail und werfen einen Blick auf das Konzept hinter diesem Indikator, der einer der volumenbasierten Indikatoren ist. Wir werden lernen, was es ist und was es misst, dann werden wir lernen, wie wir es manuell berechnen können, indem wir ein Beispiel analysieren.

Wie bereits im vorherigen Artikel erwähnt, ist das Volumen ein entscheidender Faktor beim Handel. Eine gründliche Volumenanalyse gibt uns einen Vorteil beim Handel, da der Markt viele Aspekte hat, die ihn beeinflussen können. Je mehr Aspekte Sie verstehen, desto bessere Entscheidungen können Sie treffen, da das erworbene Wissen die Beweiskraft erhöht, die Sie in eine bestimmte Richtung führt, um eine bestimmte Entscheidung zu treffen.

Wenn wir einen Vermögenswert haben, der viele Käufe und Verkäufe erfährt, dann ist dieser Vermögenswert von größerer Bedeutung im Vergleich zu dem Vermögenswert mit einer geringeren Anzahl von Transaktionen. Auf den Finanzmärkten ist das Volumen eine Anzahl von Aktien oder Kontrakten, die während eines bestimmten Zeitraums gehandelt werden. Es ist gut, ein hohes Volumen zu sehen, wenn der Preis während eines Aufwärtstrends den Widerstand oder während eines Abwärtstrends die Unterstützung durchbricht, da dies eines der wichtigen Anzeichen für die Stärke der Bewegung ist. Es ist besser, wenn sich das Volumen mit dem Trend bewegt, während einer Aufwärtsbewegung zu steigen und während einer Korrektur im Aufwärtstrend zu fallen, sowie während einer Abwärtsbewegung zu fallen und während einer Korrektur zu steigen. Wenn wir sehen, dass sich das Volumen mit dem Trend bewegt, ist dies eines der wichtigen Zeichen, das den aktuellen Trend bestätigt.

Der Indikator Money Flow Index (MFI) wurde von Gene Quong und Avrum Soudack entwickelt. Es ist ein volumenbasierter Indikator, aber er verwendet den Preis und das Volumen in seiner Berechnung, um den Kauf- und Verkaufsdruck zu messen. Sie bewegt sich zwischen null und 100. Ein Anstieg des MFI-Indikators bedeutet Kaufdruck und umgekehrt, ein Rückgang des MFI bedeutet Verkaufsdruck. Es kann die Trendrichtung bestätigen oder vor Umkehrungen warnen. Wenn Sie mehr über den Trend erfahren möchten, können Sie das Thema aus einem der früheren Artikel lesen.

Die manuelle MFI-Berechnung besteht aus mehreren Schritten:

  • Berechnung des typischen Preises (TP) = (Hoch+Tief+Schlusskurs)/3
  • Berechnung des Rohgeldflusses = Volumen * TP
  • Bestimmung der Bewegung von TP: nach oben oder unten. Wenn aktueller TP > vorheriger TP = aufwärts, wenn aktueller TP < vorheriger TP = abwärts.
  • Berechnung von 1+MF = Roh-MF von Aufwärts-Perioden
  • Berechnung von 1-MF = Roh-MF von Abwärts-Perioden
  • Berechnung 14 +MF = Summe von 14 (1+MF)
  • Berechnung 14 -MF = Summe von 14 (1-MF)
  • Berechnung des 14-MF-Verhältnisses = 14+MF / 14-MF
  • Berechnung von MFI = 100-100/(1+MF-Verhältnis)

Sehen wir uns ein Beispiel an, um diese Berechnung anzuwenden, wenn wir die folgenden Daten für ein Instrument haben:

Tag Hoch Tief Schlusskurs Volumen
1 55 53 54 12000
2 56 54 55 10000
3 61 59 60 15000
4 67 64 65 20000
5 63 58 60 10000
6 58 52 55 5000
7 64 58 60 7000
8 52 47 50 7500
9 52 48 48 8000
10 50 48 49 5000
11 49 47 48 6000
12 48 47 47 7500
13 50 46 48 9000
14 52 45 47 10000
15 55 46 49 7000
16 53 45 47 7500
17 51 43 46 6000
18 50 42 44 5000
19 50 43 45 15000

Wenn wir den MFI-Indikator aus den vorherigen Daten berechnen müssen, gehen wir die folgenden Schritte durch:

Berechnen wir den typischen Preis (TP) = (Hoch+Tief+Schlusskurs)/3

Dann erhalten wir das Folgende:

 MFI calc2

Berechnen wir jetzt den Rohgeldfluss = Volumen * TP

MFI calc3

Bestimmen wir nun die Bewegung von TP: nach oben oder unten

MFI calc4

Berechnung von 1+MF = Roh-MF von Aufwärts-Perioden

Berechnung von 1-MF = Roh-MF von Abwärts-Perioden

 MFI calc5

Berechnung von 14+MF = Summe von 14 (1+MF)

Berechnung von 14-MF = Summe von 14 (1-MF)

MFI calc6

Berechnung von 14-MF-Verhältnis = 14+MF/14-MF

 MFI calc7

Berechnung von MFI = 100-100/(1+MF-Verhältnis)

MFI calc8

In den vorherigen Schritten haben wir den MFI-Indikator manuell berechnet, aber heutzutage müssen wir das nicht mehr tun. Nachdem wir nun das Konzept hinter dem Indikator kennengelernt haben, können wir den eingebauten Indikator in MetaTrader 5 verwenden. Alles, was Sie tun müssen, ist es aus den verfügbaren Indikatoren auszuwählen:

Beim Öffnen von MetaTrader 5 --> klicken Sie auf die Registerkarte Einfügen --> Indikatoren --> Volumen --> Money Flow Index

MFI-Einsatz

Die Parameter des Indikators erscheinen nach Auswahl des Money Flow Index:

MFI-Param-Fenster

1. Gewünschter Indikatorzeitraum.

2. Volumentyp (Tick oder Real).

3. MFI Linienfarbe

4. Linientyp.

5. MFI-Linienstärke.

Nachdem Sie auf OK geklickt haben, wird der MFI-Indikator auf dem Chart gestartet:

 MFI gestartet


MFI-Strategie

In diesem Abschnitt erfahren wir, wie wir den MFI-Indikator verwenden können, nachdem wir herausgefunden haben, was er ist, was er misst und das Hauptkonzept dahinter. Jetzt werden wir einige einfache Strategien lernen, die verwendet werden können.

  • Strategie eins: MFI - OB und OS:

Gemäß dieser Strategie werden wir die überkauften (overbought, OB) und überverkauften (oversold, OS) Bereiche identifizieren. Wenn sich die MFI Stufe 20 nähert, ist dies ein OS, und wenn sie sich der Stufe 80 nähert, ist dies ein OB. Überverkaufte Bereiche erhöhen das Potenzial für einen Anstieg und umgekehrt erhöhen die überverkauften Bereiche das Potenzial für einen Rückgang.

Wir können also sagen: 

MFI <= 20 --> OS

MFI >= 80 --> OB

  • Strategie zwei: MFI - Aufwärtstrend - Kaufen:

Gemäß dieser Strategie werden wir warten, bis der MFI unter oder gleich 50 liegt, um zu sehen, dass das Kaufsignal ausgelöst wird. Die Annäherung an Level 70 ist ein Take-Profit-Signal. Der Grundgedanke hinter dieser Strategie ist, dass sich der MFI während eines Aufwärtstrends meistens zwischen 50 und 70 bewegt.

Also,

MFI <= 50 --> Kaufsignal

MFI >= 70 --> Take-Profit-Signal

  • Strategie drei: MFI - Abwärtstrend - Verkaufen:

Diese Strategie ist das Gegenteil der vorherigen (MFI – Aufwärtstrend – Kaufen), da wir MFI über oder gleich dem Niveau 50 sehen müssen, um zu sagen, dass das Verkaufssignal ausgelöst wird und die Gewinnmitnahme signalisiert wird, wenn der MFI unter oder fällt gleich Stufe 30. Der Grund dafür ist, dass sich der MFI während eines Abwärtstrends die meiste Zeit zwischen 50 und 30 bewegt.

Also,

MFI >=50 --> Verkaufssignal

CCI > 30 = Take-Profit

  • Strategie vier: MFI - Aufwärtstrend oder Divergenz:

Gemäß dieser Strategie benötigen wir den Indikator, um zu bestätigen, ob die aktuelle Bewegung stark ist oder nicht. Wir können dies erkennen, indem wir die aktuellen und vorherigen MFI-Werte und die aktuellen und vorherigen Hochs vergleichen und sehen, ob es eine Bestätigung dafür gibt, dass die aktuelle Bewegung stark ist, oder ob es eine Divergenz gibt. Wenn also während eines Aufwärtstrends der aktuelle MFI größer als der vorherige MFI und das aktuelle Hoch größer als das vorherige Hoch ist, bedeutet dies, dass die aktuelle Bewegung stark ist, aber wenn der aktuelle MFI niedriger als der vorherige und das aktuelle Hoch ist größer ist als das vorherige Hoch, bedeutet dies, dass es eine rückläufige Divergenz gibt, da der Indikator die Preisbewegung nicht bestätigt. Sie können die Länge der Werte anpassen, um sie zu vergleichen, was zum Verständnis des Konzepts beiträgt.

Also,

Aktueller MFI > vorheriger MFI und aktuelles Hoch > vorheriges Hoch --> starke Aufwärtsbewegung

Aktueller MFI < vorheriger MFI und aktuelles Hoch > vorheriges Hoch --> bärische Divergenz

  • Strategie fünf: MFI - Abwärtstrend oder Divergenz:

Diese Strategie ist das Gegenteil der vorherigen (MFI – Aufwärtstrend oder Divergenz), da wir den Indikator auch benötigen, um zu bestätigen, ob die aktuelle Bewegung stark ist oder ob es eine Divergenz in ihrer einfachen Form gibt, indem nur zwei Werte verglichen werden. Wenn also der aktuelle MFI kleiner als der vorherige und das aktuelle Tief kleiner als der vorherige ist, bedeutet dies, dass die aktuelle Abwärtsbewegung stark ist, aber wenn der aktuelle MFI größer als der vorherige und das aktuelle Tief kleiner als ist die vorherige, bedeutet dies, dass es eine bullische Divergenz gibt.

Einfach,

Aktueller MFI < vorheriger MFI und aktuelles Tief < vorheriges Tief --> starke Abwärtsbewegung

Aktueller MFI > vorheriger MFI und aktuelles Tief < vorheriges Tief --> bullische Divergenz


MFI Strategie Blaupause

In diesem Abschnitt werden wir einen Entwurf für jede Strategie entwerfen, um uns bei der Erstellung eines Handelssystems für jede von ihnen zu helfen, aber zuerst werden wir einen Entwurf für ein einfaches Handelssystem entwerfen, das die Grundlage aller erwähnten Handelsstrategien sein soll. Dieses einfache System zeigt den aktuellen MFI-Wert nur als Kommentar zum Diagramm an. Wir brauchen also den Computer, um den MFI-Wert bei jedem Tick zu überprüfen und diesen Wert dann als Kommentar auf dem Diagramm anzuzeigen. Die Blaupause dafür ist unten dargestellt:

Simple MFI Blaupause

In diesem Teil entwerfen wir einen Blaupause für jede Strategie.

  • Strategie eins: MFI - OB und OS:

Basierend auf dieser Strategie müssen wir dem Handelssystem Anweisungen geben, den MFI-Wert bei jedem Tick zu überprüfen und diesen Wert mit bestimmten Niveaus (20 und 80) zu vergleichen und das Ergebnis entsprechend diesem Vergleich als Kommentar auf dem Diagramm zu entscheiden oder zurückzugeben . Wenn der MFI kleiner oder gleich 20 ist, werden der überverkaufte und der aktuelle MFI-Wert als Kommentare zum Diagramm und jeder Kommentar in einer separaten Zeile angezeigt. Wenn der MFI größer oder gleich 80 ist, gibt er den überkauften und den aktuellen MFI als Kommentare auf dem Chart und jeweils in einer separaten Zeile aus. Wenn der MFI über 20 und unter 80 liegt, wird nur der aktuelle MFI-Wert zurückgegeben. Die Blaupause dazu sieht wie folgt aus:

MFI -OB-OS Blaupause

  • Strategie zwei: MFI - Aufwärtstrend - Kaufen:

Gemäß dieser Strategie muss das Handelssystem bei jedem Tick auch den MFI-Wert, 50 und 70 überprüfen, um zu entscheiden, ob der MFI kleiner oder gleich 50 ist, also muss es das Kaufsignal zurückgeben. Wenn der MFI größer oder gleich 70 ist, muss er ein Take-Profit-Signal zurückgeben, und das Folgende ist die Blaupause dafür:

 MFI - Aufwärtstrend - Blaupause kaufen

  • Strategie drei: MFI - Abwärtstrend - Verkaufen:

Gemäß dieser Strategie benötigen wir das Handelsprogramm, um uns mit einem generierten Signal zu warnen, das auf einem Vergleich zwischen MFI-, 50- und 30-Werten basiert. Wenn der MFI größer oder gleich 50 ist, muss er ein Verkaufssignal zurückgeben, und wenn der MFI kleiner oder gleich 30 ist, muss er ein Take-Profit-Signal zurückgeben. Das Folgende ist die Blaupause dafür:

MFI - Abwärtstrend - Blaupause verkaufen

  • Strategie vier: MFI - Aufwärtstrend oder Divergenz:

Gemäß dieser Strategie müssen wir ein Handelssystem entwerfen, das in der Lage ist, vier Werte (aktueller MFI, vorheriger MFI, aktuelles Hoch und vorheriges Hoch) bei jedem Tick zu überprüfen und zu entscheiden, welches Signal generiert wird.

Aktueller MFI > vorheriger MFI und aktuelles Hoch > vorheriges Hoch --> starkes Aufwärtssignal

Aktueller MFI < vorheriger MFI und aktuelles Hoch > vorheriges Hoch --> bärische Divergenz

Das Folgende ist die Blaupause dafür:

 MFI - Blaupause für Aufwärtstrend oder Divergenz 

  • Strategie fünf: MFI - Abwärtstrend oder Divergenz:

Diese Strategie ist das Gegenteil der vorherigen. Demnach müssen wir ein Handelssystem entwerfen, das in der Lage ist, vier Werte (aktueller MFI, vorheriger MFI, aktuelles Hoch und vorheriges Hoch) bei jedem Tick zu überprüfen und zu entscheiden, welches Signal generiert wird.

Aktueller MFI < vorheriger MFI und aktuelles Tief < vorheriges Tief --> starkes Abwärtssignal

Aktueller MFI > vorheriger MFI und aktuelles Tief < vorheriges Tief --> bullische Divergenz

Das Folgende ist die Blaupause dafür:

MFI - Abwärtstrend oder Divergenz-Blaupause


MFI-Handelssystem

In diesem interessanten Abschnitt werden wir ein Handelssystem für jede erwähnte Strategie entwerfen, indem wir unsere Codes in MQL5 schreiben, um sie in MetaTrader 5 auszuführen. Wir beginnen mit dem einfachen MFI, der einen Kommentar zum Diagramm mit dem aktuellen MFI-Wert generiert.

  • Erstellen eines Arrays für MFI mit dem Typ „double“ für reelle Zahlen.
double MFIArray[];
  • Zugriffsrichtung des MFI-Arrays mit den aktuellen Daten mit der Funktion ArraySetAsSeries, um ein boolesches Ergebnis (true oder false) zurückzugeben, und seinen Parametern (array[] und flag).
ArraySetAsSeries(MFIArray,true);
  • Definieren des MFI mithilfe der iMFI-Funktion, nachdem eine ganzzahlige Variable für MFIDef erstellt wurde. Die iMFI-Funktion gibt das Handle des MFI-Indikators zurück und seine Parameter sind (Symbol, Zeitrahmen, Glättungsanzahl und angewandtes Volumen).
int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);
  • Füllen des Arrays mit der CopyBuffer-Funktion, um Daten vom MFI-Indikator zu erhalten.
CopyBuffer(MFIDef,0,0,3,MFIArray);
  • Berechnung des aktuellen MFI-Werts unter Verwendung von NormalizeDouble, um einen Double-Typ-Wert zurückzugeben, nachdem ein Double-Variablen-MFI-Wert erstellt wurde.
double MFIValue=NormalizeDouble(MFIArray[0],5);
  • Erstellen eines Kommentars zum Chart mit der Funktion "Comment".
Comment("MFI Value is: ",MFIValue);

Der vollständige Code sieht also wie folgt aus:

//+------------------------------------------------------------------+
//|                                                   Simple MFI.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
//Create an array for MFI
   double MFIArray[];

//sorting the array from the current data
   ArraySetAsSeries(MFIArray,true);

//defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);

//filling the array
   CopyBuffer(MFIDef,0,0,3,MFIArray);

//calculating current MFI value
   double MFIValue=NormalizeDouble(MFIArray[0],5);

//creating a comment with MFI value
   Comment("MFI Value is: ",MFIValue);
  }
//+------------------------------------------------------------------+

Nach dem Kompilieren dieses Codes finden wir den Expert Advisor im Navigationsfenster:

MFI nav1

Durch Doppelklick auf die Expertendatei erscheint folgendes Fenster:

Simple MFI-Fenster

Nachdem Sie auf OK geklickt haben, wird der EA auf dem Chart gestartet:

Simple MFI angehängt

Das Folgende ist ein Beispiel für generierte Signale aus Tests,

Simple MFI - Signal

Wenn wir sicherstellen wollen, dass der generierte MFI-Wert mit dem MFI-Wert des eingebauten Indikators übereinstimmt:

Simple Einfacher MFI – gleiches Signalalt

  • Strategie eins: MFI - OB und OS:

Das Folgende ist der vollständige Code zum Erstellen eines Handelssystems für diese Strategie:

//+------------------------------------------------------------------+
//|                                                  MFI - OB&OS.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //Create an array for MFI
   double MFIArray[];
   
   //sorting the array from the current data
   ArraySetAsSeries(MFIArray,true);
   
   //defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);
   
   //filling the array
   CopyBuffer(MFIDef,0,0,3,MFIArray);
   
   //calculating current MFI value
   double MFIValue=NormalizeDouble(MFIArray[0],5);
   
   
   //Conditions of OS&OS
   //OS
   if(MFIValue<=20)
   {
   Comment("Oversold","\n","MFI value is : ",MFIValue);
   }
   
   //OB
   if(MFIValue>=80)
   {
   Comment("Overbought","\n","MFI value is : ",MFIValue);
   }
   
   //no signal
   if(MFIValue>20 && MFIValue<80 )
   {
   Comment("MFI value is : ",MFIValue);
   }   
  }
//+------------------------------------------------------------------+

Der Unterschied bei diesem Code ist:

Bedingungen für überverkauft und überkauft:
   //Conditions of OS&OS
   //OS
   if(MFIValue<=20)
   {
   Comment("Oversold","\n","MFI value is : ",MFIValue);
   }
   
   //OB
   if(MFIValue>=80)
   {
   Comment("Overbought","\n","MFI value is : ",MFIValue);
   }
   
   //no signal
   if(MFIValue>20 && MFIValue<80 )
   {
   Comment("MFI value is : ",MFIValue);
   } 

Nachdem wir diesen Code kompiliert haben, können wir den Experten im Navigationsfenster finden:

MFI Navi 2

Ziehen Sie es per Drag & Drop auf das Chart, um sein Fenster zu öffnen:

 MFI - OB_OS-Fenster

Nachdem Sie auf OK geklickt haben, wird es an das Chart gestartet:

 MFI - OB_OS gestartet

Das Folgende ist ein Beispiel für generierte Signale gemäß diesem Handelssystem.

Überverkauft-Signal:

Simple MFI - OB_OS - OS

Überkauft-Signal:

Simple MFI - OB_OS - OB

Kein Signal:

Simple MFI - OB_OS - kein Signal

  • Strategie zwei: MFI - Aufwärtstrend - Kaufen:

Im Folgenden erfahren Sie, wie Sie den Code dieser Strategie schreiben:

//+------------------------------------------------------------------+
//|                                          MFI - Uptrend - Buy.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   //Create an array for MFI
   double MFIArray[];
   
   //sorting the array from the current data
   ArraySetAsSeries(MFIArray,true);
   
   //defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);
   
   //filling the array
   CopyBuffer(MFIDef,0,0,3,MFIArray);
   
   //calculating current MFI value
   double MFIValue=NormalizeDouble(MFIArray[0],5);
   
   
   //Buy signal
   if(MFIValue<=50)
   {
   Comment("Buy signal");
   }
   
   //TP
   if(MFIValue>=70)
   {
   Comment("Take profit");
   }
  }
//+------------------------------------------------------------------+

Der Unterschied zu diesem Code:

Bedingungen der Signale:

Kaufsignal:

//Buy signal
   if(MFIValue<=50)
   {
   Comment("Buy signal");
   }

Take-Profit-Signal:

//TP
   if(MFIValue>=70)
     {
      Comment("Take profit");
     }

Nach dem Kompilieren erscheint der EA im Navigator-Fenster:

MFI nav3

Das EA-Fenster sieht dann wie folgt aus:

MFI - Aufwärtstrend - Kauffenster

Nachdem Sie auf OK geklickt haben, wird es an das Chart gestartet:

 MFI – Aufwärtstrend – Kaufen gestartet

Das Folgende ist ein Beispiel für generierte Signale aus Tests,

Kaufsignal:

 MFI - Aufwärtstrend - Kaufsignal

Take-Profit-Signal:

MFI - Aufwärtstrend - Take Profit Signal

  • Strategie drei: MFI - Abwärtstrend - Verkaufen:

Das Folgende ist der vollständige Code zum Erstellen eines Handelssystems für diese Strategie:

//+------------------------------------------------------------------+
//|                                      MFI - Downtrend - Short.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
//Create an array for MFI
   double MFIArray[];

//sorting the array from the current data
   ArraySetAsSeries(MFIArray,true);

//defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);

//filling the array
   CopyBuffer(MFIDef,0,0,3,MFIArray);

//calculating current MFI value
   double MFIValue=NormalizeDouble(MFIArray[0],5);


//Sell signal
   if(MFIValue>=50)
     {
      Comment("Sell signal");
     }

//TP
   if(MFIValue<=30)
     {
      Comment("Take profit");
     }
  }
//+------------------------------------------------------------------+

Der Unterschied bei diesem Code ist:

Bedingungen der Signale:

Verkaufssignal:

//Sell signal
   if(MFIValue>=50)
     {
      Comment("Sell signal");
     }

Take-Profit-Signal:

//TP
   if(MFIValue<=30)
     {
      Comment("Take profit");
     }

Nach dem Kompilieren können wir es per Doppelklick aus dem Navigator ausführen:


Nach dem Doppelklicken sieht das Fenster wie folgt aus:

 MFI - Abwärtstrend - Verkaufen Fenster

Nachdem Sie auf OK geklickt haben, wird es an das Chart gestartet:

MFI - Abwärtstrend - Verkaufen gestartet

Das Folgende ist ein Beispiel für generierte Signale basierend auf der MFI - Abwärtstrend - Verkaufsstrategie aus dem Testen:

Verkaufssignal:

MFI - Abwärtstrend - Verkaufssignal

Take-Profit-Signal:

MFI - Abwärtstrend - Take-Profit-Signal

  • Strategie vier: MFI - Aufwärtstrend oder Divergenz:

Das Folgende ist der vollständige Code der MFI - Aufwärtstrend- oder Divergenzstrategie vom Testen:

//+------------------------------------------------------------------+
//|                                  MFI - Uptrend or divergence.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
//Create arrays for MFI and price
   double MFIArray[];
   MqlRates PriceArray[];

//sorting arrays from the current data
   ArraySetAsSeries(MFIArray,true);
   int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);

//defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);

//filling the MFI array
   CopyBuffer(MFIDef,0,0,3,MFIArray);

//calculating current and previous MFI values
   double MFICurrentValue=NormalizeDouble(MFIArray[0],5);
   double MFIPrevValue=NormalizeDouble(MFIArray[1],5);

//calculating current and previous highs
   double CurrentHighValue=NormalizeDouble(PriceArray[2].high,5);
   double PrevHighValue=NormalizeDouble(PriceArray[1].high,5);

//conditions of strong move or divergence
//strong up
   if(MFICurrentValue>MFIPrevValue&&CurrentHighValue>PrevHighValue)
     {
      Comment("Strong up move");
     }

//bearish divergence
   if(MFICurrentValue<MFIPrevValue&&CurrentHighValue>PrevHighValue)
     {
      Comment("Bearish divergence");
     }
  }
//+------------------------------------------------------------------+

Die Unterschiede in diesem Code sind:

Erstellen von Arrays für MFI und Preise mithilfe der MqlRates-Funktion, die Preis-, Volumen- und Spread-Informationen speichert:

   double MFIArray[];
   MqlRates PriceArray[];

Zugriffsrichtung der Arrays:

Für MFI ist die Verwendung der ArraySetAs Series-Funktion die gleiche wie zuvor erwähnt.

Verwendung für Preise die CopyRates-Funktion, um historische Daten von MqlRates und seinen Parametern zu erhalten (Symbolname, Zeitrahmen, Startzeit, Stoppzeit und Kursarray).

   ArraySetAsSeries(MFIArray,true);
   int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);

Berechnung aktueller und vorherigen MFI-Werte:

   double MFICurrentValue=NormalizeDouble(MFIArray[0],5);
   double MFIPrevValue=NormalizeDouble(MFIArray[1],5);

Berechnung aktueller und vorherigen Höchststände:

   double CurrentHighValue=NormalizeDouble(PriceArray[2].high,5);
   double PrevHighValue=NormalizeDouble(PriceArray[1].high,5);

Bedingungen der MFI - Aufwärtstrend- oder Divergenzstrategie:

Starke AD:

   if(MFICurrentValue>MFIPrevValue&&CurrentHighValue>PrevHighValue)
     {
      Comment("Strong up move");
     }

Divergenz

   if(MFICurrentValue<MFIPrevValue&&CurrentHighValue>PrevHighValue)
     {
      Comment("Bearish divergence");
     }

Nachdem wir diesen Code kompiliert haben, finden wir ihn auch in den Expert Advisors im Navigator:

 MFI nav5

Gleiches gilt für die Ausführung. Ziehen und ablegen oder doppelklicken Sie darauf, um das Fenster zu öffnen:

 MFI - Aufwärtstrend- oder Divergenzfenster

Klicken Sie dann auf OK, um es auf dem Chart zu starten:

MFI - Aufwärtstrend oder Divergenz gestartet

Das Folgende ist ein Beispiel für generierte Signale mit dem Datenfenster, das auf dieser Strategie basiert:

Signal mit aktuellem Datenfenster:

MFI – Aufwärtstrend oder Divergenz – stark – aktuell

Starkes Aufwärtssignal mit vorherigem Datenfenster:

MFI – Aufwärtstrend oder Divergenz – stark – vorher

Divergenzsignal mit aktuellem Datenfenster:

MFI – Aufwärtstrend oder Divergenz – bärische Divergenz – aktuell

Divergenzsignal mit vorherigem Datenfenster:


  • Strategie fünf: MFI - Abwärtstrend oder Divergenz:

Das Folgende ist der vollständige Code dieser Strategie:

//+------------------------------------------------------------------+
//|                                MFI - Downtrend or divergence.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
//Create arrays for MFI and price
   double MFIArray[];
   MqlRates PriceArray[];

//sorting arrays from the current data
   ArraySetAsSeries(MFIArray,true);
   int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);

//defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);

//filling the array
   CopyBuffer(MFIDef,0,0,3,MFIArray);

//calculating current and previous MFI values
   double MFICurrentValue=NormalizeDouble(MFIArray[0],5);
   double MFIPrevValue=NormalizeDouble(MFIArray[1],5);

//calculating current and previous highs
   double CurrentLowValue=NormalizeDouble(PriceArray[2].low,5);
   double PrevLowValue=NormalizeDouble(PriceArray[1].low,5);

//conditions of strong move or divergence
//strong down
   if(MFICurrentValue<MFIPrevValue&&CurrentLowValue<PrevLowValue)
     {
      Comment("Strong down move");
     }

//bullish divergence
   if(MFICurrentValue>MFIPrevValue&&CurrentLowValue<PrevLowValue)
     {
      Comment("Bullish divergence");
     }
  }
//+------------------------------------------------------------------+

Der Unterschied bei diesem Code:

Bedingungen der generierten Signale basierend auf dieser Strategie:

Starkes Abwärtsbewegungssignal:

   if(MFICurrentValue<MFIPrevValue&&CurrentLowValue<PrevLowValue)
     {
      Comment("Strong down move");
     }

Bullische Divergenz:

   if(MFICurrentValue>MFIPrevValue&&CurrentLowValue<PrevLowValue)
     {
      Comment("Bullish divergence");
     }

Nach dem Kompilieren sieht das Navigator-Fenster wie folgt aus:

MFI nav6

Nach der Ausführung sieht sein Fenster wie folgt aus:

MFI - Abwärtstrend- oder Divergenzfenster

Nachdem Sie auf OK geklickt haben, wird es an das Chart gestartet:

MFI - Abwärtstrend oder Divergenz angebracht

Das Folgende ist ein Beispiel für generierte Signale mit dem Datenfenster, um generierte Signale basierend auf Testwerten anzuzeigen:

Starke Abwärtsbewegung mit aktuellem Datenfenster:

MFI - Abwärtstrend oder Divergenz - Stark - aktuell

Starke Abwärtsbewegung mit vorherigem Datenfenster:

MFI - Abwärtstrend oder Divergenz - Stark - vorher

Bullische Divergenz mit aktuellem Datenfenster:

MFI - Abwärtstrend oder Divergenz - Bullische Divergenz - aktuell

Bullische Divergenz mit vorherigem Datenfenster:

MFI - Abwärtstrend oder Divergenz - Bullische Divergenz - vorherige

Schlussfolgerung

Ich habe das Thema des Money Flow Index (MFI)-Indikators behandelt, indem ich neue Informationen gegeben habe, die Ihren Handel verbessern können, da wir jetzt wissen, wie hoch das Volumen ist, warum es beim Handel sehr wichtig ist, was der MFI-Indikator ist, was er misst, Zusätzlich lernen wir, wie wir es manuell berechnen und den eingebauten MFI-Indikator in MetaTrader 5 einfügen können. Nachdem wir die Grundlagen des MFI-Indikators gelernt und das grundlegende Konzept dahinter verstanden haben, haben wir einige einfache Strategien gelernt: Dies sind die Überkauft- und Überverkauft-Strategien, die die überkauften und überverkauften Bereiche für ein Instrument aufdecken können, die MFI - Aufwärtstrend-Strategie, die verwendet werden kann um Kauf- und Gewinnmitnahmesignale während des Aufwärtstrends basierend auf dem MFI-Indikator zu erkennen, die MFI-Abwärtstrendstrategie, die verwendet werden kann, um Verkaufs- und Gewinnmitnahmesignale während des Abwärtstrends basierend auf dem MFI-Indikator zu generieren, die MFI-Aufwärtstrend- oder Divergenzstrategie, die verwendet werden kann verwendet werden, um die Stärke von Aufwärtsbewegungen während des Aufwärtstrends zu bestätigen oder uns vor einer bärischen Divergenz zu warnen, und der MFI - Abwärtstrend oder -divergenz, der verwendet werden kann, um zu bestätigen, ob die aktuellen Abwärtsbewegungen stark sind, oder vor einer bullischen Divergenz warnen.

Darüber hinaus haben wir für jede Strategie einen Entwurf entwickelt, der uns dabei hilft, ein Handelssystem zur automatischen Generierung von Signalen im MetaTrader 5 zu erstellen, indem wir einen schrittweisen Entwurf entwerfen. Danach haben wir ein Handelssystem für jede Strategie mit Hilfe von MQL5 erstellt, das auf der MetaTrader 5-Handelsplattform ausgeführt werden soll, um automatisch und genau ohne menschliches Eingreifen zu arbeiten, um unseren Handel zu vereinfachen und unsere Zeit zu sparen und Dinge effizient zu erledigen.

Ich hoffe, dass Sie versucht haben, das anzuwenden und zu üben, was Sie durch diesen Artikel gelernt haben. Ich hoffe auch, dass dieser Artikel Ihnen nützliche Einblicke in das Handel gegeben hat, sei es Einblicke in Bezug auf das aktuelle Thema oder auf verwandte Themen. Wie ich bereits sagte, stellen Sie sicher, dass Sie jede Strategie testen, bevor Sie sie auf einem echten Konto verwenden, da das Hauptziel dieses Artikels darin besteht, dazu beizutragen, Anfängern Informationen zur Verfügung zu stellen, damit sie lernen, wie man einfache Handelsstrategien selbst programmiert. So stellen Sie möglicherweise fest, dass diese Strategien optimiert oder angepasst werden müssen, oder Sie stellen möglicherweise fest, dass es besser ist, sie mit einem anderen technischen Tool zu kombinieren. Dies ist ein nützlicher Ansatz, um wesentliche technische Werkzeuge zu kombinieren, um viele Perspektiven aufzuzeigen, um eine geeignete Entscheidung treffen zu können. Nachdem Sie diese Tools kombiniert haben, können Sie auch ein Handelssystem für sie erstellen, da wir alle Arten von Handelssystemen finden können, von einfachen bis zu komplizierten, und dies lässt uns genau das tun, was wir brauchen, während wir das Problem der Subjektivität überwinden, das ein Hindernis sein kann um Ihre Handelsziele zu erreichen. Programmieren ist ein erstaunliches Werkzeug, das uns hilft, das Notwendige einfach, genau und reibungslos zu erledigen. Es erspart uns neben vielen anderen guten Funktionen, jedes Mal die gleichen Aufgaben zu erledigen.

Wenn Sie diesen Artikel nützlich finden und weitere ähnliche Artikel lesen möchten, können Sie meine anderen Artikel in dieser Serie lesen, in denen Sie lernen, wie Sie ein Handelssystem auf der Grundlage der beliebtesten technischen Indikatoren entwerfen können. Ich hoffe, sie werden Ihnen helfen, Ihre Handelsergebnisse zu verbessern.

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

Lernen Sie, wie man ein Handelssystem mit dem Volumen entwickelt Lernen Sie, wie man ein Handelssystem mit dem Volumen entwickelt
Hier ist ein neuer Artikel aus unserer Serie darüber, wie man ein Handelssystem basierend auf den beliebtesten technischen Indikatoren entwirft. Der aktuelle Artikel widmet sich dem Volumes-Indikator. Volumen als Konzept ist einer der sehr wichtigen Faktoren beim Handel an den Finanzmärkten, und wir müssen darauf achten. In diesem Artikel lernen wir, wie man ein einfaches Handelssystem nach dem Volumenindikator entwirft.
Datenwissenschaft und maschinelles Lernen (Teil 04): Vorhersage des aktuellen Börsenkrachs Datenwissenschaft und maschinelles Lernen (Teil 04): Vorhersage des aktuellen Börsenkrachs
In diesem Artikel werde ich versuchen, unser logistisches Modell zu verwenden, um den Börsencrash auf der Grundlage der Fundamentaldaten der US-Wirtschaft vorherzusagen. NETFLIX und APPLE sind die Aktien, auf die wir uns konzentrieren werden, wobei wir die früheren Börsencrashs von 2019 und 2020 nutzen werden, um zu sehen, wie unser Modell in der aktuellen Krise abschneiden wird.
DoEasy. Steuerung (Teil 3): Erstellen gebundener Steuerelemente DoEasy. Steuerung (Teil 3): Erstellen gebundener Steuerelemente
In diesem Artikel werde ich untergeordnete Steuerelemente erstellen, die an das Basiselement gebunden sind. Die Entwicklung wird unter Verwendung der Basissteuerungsfunktionalität durchgeführt. Außerdem werde ich ein wenig am Schattenobjekt des grafischen Elements basteln, da es immer noch unter einigen Logikfehlern leidet, wenn es auf eines der Objekte angewendet wird, die einen Schatten haben können.
DoEasy. Steuerung (Teil 2): Arbeiten an der Klasse CPanel DoEasy. Steuerung (Teil 2): Arbeiten an der Klasse CPanel
Im aktuellen Artikel werde ich einige Fehler im Zusammenhang mit der Handhabung von grafischen Elementen beseitigen und die Entwicklung des CPanel-Steuerelements fortsetzen. Insbesondere werde ich die Methoden zur Einstellung der Parameter der Schriftart implementieren, die standardmäßig für alle Textobjekte des Panels verwendet wird.