Lernen Sie, wie Sie ein Handelssystem mit Hilfe von ADX entwickeln

Mohamed Abdelmaaboud | 9 Mai, 2022

Einführung

In diesem Artikel wird ein neues technisches Handelsinstrument vorgestellt, das eines der nützlichsten und aussagekräftigsten Instrumente ist, das uns helfen kann, besser zu handeln und die Marktbewegung zu verstehen. Da eine der nützlichsten Eigenschaften der technischen Indikatoren darin besteht, dass sie uns zeigen können, was die Preise nicht zeigen können, und dies auf der Berechnung für jeden Indikator basiert, ist einer dieser nützlichen Indikatoren der durchschnittliche Richtungsindex (ADX) Indikator. Wir werden diesen Indikator im Detail lernen, um ihn gut zu verstehen und zu lernen, wie wir ihn einfach durch eine einfache Strategie nutzen können, denn wenn wir etwas tiefgründig lernen, werden wir in der Lage sein, mehr Einsichten zu erhalten und wir können ihn besser nutzen.

Das werden wir anhand der folgenden Themen lernen:

  1. ADX Definition
  2. ADX Strategie
  3. Blaupause für die ADX-Strategie
  4. ADX Handelssystem
  5. Schlussfolgerung

Im Kapitel ADX Definition werden wir im Detail diskutieren, was ist der Average Directional Index (ADX, durchschnittliche Richtungsindex), was misst er, und wie können wir ihn manuell berechnen, um in der Lage sein, ihn in seiner Tiefe zu verstehen, damit wir ihn profitabel nutzen können. Dann, nachdem wir den Indikator und seine Funktionsweise gut verstanden haben, werden wir eine einfache Strategie lernen, die wir in unserem Handel einsetzen können, und diese wird nach dem Thema ADX-Strategie bekannt sein. Und dann in das Thema der ADX-Strategie Blaupause werden wir lernen, wie man eine Blaupause zu entwerfen, um uns zu helfen, es zu schreiben, wie ein Code, um ein Trading-System für diese Strategie zu entwerfen. Dann werden wir lernen, wie man ein Handelssystem mit dieser Strategie zu schreiben und dies wird durch das Thema der ADX Handelssystem sein.

Wir werden die Handelsplattform MetaTrader 5 und den MetaQuotes Spracheditor verwenden, der in MetaTrader 5 integriert ist und den Sie über den folgenden Link herunterladen können: https://www.metatrader5.com/de/download

Nachdem Sie den MetaTrader 5 heruntergeladen und installiert haben, finden Sie die Handelsplattform wie in der folgenden Abbildung dargestellt:

MT5 

Ich empfehle Ihnen, alles in diesem Artikel selbst anzuwenden, da Sie dadurch Ihre Fähigkeiten schnell entwickeln und ein tiefes Verständnis für das Thema erlangen. Übung ist ein wichtiger Schlüssel für jede Entwicklung. Es ist also besser, wenn Sie versuchen, jedes Konzept anzuwenden und es selbst zu testen, denn wir werden lernen, wie man ein Handelssystem mit einem technischen Werkzeug entwickelt, und wir werden das mit MQL5 tun, indem wir einige Codes schreiben, um einen Expert Advisor oder ein Programm zu erstellen, das uns hilft, gut zu handeln. Wenn Sie das nicht wissen, können Sie ein Demokonto über den MetaTrader 5 selbst eröffnen, indem Sie im MetaTrader 5-Terminal auf die Registerkarte Datei --> Konto eröffnen --> Sie können den Namen Ihres Brokers eingeben, um dieses Demokonto über ihn zu eröffnen, oder Sie wählen MetaQuotes --> Weiter --> Wählen Sie Demokonto eröffnen, um mit virtuellem Geld ohne Risiko zu handeln --> Weiter --> Geben Sie Ihre Daten ein und bestimmen Sie die Kontobedingungen, dann setzen Sie ein Häkchen neben Ich stimme zu --> Weiter --> dann finden Sie Ihre Anmeldedaten für das Demokonto --> Beenden.

Sie können dieses Konto nun für den virtuellen Handel nutzen, indem Sie es öffnen, indem Sie auf die Registerkarte "Datei" klicken --> Handelskonto eröffnen --> geben Sie Ihre Demokonto-Anmeldedaten ein und drücken Sie auf "OK".

Haftungsausschluss: Alle Informationen dienen nur zu Bildungszwecken und sind nicht für Handelszwecke oder Beratung gedacht. Alle Informationen garantieren kein Ergebnis. Wenn Sie sich entscheiden, diese Materialien auf einem Ihrer Handelskonten zu verwenden, tun Sie dies auf eigenes Risiko und sind allein dafür verantwortlich.

Nun, lassen Sie uns beginnen, ein neues Werkzeug zu lernen, das einen Unterschied in unseren Handelsergebnissen machen kann, um besser zu sein.


ADX Definition

In diesem Teil werden wir über einen der populärsten Indikatoren in der Welt des technischen Handels im Detail sprechen, um zu wissen, was er ist, was er misst und wie wir ihn berechnen können, um ihn gut zu verstehen, damit wir ihn mit den verfügbaren Strategien oder sogar mit neuen Ideen um ihn herum gut nutzen können. Dieser Indikator ist der durchschnittliche Richtungsindex (ADX), er wurde von Welles Wilder entwickelt und er misst den Trend und bestätigt, ob es einen Trend gibt oder nicht, denn nach seiner Berechnung vergleicht er die Handelsspanne für einen Zeitraum mit der Handelsspanne für den vorherigen Zeitraum.

Als Ergebnis dieses Vergleichs können wir feststellen, dass wir einen Trend haben:

Eine positive Richtungsbewegung bedeutet, dass der Höchststand einer Periode den Höchststand der vorangegangenen Periode übersteigt, und ihr Symbol ist (+DM).

Das folgende Bild zeigt uns, wie es auf dem Chart durch die Preisaktion sein kann:

+DM

Umgekehrt bedeutet eine negative Richtungsbewegung, dass das Tief einer Periode das Tief der vorangegangenen Periode übersteigt, und das Symbol ist (-DM).

Das folgende Bild zeigt uns, wie es auf dem Chart durch die Preisaktion sein kann:

-DM

Wenn wir keine positive Richtungsbewegung und keine negative Richtungsbewegung haben, bedeutet dies, dass das Hoch das vorherige Hoch und das Tief das vorherige Tief nicht überschritten hat.

Das folgende Bild zeigt uns, wie es auf dem Chart durch die Preisaktion sein kann:

Kein +DM, kein -DM

Wenn wir sowohl eine positive Richtungsbewegung als auch eine negative Richtungsbewegung haben, bedeutet dies, dass das Hoch das vorherige Hoch über- und das Tief das vorherige Tief unterschritten hat.

Das folgende Bild zeigt uns, wie es auf dem Chart durch die Preisaktion sein kann: 

 +DM-DM

Lassen Sie uns wissen, wie wir es berechnen können, da es uns mehr Einblicke geben wird. Im Folgenden finden Sie die Schritte zur Berechnung des ADX, wobei Sie beachten müssen, dass alle Werte absolut sein müssen:

1- berechnet von +DM und -DM:

In diesem Schritt müssen wir feststellen, ob es eine Bewegung nach oben oder unten für die aktuelle Bewegung im Vergleich zu der vorherigen gibt. Wir werden also zwei Dinge berechnen:

Sie wird berechnet durch (+DM = aktueller Höchststand - vorheriger Höchststand)
Sie wird wie folgt berechnet: (-DM = aktuelles Tief - vorheriges Tief)

Wir werden also jede berechnete Periode überprüfen und feststellen, ob sie +DM, -DM oder etwas anderes ist.

+DM=n
-DM = 0

-DM = n

+DM = 0

In einigen Fällen können wir andere Szenarien finden, in denen es keine Werte für (+DM und-DM) gibt oder wir können Werte für beide (+DM und-DM) finden, und das Folgende zeigt, wie wir damit umgehen können:

+DM = 0

-DM = 0

kein DM

+DM>-DM = es wird nur +DM berücksichtigt,

 +DM größer

+DM<-DM = es wird nur -DM berücksichtigt

-DM größer

+DM=-DM = es werden beide ignoriert

+DM gleich -DM

2- Berechnung des True Range (TR):

In diesem Schritt und nach der Berechnung von DM, berechnen wir die (TR) und es wird der größte Wert aus den folgenden sein:

3- Berechnung der Summe der 14 berechneten Balken (+DM, -DM, und TR)

Nach der Berechnung der ersten 14 berechneten Balken (+DM, -DM und TR) werden wir die folgenden Formeln verwenden, um die folgenden Werte nach 14 zu berechnen:

+DM 15 = (vorherige +DM - (vorherige +DM/14)) + aktuelle +DM

-DM 15 = (vorige -DM - (vorige -DM/14)) + aktuelle -DM

TR 15 = (vorheriger TR - (vorheriger TR/14)) + aktuelles TR

4- Berechnung von +DI und -DI für 14 Balken
+DI 14 = 100*(+DM14/TR14)
-DI 14 = 100*(-DM14/TR14)

5- Berechnung der Differenz von +DI und -DI

DI 14 Diff = (+DI 14) - (-DI 14)

6- Berechnung der Summe von +DI und -DI

DI 14 Summe = (+DI 14) + (-DI 14)

7- Berechnung von DX

DX = 100*((Differenz zwischen +DI und -DI)/(Summe von +DI und -DI))
8- Berechnung des ADX
ADX = Durchschnitt der 14 Werte des DX

Mit den vorangegangenen Schritten können wir den ADX berechnen und nun ein Beispiel zur Anwendung dieser Schritte sehen, wenn wir die folgenden Daten haben:

Tag Hoch Niedrig Schlusskurs
1 110 90 100
2 140 120 130
3 160 120 140
4 150 110 130
5 140 100 130
6 150 130 140
7 170 150 160
8 180 160 170
9 170 150 155
10 170 130 140
11 180 155 160
12 190 175 180
13 220 190 190
14 230 200 200
15 215 205 210
16 200 190 200
17 195 180 190
18 195 180 185
19 210 185 195
20 220 190 200
21 233 195 208
22 246 200 216
23 258 205 223
24 271 210 231
25 283 215 238
26 296 220 246
27 308 225 253
28 321 230 261
29 333 235 268
30 346 240 276

Berechnen wir nun den ADX für die vorherigen Daten:

1- berechnet von +DM und -DM:

+DM = aktuelles Hoch - vorheriges Hoch

-DM = aktuelles Tief - vorheriges Tief

Beispiel - DM

2- Berechnung des TR:

Es wird der größte Wert aus den folgenden Werten sein:

Das folgende Bild ist für TR nach der Berechnung:

Beispiel - TR

3- Berechnung der Summe der 14 berechneten Balken +DM, -DM, und TR:

+DM 14 = Sum +DM 1(day 2: day 15)

-DM 14 = Sum -DM 1(day 2: day 15)

TR 14 = Sum TR (day 2: day 15)

Beispiel - 14 DM-TR

4- Berechnung von +DI und -DI von 14 Balken und die erste Berechnung erfolgt ab dem 15. Tag, da wir 14 DM benötigen, um 14 DI zu berechnen:

+DI14 = 100*(+DM14/TR14)

-DI14 = 100*(-DM14/TR14)


5- Berechnung der Differenz von +DI und -DI

DI 14 Diff = (+DI 14) - (-DI 14)

6- Berechnung der Summe von +DI und -DI

DI 14 Summe = (+DI 14) + (-DI 14)

DI14 - Diff und Sum

7- Berechnung des DX:

DX = 100*((Differenz zwischen +DI und -DI)/(Summe von +DI und -DI))


DX

8- Berechnung des ADX und die erste Berechnung wird die von 28 sein, da wir mehr 14 Tage benötigen, um den ADX zu berechnen:

ADX = Durchschnitt der 14 Perioden des DX --> durchschnittlicher DI (Tag 15: Tag 28)


ADX

Jetzt haben wir den ADX-Indikator manuell berechnet, aber das ist nicht nötig, da er in MetaTrader 5 integriert ist. Wir haben nur gelernt, wie wir ihn berechnen können, um unser Verständnis für den ADX-Indikator und seine Funktionsweise zu vertiefen. Wenn wir ihn in den Chart einfügen wollen, müssen wir ihn nur unter den verfügbaren Indikatoren im Handelsterminal auswählen (Einfügen --> Indikator --> Trend --> Average Directional Movement Index) und im Folgenden erfahren Sie, wie wir das machen:

ADX einfügen

Nachdem Sie "Average Directional Movement Index" ausgewählt haben, erscheint das folgende Fenster:

ADX-Fenster

Dieses Fenster ist für die Parameter der ADX-Indikatoren und sie sind die gleichen wie die folgenden:
  1. um die gewünschte Periodenlänge zu bestimmen,
  2. um die Farbe der ADX-Linie zu bestimmen,
  3. um den Typ der ADX-Linie zu bestimmen,
  4. um die Dicke der ADX-Linie zu bestimmen,
  5. um die Farbe der +DI-Linie zu bestimmen,
  6. um den Typ der +DI-Linie zu bestimmen
  7. um die Dicke der +DI-Linie zu bestimmen,
  8. um die Farbe der -DI-Linie zu bestimmen,
  9. um den Typ der -DI-Linie zu bestimmen,
  10. um die Dicke der -DI-Linie zu bestimmen.

Nachdem Sie die ADX-Parameter festgelegt und auf OK geklickt haben, wird der ADX an den Chart angehängt; die folgende Abbildung zeigt ein Beispiel dafür:

ADX angehängt

ADX Strategie

In diesem Teil werden wir einfache Strategien besprechen, die durch den ADX-Indikator verwendet werden können. Ich möchte hier betonen, dass wir nur einige einfache Strategien für den ADX-Indikator präsentieren. Sie müssen wissen, dass viele Strategien mit Hilfe des ADX verwendet werden könnten, von einfachen bis komplizierten, aber in diesem Artikel behandeln wir nur einfache Strategien, um das Konzept hinter dem Indikator zu verstehen, und um zu lernen, wie man ein Handelssystem auf der Grundlage des Konzepts erstellt.

Basierend auf dem Konzept, das hinter der Berechnung des ADX-Indikators steht, zeigt er an, ob es einen Trend gibt oder nicht, unabhängig von der Art des Trends (aufwärts oder abwärts). Wenn sich die ADX-Kurve nach oben bewegt, bedeutet dies, dass es einen Trend gibt, und umgekehrt, wenn sich die ADX-Kurve nach unten bewegt, bedeutet dies, dass es keinen Trend gibt. Aber zuerst müssen wir den Trend definieren, und das wird wie folgt aussehen:

Trend-Definition:

Zu Ihrer Information: Die Preisaktion ist sehr wichtig, da sie uns den Trendtyp zeigt, so wie wir wissen, dass es drei Arten von Trends gibt (Aufwärtstrend, Abwärtstrend und Seitwärtstrend).

Aufwärtstrend: Dies ist die Marktrichtung oder der Trend, bei dem wir sehen können, dass die Preise höhere Tiefs und höhere Höchststände bilden, die Preise steigen und die Käufer den Markt in dieser Marktbewegung kontrollieren.

Das folgende Bild zeigt die Bildung dieser Marktrichtung oder dieses Trends:

Aufwärtstrend-Formation

Das folgende Bild ist ein Beispiel aus dem Markt für den Aufwärtstrend:

Beispiel Aufwärtstrend

Abwärtstrend: Dies ist die Marktrichtung oder der Trend, wie wir sehen können, dass die Preise niedrigere Hochs und niedrigere Tiefs bilden, die Preise sich nach unten bewegen und die Verkäufer den Markt in dieser Marktbewegung kontrollieren.

Im Folgenden wird die Formation dieser Marktrichtung oder Trendform dargestellt:

Abwärtstrend-Formation

Das folgende Bild ist ein Beispiel für einen Abwärtstrend auf dem Markt:

Beispiel eines Abwärtstrends

Seitwärts: Dies ist jede Marktrichtung außer Aufwärts- oder Abwärtstrend, bei der es keine klare Richtung gibt und ein Gleichgewicht zwischen Käufern und Verkäufern besteht.

Im Folgenden sind einige Formationen dieser Marktrichtung aufgeführt:

Seitwärtsform 1

Seitwärtsform 2

Seitwärtsform 3

Seitwärtsform 4

Im Folgenden finden Sie ein Beispiel für Seitwärtsbewegungen auf dem Markt:

Seitwärtsform live Beispiel

Nach der Identifizierung von Trends werden wir einfache Strategien sehen, die nach dem Konzept des ADX verwendet werden können.

Die Strategie basiert auf der Bewegung der ADX-Kurve,

aktueller ADX-Wert > vorheriger ADX-Wert = ADX steigt.

aktueller ADX-Wert < vorheriger ADX-Wert = ADX fällt.

Nach dieser Strategie, während des Aufwärtstrends,

ADX-Wert > 25 und aktueller ADX-Wert > vorheriger ADX-Wert --> wenn +DI-Wert > -DI-Wert = kaufen

Nach dieser Strategie, während des Abwärtstrends,

ADX-Wert > 25 und aktueller ADX-Wert > vorheriger ADX-Wert --> wenn +DI-Wert < -DI-Wert = verkaufen


Blaupause für die ADX-Strategie

In diesem Teil werden wir eine Blaupause für jede Strategie entwerfen, um uns bei der Erstellung des Handelssystems zu helfen, und diese Blaupause wird organisieren und festlegen, was wir das Programm oder das System Schritt für Schritt tun müssen.

Bei dieser Strategie muss das Programm bei jedem Tick den aktuellen ADX-Wert und den vorherigen ADX-Wert überprüfen und dann entscheiden, ob der aktuelle ADX-Wert größer als der vorherige ADX-Wert ist oder nicht. Wenn der aktuelle ADX-Wert größer als der vorherige Wert ist, muss das System einen Kommentar auf dem Chart mit "ADX steigt", "ADX-Wert ist (n)" in einer neuen Zeile und "ADX-Wert zuletzt ist (n)" in einer weiteren neuen Zeile anzeigen. Wenn der aktuelle ADX-Wert niedriger ist als der vorherige ADX-Wert, muss das System einen Kommentar auf dem Chart mit dem Wort "ADX fällt" anzeigen.

Das folgende Bild ist eine Blaupause für diese Strategie:

ADX Bewegung Blaupause

Bei dieser Strategie muss das System jeden Tick den aktuellen ADX-Wert, den vorherigen ADX-Wert, den +DI-Wert und den -DI-Wert überprüfen und dann entscheiden, ob der aktuelle ADX-Wert größer als 25 und der vorherige ADX-Wert ist oder nicht. Wenn er nicht größer als beide ist, muss das System nichts tun, wenn er größer als beide ist, muss das System +DI und -DI prüfen, ob +DI größer als -DI ist oder nicht, wenn +DI größer als -DI ist, muss das System mit einem Kaufsignal kommentieren, ADX Wert ist (n), ADX Wert zuletzt ist (n), +DI Wert ist (n), und -DI Wert ist (n) oder wenn +DI nicht größer als -DI ist, muss das System nichts tun.

Das folgende Bild zeigt eine Blaupause für diese Strategie:

ADX - Kaufsignal Blaupause

Gemäß dieser Strategie muss das System bei jedem Tick den aktuellen ADX-Wert, den vorherigen ADX-Wert, den +DI-Wert und den -DI-Wert überprüfen und dann entscheiden, ob der aktuelle ADX-Wert kleiner als 25 und der vorherige ADX-Wert ist oder nicht. Wenn er nicht kleiner als beide ist, muss das System nichts tun. Wenn er kleiner als beide ist, muss das System +DI und -DI prüfen, ob +DI kleiner als -DI ist oder nicht, wenn +DI kleiner als -DI ist, muss das System mit einem Verkaufssignal generieren, ADX Wert ist (n), ADX Wert zuletzt ist (n), +DI Wert ist (n), und -DI Wert ist (n) oder wenn +DI nicht kleiner als -DI ist, muss das System nichts tun.

Das folgende Bild zeigt eine Blaupause für diese Strategie:

ADX - Verkaufssignal Blaupause

ADX Handelssystem

In diesem höchst interessanten Teil werden wir erfahren, wie man ein Handelssystem für diese erwähnten einfachen Strategien erstellt, um sie im MetaTrader 5-Handelsterminal zu verwenden, und wir werden den eingebauten MetaQuotes Language Editor (MQL5) verwenden, um den Code dieses Handelssystems zu schreiben. Um diesen MetaQuotes Language Editor zu öffnen, während Sie das MetaTrader 5-Handelsterminal öffnen, können Sie F4 drücken, um ihn zu öffnen, oder auf die Registerkarte Tools im MetaTrader 5 klicken --> dann MetaQuotes Language Editor auswählen.

Das folgende Bild zeigt Ihnen, wie Sie das tun können:

MetaEditor öffnen 1

Oder Sie können auf die Schaltfläche IDE klicken:

MetaEditor öffnen 2

Danach wird das folgende Fenster des MetaQuotes Language Editor geöffnet:

MetaEditor-Fenster

Dann öffnen wir eine neue Datei durch einen Klick auf "New", um dort das Handelssystem zu schreiben:

MetaEditor-Fenster 2

Dann wird das folgende Fenster geöffnet:

Metaeditor - Neue Datei

Im Folgenden finden Sie Optionen für die Art der neuen Datei:

  1. Expert Advisor: EA ist ein Programm im Terminal zur Automatisierung von Handelsprozessen nach vorgegebenen Bedingungen.
  2. Benutzerdefinierter Indikator: Dies ist ein Programmcode, der uns hilft, den Chart zu lesen, um Handelsentscheidungen zu verbessern.
  3. Skript: ist ein Programm, das eine Aufgabe nur ein einziges Mal nach dem Skript-Start ausführt.

Jetzt werden wir uns dafür entscheiden, eine Expert Advisor EA-Datei zu erstellen, um unser Handelssystem zu entwickeln.

Zunächst werden wir ein Programm erstellen, das als Kommentar im Chart mit dem aktuellen ADX-Wert angezeigt werden kann:

double PriceArray[];
array[] per Refenze und das Flag

ArraySetAsSeries(PriceArray,true);

Symbol als Zeichenkette, Periode für den Zeitrahmen und Periodenlänge für die Anzahl der ADX-Perioden, die wie folgt lauten:
int ADXDef = iADX(_Symbol,_Period,14);
Indikatorhandle, buffer_num der Indikatorpuffernummer, start_time (Startdatum und -uhrzeit), stop_time (Enddatum und -uhrzeit) und buffer[] (Zielarray).
CopyBuffer(ADXDef,0,0,3,PriceArray);
Wert als Double (normalisierte Zahl) und Digits als Integer (Anzahl der Stellen nach dem Komma)
double ADXValue=NormalizeDouble(PriceArray[0],2);
Beliebige Werte, die durch Kommas voneinander getrennt werden, und wenn einige von ihnen in einer neuen Zeile erscheinen sollen, wird ein Zeilenumbruchssymbol "\n" verwendet: 
Comment("ADX Value is ", ADXValue);

Wenn Sie den vollständigen Code dieses Programms sehen möchten, können Sie ihn im Folgenden sehen:

//+------------------------------------------------------------------+
//|                                            Simple ADX System.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()
  {
//creating an array for prices
   double PriceArray[];

//sort price array from current data
   ArraySetAsSeries(PriceArray,true);

//identify ADX
   int ADXDef = iADX(_Symbol,_Period,14);

//Filling data according to created ADX
   CopyBuffer(ADXDef,0,0,3,PriceArray);

//Getting value of current data
   double ADXValue=NormalizeDouble(PriceArray[0],2);

//Comment with ADX value
   Comment("ADX Value is ", ADXValue);
  }
//+------------------------------------------------------------------+

Nachdem wir dieses Programm geschrieben haben, können wir diese Programmdatei im Navigator-Fenster des MetaTrader 5-Terminals sehen, und das Folgende soll das zeigen:

Nav

Nachdem Sie auf die Datei doppelgeklickt oder sie per Drag & Drop auf den Chart gezogen haben, wird das folgende Fenster angezeigt:

Einfaches ADX-Fenster

Nachdem Sie ein Häkchen bei "Algo-Trading zulassen" gesetzt und die Schaltfläche OK gedrückt haben, wird die Datei an den Chart angehängt:

Einfacher ADX angehängt

Dann wird das Ergebnis dieses Handelssystems angezeigt, und das folgende Bild ist ein Beispiel dafür:

Einfacher ADX

Nun, da wir ein Programm erstellt haben, das den Wert des aktuellen ADX-Wertes anzeigt, müssen wir etwas hinzufügen, das uns bei der Entwicklung unseres Handelssystems hilft. Wir müssen ein Programm kodieren, das andere Werte des ADX-Indikators (+DI-Wert und -DI-Wert) anzeigt, und im Folgenden wird beschrieben, wie man das macht:

double ADXArray[];
double PDIArray[];
double NDIArray[];
ArraySetAsSeries(ADXArray,true);
ArraySetAsSeries(PDIArray,true);
ArraySetAsSeries(NDIArray,true);

int ADXDef = iADX(_Symbol,_Period,14);
CopyBuffer(ADXDef,0,0,3,ADXArray);
CopyBuffer(ADXDef,1,0,3,PDIArray);
CopyBuffer(ADXDef,2,0,3,NDIArray);
double ADXValue=NormalizeDouble(ADXArray[0],2);
double PDIValue=NormalizeDouble(PDIArray[0],2);
double NDIValue=NormalizeDouble(NDIArray[0],2);
Comment("ADX Value is ", ADXValue,"\n""+DI Value is ", 
PDIValue,"\n""-DI Value is ", NDIValue);

Hier der vollständigen Code für diesen Expert Advisor:

//+------------------------------------------------------------------+
//|                                  Simple ADX System - 3 lines.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()
  {
   //creating an array for prices
   double ADXArray[];
   double PDIArray[];
   double NDIArray[];
   
   //sort price array from current data
   ArraySetAsSeries(ADXArray,true);
   ArraySetAsSeries(PDIArray,true);
   ArraySetAsSeries(NDIArray,true);

   //identify ADX
   int ADXDef = iADX(_Symbol,_Period,14);
   
   
   //Filling data according to created ADX
   CopyBuffer(ADXDef,0,0,3,ADXArray);
   CopyBuffer(ADXDef,1,0,3,PDIArray);
   CopyBuffer(ADXDef,2,0,3,NDIArray);
   
   //Getting value of current data
   double ADXValue=NormalizeDouble(ADXArray[0],2);
   double PDIValue=NormalizeDouble(PDIArray[0],2);
   double NDIValue=NormalizeDouble(NDIArray[0],2);
   
   //Comment with ADX value
   Comment("ADX Value is ", ADXValue,"\n""+DI Value is ", 
   PDIValue,"\n""-DI Value is ", NDIValue);
  }
//+------------------------------------------------------------------+

Nachdem wir dieses Programm geschrieben haben, können wir seine Datei im Navigator-Fenster finden:

 Nav 2

Nach einem Doppelklick auf die Datei oder dem Ziehen und Ablegen auf dem Chart erscheint das folgende Fenster:

Einfaches ADX - 3-Linien-Fenster

Nachdem Sie ein Häkchen bei "Algo Trading zulassen" gesetzt und auf OK gedrückt haben, wird das Programm an den Chart angehängt:

Einfacher ADX - 3 Linien angehängt

Danach erscheinen die Werte auf dem Chart gemäß diesem Expert Advisor:

Einfacher ADX - 3 Linien

Nun werden wir unser Handelssystem für unsere genannten Strategien (ADX-Bewegung, Aufwärtstrend und Abwärtstrend) erstellen.

Aktueller ADX-Wert > vorheriger ADX-Wert = ADX steigt.

Aktueller ADX-Wert < vorheriger ADX-Wert = ADX fällt.

Im Folgenden soll der Code des Programms bzw. des Expert Advisors geschrieben werden, der das leisten kann:

double ADXArray0[];
double ADXArray1[];

ArraySetAsSeries(ADXArray0,true);
ArraySetAsSeries(ADXArray1,true);

int ADXDef = iADX(_Symbol,_Period,14);
CopyBuffer(ADXDef,0,0,3,ADXArray0);
CopyBuffer(ADXDef,0,0,2,ADXArray1);
double ADXValue=NormalizeDouble(ADXArray0[0],2);
double ADXValuelast=NormalizeDouble(ADXArray1[1],2);
if (ADXValue>ADXValuelast)
      {
       Comment("ADX is rising","\n""ADX Value is ", ADXValue,"\n""ADX Value last is ", 
   ADXValuelast);
      }
   
if (ADXValue<ADXValuelast)
     {
      Comment("ADX is falling","\n""ADX Value is ", ADXValue,"\n""ADX Value last is ", 
   ADXValuelast);
      }

Es folgt vollständigen Code für diese Strategie zur Erstellung des Expert Advisors:

//+------------------------------------------------------------------+
//|                             Simple ADX System - ADX Movement.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()
  {
   //creating an array for prices
   double ADXArray0[];
   double ADXArray1[];

   //sort price array from current data
   ArraySetAsSeries(ADXArray0,true);
   ArraySetAsSeries(ADXArray1,true);
      
   //identify ADX
   int ADXDef = iADX(_Symbol,_Period,14);
   
   //Filling data according to created ADX
   CopyBuffer(ADXDef,0,0,3,ADXArray0);
   CopyBuffer(ADXDef,0,0,2,ADXArray1);
   
   //Getting value of current data
   double ADXValue=NormalizeDouble(ADXArray0[0],2);
   double ADXValuelast=NormalizeDouble(ADXArray1[1],2);
   
   //ADX movement signal
   if (ADXValue>ADXValuelast)
      {
         Comment("ADX is rising","\n""ADX Value is ", ADXValue,"\n""ADX Value last is ", 
   ADXValuelast);
      }
   
   if (ADXValue<ADXValuelast)
     {
         Comment("ADX is falling","\n""ADX Value is ", ADXValue,"\n""ADX Value last is ", 
   ADXValuelast);
      }
  }
//+------------------------------------------------------------------+

Nachdem wir diesen Expert Advisor erstellt haben, finden wir ihn im Navigator-Fenster:

Nav - adx3

Nach einem Doppelklick oder dem Ziehen und Ablegen auf dem Chart erscheint das folgende Fenster:

Fenster ADX-Bewegung 

Nachdem Sie ein Häkchen bei "Algo Trading zulassen" gesetzt und die Schaltfläche OK gedrückt haben, wird der EA an den Chart angehängt:

ADX-Bewegung angehängt

Danach kann der EA gemäß seinen Bedingungen handeln, und die folgenden Beispiele zeigen die Ergebnisse der Tests:

ADX-Bewegung - steigend 


ADX movement2.png

ADX-Wert > 25 und aktueller ADX-Wert > vorheriger ADX-Wert --> wenn +DI-Wert > -DI-Wert = kaufen

Im Folgenden wird beschrieben, wie man einen Expert Advisor zur Ausführung dieser Strategie erstellt:

string signal="";
double ADXArray0[];
double ADXArray1[];
double PDIArray[];
double NDIArray[];
ArraySetAsSeries(ADXArray0,true);
ArraySetAsSeries(ADXArray1,true);
ArraySetAsSeries(PDIArray,true);
ArraySetAsSeries(NDIArray,true);
int ADXDef = iADX(_Symbol,_Period,14);
CopyBuffer(ADXDef,0,0,3,ADXArray0);
CopyBuffer(ADXDef,0,0,2,ADXArray1);
CopyBuffer(ADXDef,1,0,3,PDIArray);
CopyBuffer(ADXDef,2,0,3,NDIArray);
double ADXValue=NormalizeDouble(ADXArray0[0],2);
double ADXValueLast=NormalizeDouble(ADXArray1[1],2);
double PDIValue=NormalizeDouble(PDIArray[0],2);
double NDIValue=NormalizeDouble(NDIArray[0],2);
if (ADXValue>25&&ADXValue>ADXValueLast)
   if(PDIValue>NDIValue)
   {
    signal = "BUY";
   }
Comment("Simple ADX System - Signal is ",signal,"\n""ADX Value is ", ADXValue,
"\n""ADX Value Last is ", ADXValueLast, "\n""+DI Value is ", PDIValue,
"\n""-DI Value is ", NDIValue);

Es folgt vollständigen Code für diese Strategie zur Erstellung des Expert Advisors:

//+------------------------------------------------------------------+
//|                     Simple ADX System - Uptrend - Buy Signal.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()
  {
  
   // creating a variable for signal
   string signal="";
   
   //creating an array for prices
   double ADXArray0[];
   double ADXArray1[];
   double PDIArray[];
   double NDIArray[];
   
   //identify ADX, positive DI, negative DI
   int ADXDef = iADX(_Symbol,_Period,14);
   
   
   //sort price array from current data
   ArraySetAsSeries(ADXArray0,true);
   ArraySetAsSeries(ADXArray1,true);
   ArraySetAsSeries(PDIArray,true);
   ArraySetAsSeries(NDIArray,true);
   
   //Filling data according to created ADX
   CopyBuffer(ADXDef,0,0,3,ADXArray0);
   CopyBuffer(ADXDef,0,0,2,ADXArray1);
   CopyBuffer(ADXDef,1,0,3,PDIArray);
   CopyBuffer(ADXDef,2,0,3,NDIArray);
   
   //Getting value of current data
   double ADXValue=NormalizeDouble(ADXArray0[0],2);
   double ADXValueLast=NormalizeDouble(ADXArray1[1],2);
   double PDIValue=NormalizeDouble(PDIArray[0],2);
   double NDIValue=NormalizeDouble(NDIArray[0],2);
   
   //Comment with Buy signal according to Buy Strategy
    if (ADXValue>25&&ADXValue>ADXValueLast)
      if(PDIValue>NDIValue)
      {
         signal = "BUY";
      }
      
   Comment("Simple ADX System - Signal is ",signal,"\n""ADX Value is ", ADXValue,
   "\n""ADX Value Last is ", ADXValueLast, "\n""+DI Value is ", PDIValue,
   "\n""-DI Value is ", NDIValue);
  }
//+------------------------------------------------------------------+

Danach können wir den Expert Advisor im Navigator-Fenster sehen:

Nav - ADX4

Nach einem Doppelklick oder durch Ziehen und Ablegen auf dem Chart erscheint das folgende Fenster,

ADX - Fenster Aufwärtstrend

Nachdem Sie ein Häkchen bei "Algo-Trading zulassen" gesetzt und die Schaltfläche "OK" gedrückt haben, wird der Expert Advisor angehängt,

ADX - Aufwärtstrend angehängt

Danach können wir Signale finden, die entsprechend der Strategie erscheinen:

Das folgende Bild ist ein Beispiel für die Ergebnisse dieser Strategie bzw. des Expert Advisors beim Testen:


ADX - Kaufsignal

ADX-Wert > 25 und aktueller ADX-Wert > vorheriger ADX-Wert --> wenn +DI-Wert < -DI-Wert = verkaufen

Im Folgenden wird beschrieben, wie Sie einen Expert Advisor erstellen, der diese Strategie umsetzt:

//+------------------------------------------------------------------+
//|                Simple ADX System - Downtrend - Sell Strategy.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()
  {
  
   // creating a variable for signal
   string signal="";
   
   //creating an array for prices
   double ADXArray0[];
   double ADXArray1[];
   double PDIArray[];
   double NDIArray[];
   
   //identify ADX, positive DI, negative DI
   int ADXDef = iADX(_Symbol,_Period,14);
   
   
   //sort price array from current data
   ArraySetAsSeries(ADXArray0,true);
   ArraySetAsSeries(ADXArray1,true);
   ArraySetAsSeries(PDIArray,true);
   ArraySetAsSeries(NDIArray,true);
   
   //Filling data according to created ADX
   CopyBuffer(ADXDef,0,0,3,ADXArray0);
   CopyBuffer(ADXDef,0,0,2,ADXArray1);
   CopyBuffer(ADXDef,1,0,3,PDIArray);
   CopyBuffer(ADXDef,2,0,3,NDIArray);
   
   //Getting value of current data
   double ADXValue=NormalizeDouble(ADXArray0[0],2);
   double ADXValueLast=NormalizeDouble(ADXArray1[1],2);
   double PDIValue=NormalizeDouble(PDIArray[0],2);
   double NDIValue=NormalizeDouble(NDIArray[0],2);
   
   //Comment with Buy signal according to Buy Strategy
    if (ADXValue>25&&ADXValue>ADXValueLast)
      if(PDIValue<NDIValue)
      {
         signal = "SELL";
      }
      
   Comment("Simple ADX System - Signal is ",signal,"\n""ADX Value is ", ADXValue,
   "\n""ADX Value Last is ", ADXValueLast, "\n""+DI Value is ", PDIValue,
   "\n""-DI Value is ", NDIValue);
  }
//+------------------------------------------------------------------+

Es handelt sich um die gleichen Schritte wie bei der Aufwärtsstrategie mit folgenden Unterschieden:

    if (ADXValue>25&&ADXValue>ADXValueLast)
      if(PDIValue<NDIValue)
      {
         signal = "SELL";
      }
   Comment("Simple ADX System - Signal is ",signal,"\n""ADX Value is ", ADXValue,
   "\n""ADX Value Last is ", ADXValueLast, "\n""+DI Value is ", PDIValue,
   "\n""-DI Value is ", NDIValue);

Nachdem wir den Code dieser Strategie geschrieben haben, können wir die Datei des Expert Advisors im Navigator-Fenster finden:

Nav - ADX 5

Nach einem Doppelklick oder dem Ziehen und Ablegen der Datei auf dem Chart wird das folgende Fenster angezeigt:

ADX - Fenster Abwärtstrend 

Nachdem Sie ein Häkchen bei "Algo-Trading zulassen" gesetzt und die Schaltfläche "OK" gedrückt haben, wird der Expert Advisor an den Chart angehängt; die folgende Abbildung zeigt ein Beispiel dafür:

ADX - Abwärtstrend angehängt

Dann können wir Signale finden, die gemäß der Abwärtstrend-Strategie erscheinen:

Das folgende Bild ist ein Beispiel für ein Signal, das nach dieser Strategie beim Testen erzeugt wurde:

ADX - Verkaufssignal

Schlussfolgerung

Jetzt nach besprochenen Themen dieses Artikels können wir annehmen, dass Sie den beliebten und nützlichen ADX-Indikatoren im Detail kennengelernt haben, und wie man ein Handelssystem mit ihm entwirft, nachdem wir nun wissen, was er misst und wie man ihn berechnet. Wir kennen jetzt einfache Strategien auf der Grundlage der ADX-Indikator, bei einem Aufwärts- oder Abwärtstrend. Dann entwarfen wir eine Blaupause für diese Strategien, um uns zu helfen, die Gestaltung der Handelssystem Schritt für Schritt zu verstehen, was wir brauchen, damit das Programm genau das tut. Wir kennen jetzt wie man ein Handelssystem entwickelt, das automatisch auf der Grundlage dieser ADX-Strategien arbeitet, und wir wissen jetzt auch, wie man den Code für diese Handelsstrategien mit MQL5 (MetaQuotes Language) schreibt.

Der ADX-Indikator hat viele Strategien, die für den Handel von einfachen bis zu komplizierten Strategien verwendet werden können, aber hier haben wir nur einige einfache Strategien erwähnt, um das Grundkonzept des Indikators und das Grundkonzept des Artikels zu lernen, und das Hauptziel ist es, Handelsstrategien auf der Grundlage des technischen Ansatzes kennenzulernen und ein Handelssystem für sie durch MQL5 zu entwerfen, um in der MetaTrader 5 Handelsplattform verwendet zu werden.

Was ich hier auch erwähnen muss, ist, dass wir eine Menge nützlicher Tools und Strategien haben, die wir für unseren Handel nutzen können. Diese Werkzeuge können einzeln verwendet werden, oder wir können kombinieren, was gültig sind, um bessere Ergebnisse zu erhalten, und dies ist eines der nützlichsten Merkmale der technischen Analyse, da es viele Werkzeuge auf verschiedenen Konzepten basiert, dass sie unsere Handelsentscheidungen verbessern können und dies wird bessere Ergebnisse aus dem Handel zurück. Ich empfehle die Lektüre meiner früheren Artikel über andere beliebte Indikatoren, die von einigen einfachen Strategien verwendet werden können und wie man ein einfaches Handelssystem auf der Grundlage dieser Strategien von MQL5 für den MetaTrader 5 zu verwenden. Unsere Aufgabe ist es also, diese Konzepte und Tools zu lernen und herauszufinden, was für unseren Handelsstil und -plan geeignet ist, denn es gibt viele Strategien, die für den einen nützlich sein können, für den anderen aber nicht, und jeder muss einen Handelsplan haben, der auf seiner Handelsstrategie basiert, und das können wir wissen, indem wir jede neue Strategie oder jedes neue Tool testen, um zu bestätigen, ob es nützlich und profitabel ist oder nicht, bevor wir es auf realen Konten verwenden.

Die Programmierung kann in dieser Phase aus vielen Gründen sehr nützlich sein, denn sie hilft uns, dies einfach, reibungslos und genau zu tun. Sobald wir eine rentable Strategie gefunden haben, können wir auch ein Handelssystem für sie entwerfen, damit der Computer automatisch für uns gemäß den Bedingungen des entworfenen Programms arbeiten kann. Auf diese Weise vermeiden wir schädliche Emotionen, die auch in unseren Handelsprozess einfließen können. Die Programmierung hilft uns also, mit Disziplin zu handeln, was einer der wichtigsten Schlüssel zum erfolgreichen Handel ist. Es ist also gut, das Programmieren und MQL5 zu erlernen, da sie hilfreich sein können, um diese Ziele zu erreichen.

Ich hoffe, dass Sie diesen Artikel nützlich für Ihr Trading gefunden haben, auch wenn er Ihnen die Augen für neue Ideen geöffnet hat und Ihnen Einblicke in das Thema des Artikels oder ein verwandtes Thema gegeben hat, um Ihnen zu helfen, Ihre Trading-Ergebnisse zu verbessern, um kontinuierlich bessere Ergebnisse zu erzielen, denn das ist das Hauptziel von unserem Trading ist es, gute Ergebnisse zu erzielen und Gewinne zu erreichen Konsistenz und ich hoffe, dass dieser Artikel hilft, dieses wertvolle Ziel zu erreichen.