Indikatoren: FivePattern - Seite 6

 
nav_soft:

...Übrigens ist mir ein Muster bei der Optimierung der Suchmaschine aufgefallen, unabhängig vom Suchalgorithmus: Klassischer Zickzack oder andere, der Fehler bei der Vorhersage des nächsten Modells schwankt um 20 +/-1 %. Und das bringt mich zu der Annahme, dass A.Merrill entweder absichtlich 6 Muster (d.h. jeweils 3 M- und W-Zahlen) nicht beschrieben hat oder sie nicht erkannt hat.

Zuvor schrieb er, dass es 6 weitere Muster gibt . Dies ist eine irrtümliche Meinung. Hier ist ein einfaches Skript, das bestätigt, dass es 32 Muster gibt.

#include <Object.mqh>

#include <Arrays\ArrayObj.mqh>

//+------------------------------------------------------------------+

//| КЛАСС ХРАНЕНИЯ ПОЛУЧЕННЫХ ДАННЫХ                                 |

//+------------------------------------------------------------------+

class MyPPattern : public CObject

  {

private:

   double            A;

   double            B;

   double            C;

   double            D;

   double            E;

public:

                     MyPPattern(void){A=0;B=0;C=0;D=0;E=0;};

                     MyPPattern(double ia, double ib, double ic,

                                double id, double ie)

                                {A=ia;B=ib;C=ic;D=id;E=ie;};

                    ~MyPPattern(void){;};

   //+---------------------------------------------------------------+

   //| SET-МЕТОДЫ                                                    |

   //+---------------------------------------------------------------+

   void              SetA(double in){A = in;};

   void              SetB(double in){B = in;};

   void              SetC(double in){C = in;};

   void              SetD(double in){D = in;};

   void              SetE(double in){E = in;};

   //+---------------------------------------------------------------+

   //| GET-МЕТОДЫ                                                    |

   //+---------------------------------------------------------------+

   double            GetA(void){return(A);};

   double            GetB(void){return(B);};

   double            GetC(void){return(C);};

   double            GetD(void){return(D);};

   double            GetE(void){return(E);};

  };

//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

void OnStart()

  {

   //--- value

   int         filehandle,total;

   double      a=1,b=1,c=1,d=1,e=1,sum=0;

   string      subfolder="Research";

   CArrayObj*  Marray = new CArrayObj;

   CArrayObj*  Warray = new CArrayObj;

   MyPPattern* ppattern;

   //--- Простой поисковый массив

   while(true)

     {

      //--- 1. Инкримент

      a = a + 1;

      if(a > 5){a = 1;b = b + 1;};

      if(b > 5){b = 1;c = c + 1;};

      if(c > 5){c = 1;d = d + 1;};

      if(d > 5){d = 1;e = e + 1;};

      //--- 2. Выход из цикла

      if(e > 5) break;

      //--- 3. Сумматор

      sum = a+b+c+d+e;

      //--- 4. Запись данных

      if(sum == 15)

        {

         //--- Проверка: неравенства

         if(a!=b && a!=c && a!=d && a!=e && b!=c && 

            b!=d && b!=e && c!=d && c!=e && d!=e)

           {

            //--- Проверка: зиг-заг формации

            if(a<b && b>c && c<d && d>e)

              {//--- Формация M-волн

               ppattern = new MyPPattern(a,b,c,d,e);

               Marray.Add(ppattern);

              }

            if(a>b && b<c && c>d && d<e)

              {//--- Формация W-волн

               ppattern = new MyPPattern(a,b,c,d,e);

               Warray.Add(ppattern);

              }

           }

        }

     }

   //--- Сохранение M-данных

   ResetLastError();

   filehandle=FileOpen(subfolder+"\\SearchNewPatternM.csv",FILE_WRITE|FILE_CSV);

   if(filehandle!=INVALID_HANDLE)

     {

      total = Marray.Total();

      for(int i=0;i<total;i++)

        {

         ppattern = Marray.At(i);

         FileWrite(filehandle,ppattern.GetA(),ppattern.GetB(),ppattern.GetC(),

                   ppattern.GetD(),ppattern.GetE());

        }

      //--- Close file

      FileClose(filehandle);

     }

   else Print(__FUNCTION__,": ERROR FileOpen = ",GetLastError());

   //--- Сохранение W-данных

   ResetLastError();

   filehandle=FileOpen(subfolder+"\\SearchNewPatternW.csv",FILE_WRITE|FILE_CSV);

   if(filehandle!=INVALID_HANDLE)

     {

      total = Warray.Total();

      for(int i=0;i<total;i++)

        {

         ppattern = Warray.At(i);

         FileWrite(filehandle,ppattern.GetA(),ppattern.GetB(),ppattern.GetC(),

                   ppattern.GetD(),ppattern.GetE());

        }

      //--- Close file

      FileClose(filehandle);

     }

   else Print(__FUNCTION__,": ERROR FileOpen = ",GetLastError());

   //--- delet all objects

   delete Marray;

   delete Warray;

  }

//+------------------------------------------------------------------+


Und der Algorithmusfehler von 20 Prozent ist auf die späte Erkennung des Musters zurückzuführen. Ich habe das erst bemerkt, als ich ein doppeltes Muster getestet habe, hier ist eine Illustration:

Späte Erkennung eines Musters

 
nav_soft:

Vorhin habe ich geschrieben, dass es 6 weitere Muster gibt . Dies ist ein Irrtum. Hier ist ein einfaches Skript, das bestätigt, dass es 32 Muster gibt.

#include <Object.mqh>

#include <Arrays\ArrayObj.mqh>

//+------------------------------------------------------------------+

//| КЛАСС ХРАНЕНИЯ ПОЛУЧЕННЫХ ДАННЫХ                                 |

//+------------------------------------------------------------------+

class MyPPattern : public CObject

  {

private:

   double            A;

   double            B;

   double            C;

   double            D;

   double            E;

public:

                     MyPPattern(void){A=0;B=0;C=0;D=0;E=0;};

                     MyPPattern(double ia, double ib, double ic,

                                double id, double ie)

                                {A=ia;B=ib;C=ic;D=id;E=ie;};

                    ~MyPPattern(void){;};

   //+---------------------------------------------------------------+

   //| SET-МЕТОДЫ                                                    |

   //+---------------------------------------------------------------+

   void              SetA(double in){A = in;};

   void              SetB(double in){B = in;};

   void              SetC(double in){C = in;};

   void              SetD(double in){D = in;};

   void              SetE(double in){E = in;};

   //+---------------------------------------------------------------+

   //| GET-МЕТОДЫ                                                    |

   //+---------------------------------------------------------------+

   double            GetA(void){return(A);};

   double            GetB(void){return(B);};

   double            GetC(void){return(C);};

   double            GetD(void){return(D);};

   double            GetE(void){return(E);};

  };

//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

void OnStart()

  {

   //--- value

   int         filehandle,total;

   double      a=1,b=1,c=1,d=1,e=1,sum=0;

   string      subfolder="Research";

   CArrayObj*  Marray = new CArrayObj;

   CArrayObj*  Warray = new CArrayObj;

   MyPPattern* ppattern;

   //--- Простой поисковый массив

   while(true)

     {

      //--- 1. Инкримент

      a = a + 1;

      if(a > 5){a = 1;b = b + 1;};

      if(b > 5){b = 1;c = c + 1;};

      if(c > 5){c = 1;d = d + 1;};

      if(d > 5){d = 1;e = e + 1;};

      //--- 2. Выход из цикла

      if(e > 5) break;

      //--- 3. Сумматор

      sum = a+b+c+d+e;

      //--- 4. Запись данных

      if(sum == 15)

        {

         //--- Проверка: неравенства

         if(a!=b && a!=c && a!=d && a!=e && b!=c && 

            b!=d && b!=e && c!=d && c!=e && d!=e)

           {

            //--- Проверка: зиг-заг формации

            if(a<b && b>c && c<d && d>e)

              {//--- Формация M-волн

               ppattern = new MyPPattern(a,b,c,d,e);

               Marray.Add(ppattern);

              }

            if(a>b && b<c && c>d && d<e)

              {//--- Формация W-волн

               ppattern = new MyPPattern(a,b,c,d,e);

               Warray.Add(ppattern);

              }

           }

        }

     }

   //--- Сохранение M-данных

   ResetLastError();

   filehandle=FileOpen(subfolder+"\\SearchNewPatternM.csv",FILE_WRITE|FILE_CSV);

   if(filehandle!=INVALID_HANDLE)

     {

      total = Marray.Total();

      for(int i=0;i<total;i++)

        {

         ppattern = Marray.At(i);

         FileWrite(filehandle,ppattern.GetA(),ppattern.GetB(),ppattern.GetC(),

                   ppattern.GetD(),ppattern.GetE());

        }

      //--- Close file

      FileClose(filehandle);

     }

   else Print(__FUNCTION__,": ERROR FileOpen = ",GetLastError());

   //--- Сохранение W-данных

   ResetLastError();

   filehandle=FileOpen(subfolder+"\\SearchNewPatternW.csv",FILE_WRITE|FILE_CSV);

   if(filehandle!=INVALID_HANDLE)

     {

      total = Warray.Total();

      for(int i=0;i<total;i++)

        {

         ppattern = Warray.At(i);

         FileWrite(filehandle,ppattern.GetA(),ppattern.GetB(),ppattern.GetC(),

                   ppattern.GetD(),ppattern.GetE());

        }

      //--- Close file

      FileClose(filehandle);

     }

   else Print(__FUNCTION__,": ERROR FileOpen = ",GetLastError());

   //--- delet all objects

   delete Marray;

   delete Warray;

  }

//+------------------------------------------------------------------+


Und der Fehler des Algorithmus von 20 Prozent ist auf die späte Erkennung des Musters zurückzuführen. Ich habe das erst bemerkt, als ich ein doppeltes Muster getestet habe, hier ist eine Illustration:


Ich habe gehört, dass der Code komplett umgeschrieben wurde, wann kann ich dieses Wunder sehen?
 
ozhiganov:
Ich habe gehört, dass der Code komplett umgeschrieben wurde. Wann können wir uns mit diesem Wunder vertraut machen?

Es gibt eine Menge Änderungen:

1. Der Indikator ist "binär" geworden: Das ältere Muster ist auf Stundenbasis definiert, das jüngere arbeitet auf Minutenbasis ("traders' approach" - ich weiß nicht, ob ich die Zeit haben werde, die Markierung der Grenzen der Handelssitzungen hinzuzufügen). Das gemeinsame Muster wird auf einem Chart angezeigt, so dass es einen Algorithmus gibt, der den vollen Wert des Zeitextremums des älteren Musters wiederherstellt;

2. Die Klasse MyCExtremum ist neu geschrieben: a) der klassische Zig-Zag bleibt; b) eine Modifikation des Zig-Zag mit einem prozentualen Schritt; c) und mein experimentelles Fraktal (Extrema) + prozentualer Schritt (auf den Bildern ist es das in Arbeit);

3. Im Algorithmus der Erkennung des ersten Punktes des älteren Modells wird die Bedingung des Überschreitens der Grenzen der Bollinger Bänder überprüft, der Algorithmus beobachtet diese Bedingung auch an anderen Punkten, ich denke, auf dieser Grundlage können wir die Genauigkeit eines bestimmten Modells und seine aktuelle Vollständigkeit beurteilen (hier gibt es Schwierigkeiten... es gibt noch keinen klaren Algorithmus);

4. Grafiken: Ich habe mich entschieden, fertige ElliotWave5-Objekte zu verwenden;

Wird sehr bald veröffentlicht werden. Während des Testens... und das verschlingt mehr Zeit als das Entwerfen.

 
nav_soft:

Es gibt eine Reihe von Änderungen:

1. der Indikator ist "binär" geworden: das ältere Muster ist auf stündlichen Perioden definiert, das jüngere arbeitet auf Minuten ("traders' approach" - ich weiß nicht, ob ich Zeit haben werde, die Markierung der Grenzen der Handelssitzung hinzuzufügen). Das gemeinsame Muster wird auf einem Chart angezeigt, so dass es einen Algorithmus gibt, der den vollen Wert des Zeitextremums des älteren Musters wiederherstellt;

2. Die Klasse MyCExtremum wurde neu geschrieben: a) der klassische Zig-Zag bleibt; b) eine Modifikation des Zig-Zag mit einem prozentualen Schritt; c) und mein experimentelles Fraktal (Extrema) + prozentualer Schritt (auf den Bildern ist es das in Arbeit);

3. Im Algorithmus der Erkennung des ersten Punktes des älteren Modells wird die Bedingung des Überschreitens der Grenzen der Bollinger Bänder überprüft, der Algorithmus beobachtet diese Bedingung auch an anderen Punkten, ich denke, auf dieser Grundlage können wir die Genauigkeit eines bestimmten Modells und seine aktuelle Vollständigkeit beurteilen (hier gibt es Schwierigkeiten... es gibt noch keinen klaren Algorithmus);

4. Grafiken: Ich habe mich entschieden, fertige ElliotWave5-Objekte zu verwenden;

Wird sehr bald veröffentlicht werden. Während des Testens... was mehr Zeit verschlingt als das Entwerfen.

Ich freue mich darauf!!!
 

Start des Feldtests von Five Wave Signal/Advisor: https: //www.mql5.com/ru/signals/98850. Der Expert Advisor generiert Handelssignale auf der Grundlage der Prognose des FivePattern-Indikators.

Торговые сигналы для MetaTrader 5: Five Wave indicator Five Pattern
Торговые сигналы для MetaTrader 5: Five Wave indicator Five Pattern
  • Andrey Emelyanov
  • www.mql5.com
Сигнал от советника Five Wave. Торговые правила советника генерируются на индикаторе FivePattern . Скачать индикатор FivePattern и ознакомиться с его работой можно по ссылке .
 
nav_soft:

Начал полевые испытания сигнала/советника Five Wave: https://www.mql5.com/de/signals/98850 . Советник генерирует торговые сигналы на основе прогноза от индикатора FivePattern.

nav_soft
:

Start des Feldtests von Five Wave Signal/Advisor: https: //www.mql5.com/ru/signals/98850. Der Expert Advisor generiert Handelssignale auf der Grundlage der Prognose des FivePattern-Indikators.

Toll, ich warte schon lange darauf, wird der Indikator in der Code Base aktualisiert?
 
ozhiganov:
Toll, ich habe lange gewartet, wird der Indikator in der Code Base aktualisiert werden?
Ja. 18.04.2015 - Ich werde den Code den Moderatoren zur Prüfung vorlegen und ihn als Archiv ins Forum stellen.
[Gelöscht]  

HEAVY!!!! Hut ab vor dem Entwickler!

Ich mochte die Tatsache, dass es etwas Neues, absolut anders als die anderen war. Fast wie ein Know-how.

[Gelöscht]  
Danke an den Entwickler, ich warte auf die aktualisierte Version, es ist bereits der 20. April)
 
Guten Morgen, wie man diesen Indikator in mt5 installieren? meine E-Mail felipebm1@hotmail.com danke