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

Lernen Sie, wie man ein Handelssystem mit dem VIDYA entwickelt

MetaTrader 5Handel | 2 September 2022, 13:42
443 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Einführung

Hier ist ein neuer Artikel aus unserer Serie, der Anfängern die Möglichkeit gibt, ein neues technisches Werkzeug kennenzulernen und zu erfahren, wie man ein Handelssystem auf der Grundlage einfacher Strategien entwickelt. Es handelt sich um den Indikator Variabler Index Dynamischer Durchschnitt (VIDYA). Dieser Indikator ist einer der trendfolgenden Indikatoren, die in unserem Handel verwendet werden können, und das Konzept dieses Begriffs bedeutet, dass dieser Indikator dem Trend folgt. Es handelt sich also um einen nachlaufenden Indikator, was bedeutet, dass er der Kursbewegung hinterher läuft. Wir werden diesen Indikator folgende Themen behandeln:

  1. VIDYA - Definition
  2. VIDYA - Strategie
  3. VIDYA - Blaupause der Strategie
  4. VIDYA - Handelssystem
  5. Schlussfolgerung


Wenn Sie Ihre Programmierkenntnisse ausbauen möchten, können Sie das Gelernte selbst anwenden, um Ihr Verständnis zu vertiefen, denn Üben ist ein sehr wichtiger Schritt in jedem Lernprozess. Wir werden die MQL5 (MetaQuotes Language 5), die in der MetaTrader 5-Handels-Terminal eingebaut ist, wenn Sie nicht wissen, wie Sie herunterladen und verwenden können, können Sie das Thema MQL5-Code in MetaEditor schreiben aus einem früheren Artikel zu lesen.

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.


VIDYA - Definition

Der Variable Index Dynamic Average (VIDYA) ist ein Trendfolgeindikator, der von Tushar Chande entwickelt wurde. Er sieht aus wie der exponentielle gleitende Durchschnitt, wird aber dynamisch auf der Grundlage der relativen Preisvolatilität angepasst. Die Volatilität wird durch den Chande Momentum Oscillator (CMO) in diesem Indikator gemessen, indem das Verhältnis zwischen der Summe der positiven und negativen Bewegungen gemessen wird, wie wir sehen werden, wenn wir lernen, wie man ihn berechnet. (CMO) wird zur Glättung des exponentiellen gleitenden Durchschnitts verwendet. So, wie wir sehen werden, können wir die Einstellungen dieses Indikators als Parameter sind die CMO-Periode und die EMA-Periode zu finden. Er kann wie jeder gleitende Durchschnitt verwendet werden, um den Trendtyp zu ermitteln, ob es sich um einen Aufwärts- oder Abwärtstrend handelt. Wenn Sie mehr über die Trendtypen erfahren möchten und wie Sie sie identifizieren können, lesen Sie das Thema der Trenddefinition in einem früheren Artikel. Oder Sie können es verwenden, um Kauf- oder Verkaufssignale zu generieren und wir werden durch das Thema der VIDYA Strategie einige einfache Strategien sehen, die darauf basieren.

Jetzt müssen wir lernen, wie wir den VIDYA-Indikator berechnen können, um mehr über das Hauptkonzept dahinter zu erfahren. Die folgenden Schritte zeigen, wie Sie ihn manuell berechnen können.

  • Berechnen Sie den EMA:

EMA(i) = Preis(i) * F + EMA(i-1)*(1-F)

Wobei:

EMA(i) = Aktueller EMA

Price(i) = Aktueller Preis

F (Glättungsfaktor) = 2/(EMA der Periode+1)

EMA(i-1) = Vorheriger EMA-Wert

  • Berechnen Sie den dynamischen Durchschnittswert des variablen Index (VIDYA):

VIDYA(i) = Preis(i) * F * ABS(CMO(i)) + VIDYA(i-1) * (1 - F* ABS(CMO(i)))

Wobei:

VIDYA(i) = Aktuelles VIDYA

ABS(CMO(i)) = Der absolute aktuelle Wert des Chande Momentum Oszillator

VIDYA(i-1) = Vorheriger VIDYA-Wert

  • Berechnen Sie den Chande Momentum Oszillator (CMO):

CMO(i) = (UpSum(i) - DnSum(i))/(UpSum(i) + DnSum(i))

Wobei:

UpSum(i) = Der aktuelle Wert der Summe der positiven Bewegungen während des Zeitraums

DnSum(i) = Der aktuelle Wert der Summe der negativen Bewegungen während des Zeitraums

Danach können wir den VIDYA-Indikator erhalten. Heutzutage müssen wir ihn nicht mehr manuell berechnen, sondern können ihn einfach aus den verfügbaren Indikatoren der Handelsplattform MetaTrader 5 auswählen und in das Chart einfügen. So fügen Sie sie ein.

Einfügen --> Indikatoren --> Trend --> Variable Index Dynamic Average

VIDYA Einfügen

Daraufhin wird das folgende Fenster mit den Indikatorparametern geöffnet:

VIDYA param

1 - die Periodenlänge des Chande Momentum Oscillator (CMO)

2 - die Periodenlänge des exponentiellen gleitenden Durchschnitts (EMA)

3 - die Preisart

4 - die Farbe der VIDYA-Linie

5 - der VIDYA-Linienstil

6 - die Dicke der VIDYA-Linie

Nachdem Sie alle vorherigen Parameter festgelegt und auf „OK“ gedrückt haben, wird der Indikator wie folgt an das Diagramm gestartet:

 VIDYA gestartet

Wie im vorherigen Chart zu sehen ist, läuft der Indikator auf dem Chart und stellt eine Linie über oder unter den Preisen dar, die auf seinem Wert und den Preisbewegungen basiert. Wenn wir die VIDYA-Linie über dem Preis sehen, bedeutet dies, dass es einen Abwärtstrend gibt und umgekehrt, wenn die VIDYA-Linie unter dem Preis liegt, bedeutet dies, dass es einen Aufwärtstrend gibt.


VIDYA - Strategie

In diesem Thema werden wir lernen, wie man den VIDYA-Indikator durch einfache Strategien, die auf dem Hauptkonzept dieses Indikators basieren, nutzen kann. Es ist besser, diesen Indikator mit anderen technischen Instrumenten oder Indikatoren zu kombinieren, um zuverlässigere und effektivere Ergebnisse zu erhalten. Denn es wird Ihnen mehr Einblicke aus vielen Perspektiven geben, und das ist eines der Merkmale der technischen Analyse.

    Strategie eins: VIDYA-Trendidentifikation

      Wir müssen ein Signal mit dem Trendtyp erhalten, ob es aufwärts oder abwärts geht, basierend auf dem Vergleich des aktuellen Schlusskurses und des aktuellen VIDYA mit seinen Standardeinstellungen (9,12). Wir müssen ein Signal mit einem Aufwärtstrend setzen, wenn der aktuelle Schlusskurs oberhalb des VIDYA liegt. Im anderen Fall müssen wir ein Signal mit einem Abwärtstrend erhalten, wenn der aktuelle Schlusskurs unter dem VIDYA liegt.

      Aktueller Schlusskurs > VIDYA --> Aufwärtstrend

      Aktueller Schlusskurs < VIDYA --> Abwärtstrend

        Strategie zwei: VIDYA One Crossover

          Wir müssen Kauf- oder Verkaufssignale erhalten, indem wir die gleichen Werte der vorherigen Strategie vergleichen. Wir erhalten ein Kaufsignal, wenn der aktuelle Schlusskurs oberhalb des VIDYA liegt. Umgekehrt, wenn der aktuelle Schlusskurs unter dem aktuellen VIDYA liegt, erhalten wir ein Verkaufssignal.

          Aktueller Schlusskurs > VIDYA --> Kaufsignal

          Aktueller Schlusskurs < VIDYA --> Verkaufssignal

            Strategie drei: VIDYA Two Crossover

              Wir erhalten Kauf- oder Verkaufssignale, indem wir den VIDYA mit seiner Einstellung (9, 12) und den VIDYA mit seiner Einstellung (20, 50) vergleichen. Wir erhalten ein Kaufsignal, wenn der VIDYA (9, 12) größer als der VIDYA (20, 50) wird. Im anderen Szenario, wenn die aktuelle VIDYA (9, 12) niedriger ist als die aktuelle VIDYA (20, 50), ist es ein Verkaufssignal.

              VIDYA (9, 12) > VIDYA (20, 50) --> Kaufsignal

              VIDYA (9, 12) < VIDYA (20, 50) --> Verkaufssignal

              Anhand der drei vorangegangenen einfachen Strategien haben wir gelernt, wie der VIDYA-Indikator auf der Grundlage des ihm zugrunde liegenden Konzepts zu verwenden ist.


              VIDYA - Blaupause der Strategie

              In diesem Thema werden wir einen Schritt-für-Schritt-Entwurf entwerfen, der uns helfen soll, unser Handelssystem für jede der genannten Strategien reibungslos zu erstellen.

                Strategie eins: VIDYA-Trendidentifikation

                  Gemäß dieser Strategie müssen wir ein Handelssystem erstellen, das zur Erzeugung von Signalen mit Trendcharakter verwendet werden kann. Das Handelssystem muss zwei Werte prüfen, nämlich den aktuellen Schlusskurs und den aktuellen VIDYA-Wert, um den Trendtyp zu bestimmen. Wenn der aktuelle Schlusskurs größer ist als der VIDYA-Wert, ist dies ein Signal, dass der Trend nach oben geht.

                  Das Handelssystem muss also einen Kommentar zum Diagramm mit den folgenden Werten liefern:

                  • Aufwärtstrend
                  • Aktueller Schlusskurs
                  • Aktueller VIDYA-Wert

                  Das andere Szenario: Wenn der aktuelle Schlusskurs niedriger ist als der aktuelle VIDYA-Wert, ist dies ein Signal, dass der Trend nach unten geht.

                  Das Handelssystem liefert also einen Kommentar auf dem Chart mit den folgenden Werten:

                  • Abwärtstrend
                  • Aktueller Schlusskurs
                  • Aktueller VIDYA-Wert

                  Das Folgenden ist die Blaupause dieser Strategie:

                   VIDYA Trendbestimmung Blaupause

                    Strategie zwei: VIDYA One Crossover

                      Gemäß dieser Strategie müssen wir ein Handelssystem entwickeln, das uns bei Kauf- oder Verkaufssignalen alarmiert. In dieser Strategie werden wir dieselben Werte des VIDYA zur Trendbestimmung verwenden, um unterschiedliche Signale zu erhalten. Das Handelssystem muss zwei Werte prüfen, nämlich den aktuellen Schlusskurs und den aktuellen VIDYA-Wert. Wenn der aktuelle Schlusskurs größer ist als der VIDYA-Wert, ist dies ein Kaufsignal.

                      Das Handelssystem muss also die folgenden Werte ausgeben:

                      • Kaufsignal (Buy signal)
                      • Aktueller Schlusskurs
                      • Aktueller VIDYA-Wert

                      Umgekehrt ist es ein Verkaufssignal, wenn der aktuelle Schlusskurs unter dem VIDYA liegt.

                      Das Handelssystem liefert also einen Kommentar auf dem Chart mit den folgenden Werten:

                      • Verkaufssignal (Sell signal)
                      • Aktueller Schlusskurs
                      • Aktueller VIDYA-Wert
                      Das Folgenden ist die Blaupause dieser Strategie:

                      VIDYA Eins Blaupause Kreuzen

                        Strategie drei: VIDYA Two Crossover

                          Nach diesem Artikel müssen wir ein Handelssystem erstellen, das zur Erzeugung von Kauf- und Verkaufssignalen verwendet werden kann. Wir müssen zwei Werte überprüfen, und zwar Strom (9, 12) VIDYA und Strom VIDYA (20, 50) kontinuierlich. Wenn der aktuelle Wert (9, 12) größer ist als der aktuelle Wert (20, 50), handelt es sich um ein Kaufsignal.

                          Das Handelssystem muss also die folgenden Werte ausgeben:

                          • Kaufsignal (Buy signal)
                          • Aktueller Schlusskurs
                          • Aktueller VIDYA (9, 12) Wert
                          • Aktueller VIDYA (20, 50) Wert

                          Im anderen Szenario, wenn der aktuelle (9, 12) VIDYA-Wert niedriger ist als der aktuelle (20, 50) VIDYA-Wert, ist dies ein Verkaufssignal.

                          Das Handelssystem muss also die folgenden Werte ausgeben:

                          • Verkaufssignal (Sell signal)
                          • Aktueller Schlusskurs
                          • Aktueller VIDYA (9, 12) Wert
                          • Aktueller VIDYA (20, 50) Wert

                          Das Folgenden ist die Blaupause dieser Strategie:


                          VIDYA Zwei Blaupause Kreuzen

                          Jetzt haben wir einen einfachen Schritt-für-Schritt-Plan für jede erwähnte Strategie entworfen, um unser automatisiertes Handelssystem zu erstellen und wir sind bereit, durch das interessanteste Thema des VIDYA Handelssystems zu gehen, um ein Handelssystem für jede Strategie zu erstellen. 


                          VIDYA - Handelssystem

                          Dieses einfache Handelssystem wird uns helfen, den aktuellen Wert des VIDYA-Indikators kontinuierlich zu sehen, da wir diesen Wert als Kommentar auf dem Chart sehen werden.

                          Die folgenden Schritte beschreiben, wie man ein Handelssystem erstellt, das genau das tut, was wir brauchen.

                          Wir werden ein Array für das „vidyaArray“ des Typs double, das zu den reellen Typen oder Fließkommatypen gehört, die Werte mit Brüchen darstellen.

                          double vidyaArray[];

                          Zweiter Schritt: Wir richten das erstellte Array mit der Funktion „ArraySetAsSeries“ aus, die einen booleschen Wert zurückgibt.

                          ArraySetAsSeries(vidyaArray,true);

                          Wir werden eine Integer-Variable für „vidyaDef“ erstellen, die der Definition des VIDYA-Indikators entspricht, indem wir die Funktion „iVIDyA“ verwenden, die das Handle des Indikators zurückgibt.

                          Die Parameter sind:

                          • Symbol: Wir verwenden _Symbol, das aktuelle Symbol.
                          • Zeitrahmen: Wir verwenden _Period, den aktuellen Zeitrahmen.
                          • cmo_period: Als Periodenlänge des Chande Momentum verwenden wir 9.
                          • ema_period: Als Glättungslänge des exponentiellen gleitenden Durchschnitts zu verwenden wir 12.
                          • ma_shift: Die horizontale Verschiebung auf dem Chart belassen wir bei 0.
                          • applied_price: Als Preistyp verwenden wir die Schlusskurse.
                          int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE);

                          Wir füllen das erstellte Array mit der Funktion „CopyBuffer“, um die Daten von VIDYA zu erhalten.

                          Parameter dieser Funktion:

                          • indicator_handle: Die Variable des Indikator-Handles (vidyaDef).
                          • buffer_num: Dient zur Bestimmung der Nummer des Indikatorpuffers, wir verwenden 0.
                          • start_pos: Als Startposition verwenden wir 0.
                          • Anzahl: Bestimmt die kopierende Anzahl, wir benötigen 3.
                          • buffer[]: Ist das zu kopierende Ziel-Array zu bestimmen, wir verwenden vidyaArray.
                          CopyBuffer(vidyaDef,0,0,3,vidyaArray);

                           Wir erhalten den Wert „vidyaVal“, nachdem wir eine Variable erstellt haben, um den Wert vom Typ double mit der Funktion „NormalizeDouble“ zurückzugeben.

                          Parameter dieser Funktion:

                          • Wert: Wir verwenden (fiArray[0]) für die zu normalisierende Zahl.
                          • Stellen: Wir verwenden 6 als Anzahl der Dezimalstellen nach dem Komma.
                          double vidyaVal = NormalizeDouble(vidyaArray[0],6);

                          Sechster Schritt: Wir erzeugen mit der Funktion Comment einen Kommentar auf dem Chart mit dem aktuellen Wert von VIDYA:

                          Comment("VIDYA Value is ",vidyaVal);

                          Also, können wir den vollständigen Code dieses Handelssystems die gleichen wie die folgenden finden:

                          //+------------------------------------------------------------------+
                          //|                                                 Simple VIDYA.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()
                            {
                             double vidyaArray[];
                          
                             ArraySetAsSeries(vidyaArray,true);
                          
                             int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE);
                          
                             CopyBuffer(vidyaDef,0,0,3,vidyaArray);
                          
                             double vidyaVal = NormalizeDouble(vidyaArray[0],6);
                          
                             Comment("VIDYA Value is ",vidyaVal);
                          
                            }
                          //+------------------------------------------------------------------+

                          Nach dem Kompilieren dieses Codes finden wir den Experten im Navigatorfenster des MetaTrader 5 wie folgt.

                           VIDYA nav

                          Wenn Sie diesen Experten auf das Chart ziehen, sehen Sie das Fenster dieses Programms wie das folgende:

                           Einfacher VIDYA Fenster

                          Nachdem Sie auf „OK“ geklickt haben, sehen Sie, dass der Experte auf dem Chart läuft, wie in der folgenden Abbildung dargestellt.

                          Einfaches VIDYA gestartet

                          Wie wir in der rechten oberen Ecke des vorherigen Charts sehen können, läuft der Experte. Dann können wir das gewünschte Signal zu finden, es erscheint wie folgt:

                           Einfaches VIDYA-Signal

                          Wie wir auf dem vorherigen Diagramm sehen können, haben wir den Kommentar in der oberen linken Ecke mit dem aktuellen VIDYA-Wert. Wenn wir sicherstellen wollen, dass wir den gleichen Wert wie den des eingebauten VIDYA-Indikators erhalten, können wir, nachdem wir den Experten angehängt haben, den integrierten Indikator mit den gleichen Einstellungen wie den Experten wie im Folgenden hinzufügen:

                           Einfaches VIDYA gleiches Signal

                          Wie wir auf dem vorherigen Chart sehen können, läuft der Experte auf dem Chart, wie wir in der oberen rechten Ecke sehen können, und wir haben den aktuellen Wert dieses Experten in der oberen linken Ecke des Diagramms und der integrierte Indikator läuft auf dem Chart und wir im rechten Datenfenster können wir seinen Wert sehen. Es ist offensichtlich, dass die beiden Werte gleich sind.

                            Strategie eins: VIDYA-Trendidentifikation

                              Wenn wir ein Handelssystem für diese Strategie erstellen wollen, ist nachfolgend der vollständige Code dieser Strategie:

                              //+------------------------------------------------------------------+
                              //|                                       VIDYA trend identifier.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()
                                {
                                 MqlRates priceArray[];
                                 double vidyaArray[];
                              
                                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
                                 ArraySetAsSeries(vidyaArray,true);
                              
                                 int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE);
                              
                                 CopyBuffer(vidyaDef,0,0,3,vidyaArray);
                              
                                 double currentClose=NormalizeDouble(priceArray[2].close,6);
                                 double vidyaVal = NormalizeDouble(vidyaArray[0],6);
                              
                                 if(currentClose>vidyaVal)
                                   {
                                    Comment("Uptrend","\n",
                                            "Current Close Value is ",currentClose,"\n",
                                            "Current VIDYA Value is ",vidyaVal);
                                   }
                              
                                 if(currentClose<vidyaVal)
                                   {
                                    Comment("Downtrend","\n",
                                            "Current Close Value is ",currentClose,"\n",
                                            "Current VIDYA Value is ",vidyaVal);
                                   }
                              
                              
                                }
                              //+------------------------------------------------------------------+

                              Unterschiede in diesem Code:

                              Erstellen von zwei Arrays für Preise mit der Funktion „MqlRates“ und für VIDYA vom Typ „double“, wie bereits erwähnt.

                                 MqlRates priceArray[];
                                 double vidyaArray[];

                              Für priceArray werden wir die Funktion „CopyRates“ verwenden, um historische Daten von „MqlRates“ zu erhalten. Die Parameter sind:

                              • Symbolname: Wir verwenden _Symbol.
                              • Zeitrahmen: Wir verwenden _Period.
                              • Startzeit: Wir verwenden 0.
                              • Stoppzeit: Wir verwenden 3.
                              • Preis-Array: Wir verwenden priceArray.

                              Auch vidyaArray werden wir mit der „ArraySetAsSeries“-Funktion wie wir zuvor beschrieben ausrichten.

                                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
                                 ArraySetAsSeries(vidyaArray,true);

                              Abrufen des aktuellen Schlusskurses und der aktuellen VIDYA-Werte.

                                 double currentClose=NormalizeDouble(priceArray[2].close,6);
                                 double vidyaVal = NormalizeDouble(vidyaArray[0],6);

                              Bedingungen für diese Strategie:

                              1. Im Falle eines Aufwärtstrends

                                 if(currentClose>vidyaVal)
                                   {
                                    Comment("Uptrend","\n",
                                            "Current Close Value is ",currentClose,"\n",
                                            "Current VIDYA Value is ",vidyaVal);
                                   }

                              2. Im Falle eines Abwärtstrends

                                 if(currentClose<vidyaVal)
                                   {
                                    Comment("Downtrend","\n",
                                            "Current Close Value is ",currentClose,"\n",
                                            "Current VIDYA Value is ",vidyaVal);
                                   }

                              Nachdem Sie diesen Code kompiliert und auf dem gewünschten Chart gestartet haben, sieht es wie folgt aus:

                              VIDYA-Trendidentifikation gestartetalt

                              Wie wir sehen können, ist der Experte VIDYA Trend Identifier angebracht, wie wir das in der oberen rechten Ecke des vorherigen Charts sehen können. Jetzt können wir anfangen, Signale von ihm zu empfangen. Einige Beispiele für diese Signale, die während des Tests erhalten wurden, sind unten dargestellt.

                              1. Im Falle eines Aufwärtstrends

                               VIDYA-Trendidentifikator - Aufwärtstrend-Signal

                              Wie in der vorangegangenen Grafik oben links zu sehen ist, ergeben sich die folgenden Werte:

                              • Aufwärtstrend (Uptrend)
                              • Aktueller Schlusskurs
                              • Aktueller VIDYA-Wert

                              2. Im Falle eines Abwärtstrends

                               VIDYA Trendidentifikator - Abwärtstrendsignal

                              Auf der Grundlage des vorherigen Diagramms können wir die folgenden Werte ermitteln:

                              • Abwärtstrend (Downtrend)
                              • Aktueller Schlusskurs
                              • Aktueller VIDYA-Wert
                                Strategie zwei: VIDYA One Crossover

                                  Im Folgenden der vollständige Code, der das Handelssystem für diese Strategie erstellt:

                                  //+------------------------------------------------------------------+
                                  //|                                          VIDYA one crossover.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()
                                    {
                                     MqlRates priceArray[];
                                     double vidyaArray[];
                                  
                                     int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
                                     ArraySetAsSeries(vidyaArray,true);
                                  
                                     int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE);
                                  
                                     CopyBuffer(vidyaDef,0,0,3,vidyaArray);
                                  
                                     double currentClose=NormalizeDouble(priceArray[2].close,6);
                                     double vidyaVal = NormalizeDouble(vidyaArray[0],6);
                                  
                                     if(currentClose>vidyaVal)
                                       {
                                        Comment("Buy signal","\n",
                                                "Current Close Value is ",currentClose,"\n",
                                                "Current VIDYA Value is ",vidyaVal);
                                       }
                                  
                                     if(currentClose<vidyaVal)
                                       {
                                        Comment("Sell signal","\n",
                                                "Current Close Value is ",currentClose,"\n",
                                                "Current VIDYA Value is ",vidyaVal);
                                       }
                                  
                                  
                                    }
                                  //+------------------------------------------------------------------+

                                  Unterschiede in diesem Code:

                                  Kommentar zu dieser Strategie.

                                  1. Im Falle eines Kaufsignals:

                                     if(currentClose>vidyaVal)
                                       {
                                        Comment("Buy signal","\n",
                                                "Current Close Value is ",currentClose,"\n",
                                                "Current VIDYA Value is ",vidyaVal);
                                       }

                                  2. Im Falle eines Verkaufssignals

                                     if(currentClose<vidyaVal)
                                       {
                                        Comment("Sell signal","\n",
                                                "Current Close Value is ",currentClose,"\n",
                                                "Current VIDYA Value is ",vidyaVal);
                                       }

                                  Kompilieren Sie diesen Code und starten Sie ihn wie folgt auf dem gewünschten Chart:

                                  VIDYA one Crossover gestartet

                                  Wie wir auf dem Chart in der oberen rechten Ecke sehen können, läuft der Experte. Danach erhalten wir auf der Grundlage dieser Strategie Kauf- und Verkaufssignale. Beispiele aus den Systemtests sind unten aufgeführt.

                                  1. Im Falle eines Kaufsignals:

                                  VIDYA One Crossover - Kaufsignal

                                  Wie wir auf dem vorherigen Diagramm in der oberen linken Ecke sehen können, können wir die folgenden Werte auf der Grundlage des VIDYA one Crossover finden:

                                  • Kaufsignal (Buy signal)
                                  • Aktueller Schlusskurs
                                  • Aktueller VIDYA-Wert

                                  2. Im Falle eines Verkaufssignals

                                   VIDYA one Überkreuzung - Verkaufssignal

                                  Wie in der vorangegangenen Grafik oben links zu sehen ist, ergeben sich die folgenden Werte:

                                  • Verkaufssignal (Sell signal)
                                  • Aktueller Schlusskurs
                                  • Aktueller VIDYA-Wert
                                    Strategie drei: VIDYA Two Crossover

                                      Im Folgenden finden Sie den vollständigen Code dieser VIDYA Two Crossover Strategie, um ein Handelssystem dafür zu erstellen.

                                      //+------------------------------------------------------------------+
                                      //|                                          VIDYA two crossover.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()
                                        {
                                         MqlRates priceArray[];
                                         double vidyaArray[];
                                         double vidyaArray1[];
                                      
                                         int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
                                         ArraySetAsSeries(vidyaArray,true);
                                         ArraySetAsSeries(vidyaArray1,true);
                                      
                                         int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE);
                                         int vidyaDef1 = iVIDyA(_Symbol,_Period,20,50,0,PRICE_CLOSE);
                                      
                                         CopyBuffer(vidyaDef,0,0,3,vidyaArray);
                                         CopyBuffer(vidyaDef1,0,0,3,vidyaArray1);
                                      
                                         double currentClose=NormalizeDouble(priceArray[2].close,6);
                                         double vidyaVal = NormalizeDouble(vidyaArray[0],6);
                                         double vidyaVal1 = NormalizeDouble(vidyaArray1[0],6);
                                      
                                         if(vidyaVal>vidyaVal1)
                                           {
                                            Comment("Buy signal","\n",
                                                    "Current Close Value is ",currentClose,"\n",
                                                    "Current VIDYA (9,12) Value is ",vidyaVal,"\n",
                                                    "Current VIDYA (20,50) Value is ",vidyaVal1);
                                           }
                                      
                                         if(vidyaVal<vidyaVal1)
                                           {
                                            Comment("Sell signal","\n",
                                                    "Current Close Value is ",currentClose,"\n",
                                                    "Current VIDYA (9,12) Value is ",vidyaVal,"\n",
                                                    "Current VIDYA (20,50) Value is ",vidyaVal1);
                                           }
                                      
                                      
                                        }
                                      //+------------------------------------------------------------------+

                                      Unterschiede in diesem Code:

                                      Erstellen von drei Arrays für Preis, vidyaArray und vidyaArray1

                                         MqlRates priceArray[];
                                         double vidyaArray[];
                                         double vidyaArray1[];

                                      Ausrichten dieser erstellten Arrays

                                         int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
                                         ArraySetAsSeries(vidyaArray,true);
                                         ArraySetAsSeries(vidyaArray1,true);

                                      Definition von „vidyaDef“ und „vidyaDef1“

                                         int vidyaDef = iVIDyA(_Symbol,_Period,9,12,0,PRICE_CLOSE);
                                         int vidyaDef1 = iVIDyA(_Symbol,_Period,20,50,0,PRICE_CLOSE);

                                      Füllen der Arrays „vidyaArray“ und „vidyaArray1

                                         CopyBuffer(vidyaDef,0,0,3,vidyaArray);
                                         CopyBuffer(vidyaDef1,0,0,3,vidyaArray1);

                                      Abrufen der Werte von currentClose, „vidyaVal“ und „vidyaVal1“

                                         double currentClose=NormalizeDouble(priceArray[2].close,6);
                                         double vidyaVal = NormalizeDouble(vidyaArray[0],6);
                                         double vidyaVal1 = NormalizeDouble(vidyaArray1[0],6);

                                      Bedingungen für Signale, die auf dieser Strategie basieren:

                                      1. Im Falle eines Kaufsignals:

                                         if(vidyaVal>vidyaVal1)
                                           {
                                            Comment("Buy signal","\n",
                                                    "Current Close Value is ",currentClose,"\n",
                                                    "Current VIDYA (9,12) Value is ",vidyaVal,"\n",
                                                    "Current VIDYA (20,50) Value is ",vidyaVal1);
                                           }

                                      2. Im Falle eines Verkaufssignals

                                         if(vidyaVal<vidyaVal1)
                                           {
                                            Comment("Sell signal","\n",
                                                    "Current Close Value is ",currentClose,"\n",
                                                    "Current VIDYA (9,12) Value is ",vidyaVal,"\n",
                                                    "Current VIDYA (20,50) Value is ",vidyaVal1);
                                           }

                                      Nachdem Sie diesen Code kompiliert und auf dem gewünschten Chart gestartet haben, sieht es wie folgt aus:

                                       VIDYA Two Crossover gestartet

                                      Wie wir auf dem Chart in der oberen rechten Ecke sehen können, läuft der Experte. Jetzt können wir auf der Grundlage dieser Strategie Kauf- und Verkaufssignale sehen. Im Folgenden sind einige Beispiele aus den Systemtests aufgeführt.

                                      Im Falle eines Kaufsignals:

                                      VIDYA Two Crossover - Kaufsignal

                                      Wie wir auf dem vorherigen Diagramm in der oberen linken Ecke sehen können, haben wir die folgenden Werte nach dem Crossover:

                                      • Kaufsignal (Buy signal)
                                      • Aktueller Schlusskurs
                                      • Aktueller (9,12) VIDYA-Wert
                                      • Aktueller (20,50) VIDYA-Wert

                                      Im Falle eines Verkaufssignals:

                                       VIDYA Two Crossover - Verkaufssignal

                                      Im anderen Szenario haben wir, wie im vorherigen Diagramm in der oberen linken Ecke zu sehen ist, folgende Werte nach dem Crossover:

                                      • Verkaufssignal (Sell signal)
                                      • Aktueller Schlusskurs
                                      • Aktueller (9,12) VIDYA-Wert
                                      • Aktueller (20,50) VIDYA-Wert


                                      Schlussfolgerung

                                      Jetzt und nach all den erwähnten Themen, wird davon ausgegangen, dass Sie jetzt wissen, was ist der Variable Index Dynamic Average (VIDYA) im Detail, wie wir mehr Themen durch diesen Artikel, die in der Lage sind zu klären, dass abgedeckt. Wir haben herausgefunden, was der Variable Index Dynamic Average (VIDYA) Indikator ist, was er misst, wie wir ihn manuell berechnen können, um das Hauptkonzept dahinter zu verstehen, und wie wir ihn in den Chart einfügen und ablesen können. All das haben wir durch das Thema der VIDYA-Definition gelernt. Dann lernten wir, wie wir ihn durch einfache Strategien auf der Grundlage des Hauptkonzepts hinter dem Indikator nutzen können, indem wir die folgenden Strategien zum Thema VIDYA-Strategie lernten:

                                      • VIDYA-Trendidentifikation: um Signale für den Trendtyp zu erhalten, handelt es sich um einen Aufwärtstrend oder einen Abwärtstrend.
                                      • VIDYA One Crossover-Strategie: um Kauf- oder Verkaufssignale zu erhalten, die auf dem Crossover zwischen Preisen und der VIDYA-Linie basieren.
                                      • VIDYA Two Crossover-Strategie: um Kauf- oder Verkaufssignale zu erhalten, die auf dem Crossover zwischen VIDYA mit den Einstellungen (9,12) und VIDYA mit den Einstellungen (20, 50) basieren.

                                      Ich hoffe, dass Sie versucht haben, Codes für das entworfene Handelssystem selbst zu schreiben, um Ihre Programmierfähigkeiten als Anfänger zu entwickeln, da dieses Üben ein sehr wichtiger Schritt ist, den Sie benötigen, um Ihr Verständnis zu vertiefen und Ihre Fähigkeiten zu verbessern, nicht nur in der Programmierung, sondern in jedem Lernprozess zu jedem Thema. Ich werde nicht vergessen, noch einmal zu bestätigen, dass Sie jede Strategie testen müssen, bevor Sie sie auf Ihrem realen Konto mit echtem Geld verwenden, da das Hauptkonzept dieses Artikels nur zu Bildungszwecken dient und Sie vielleicht feststellen, dass Sie sie optimieren oder ändern müssen, oder Sie können feststellen, dass sie nicht für Ihren Handelsstil geeignet sind, da es keine geeignete Strategie für jeden gibt.

                                      Ich hoffe, dass dieser Artikel für Sie nützlich war und Ihnen einen guten Einblick in das Thema des Artikels oder ein verwandtes Thema gegeben hat. Wenn Sie mehr ähnliche Artikel lesen möchten, um mehr über die beliebtesten technischen Indikatoren zu erfahren, wie man sie verwendet und wie man ein Handelssystem für sie entwirft, können Sie meine früheren Artikel in dieser Serie für Anfänger lesen, um mehr über sie zu erfahren, wie Sie Artikel über die Entwicklung eines Handelssystems durch RSI, MACD, Stochastik, gleitende Durchschnitte, Bollinger Bänder, Hüllkurven... und andere finden können, nachdem Sie mehr über diese technischen Indikatoren gelernt und verstanden haben.

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

                                      Einen handelnden Expert Advisor von Grund auf neu entwickeln (Teil 21): Neues Auftragssystem (IV) Einen handelnden Expert Advisor von Grund auf neu entwickeln (Teil 21): Neues Auftragssystem (IV)
                                      Schlussendlich wird das visuelle System in Betrieb genommen, obwohl es noch nicht vollständig ist. Hier finden die wichtigsten, gemachten Änderungen ein Ende. Es wird eine ganze Reihe weiterer geben, aber sie sind alle notwendig. Nun, die ganze Arbeit wird recht interessant sein.
                                      Datenwissenschaft und maschinelles Lernen — Neuronales Netzwerk (Teil 02): Entwurf von Feed Forward NN-Architekturen Datenwissenschaft und maschinelles Lernen — Neuronales Netzwerk (Teil 02): Entwurf von Feed Forward NN-Architekturen
                                      Bevor wir fertig sind, müssen wir noch einige kleinere Dinge im Zusammenhang mit dem neuronalen Feed-Forward-Netz behandeln, unter anderem den Entwurf. Sehen wir uns an, wie wir ein flexibles neuronales Netz für unsere Eingaben, die Anzahl der verborgenen Schichten und die Knoten für jedes Netz aufbauen und gestalten können.
                                      Lernen Sie, wie man ein Handelssystem mit dem DeMarker entwickelt Lernen Sie, wie man ein Handelssystem mit dem DeMarker entwickelt
                                      Hier ist ein neuer Artikel in unserer Serie darüber, wie man ein Handelssystem anhand der beliebtesten technischen Indikatoren entwickelt. In diesem Artikel stellen wir Ihnen vor, wie Sie ein Handelssystem mit dem Indikator DeMarker erstellen können.
                                      Neuronale Netze leicht gemacht (Teil 18): Assoziationsregeln Neuronale Netze leicht gemacht (Teil 18): Assoziationsregeln
                                      Als Fortsetzung dieser Artikelserie betrachten wir eine andere Art von Problemen innerhalb der Methoden des unüberwachten Lernens: die Ermittlung von Assoziationsregeln. Dieser Problemtyp wurde zuerst im Einzelhandel, insbesondere in Supermärkten, zur Analyse von Warenkörben eingesetzt. In diesem Artikel werden wir über die Anwendbarkeit solcher Algorithmen im Handel sprechen.