指标: 五点范式 - 页 6

 
nav_soft:

......顺便说一下,我在优化搜索引擎时注意到一种模式,无论搜索算法是什么:经典之字形算法或其他算法,预测下一个模式的误差都在20 +/-1 % 左右。这让我想到,A.Merrill 要么是故意不描述 6 种模式(即每种模式有 3 个 M 和 W 数字),要么就是没有发现它们。

他早些时候写道,还有 6 种模式。这是一个错误的观点 这里有一个简单的脚本,可以证实有 32 种模式

#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;

  }

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


20% 的算法误差是由于模式检测较晚造成的。我是在测试了一个双图案后才注意到这一点的,下面是一个示例:

模式检测较晚

 
nav_soft:

我之前写道,还有 6 种模式。这是一个误解 这里有一个简单的脚本,可以证实有 32 种模式

#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;

  }

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


而算法中20% 的误差是由于模式检测过晚造成的。我是在测试了一个双图案后才注意到这一点的,下面是一个示例:


我知道代码已经完全重写了,我什么时候能看到这个奇迹呢?
 
ozhiganov:
我知道代码已经完全重写,我们什么时候才能熟悉这个奇迹?

有很多变化:

1. 指标变成了 "二进制":旧模式以小时为单位,新模式以分钟为单位("交易者的方法"--我不知道是否有时间添加交易时段 边界的标记)。共同形态显示在一张图表上,因此有一种算法可以还原高级形态时间极值的全部值;

2.2. 重写了 MyCExtremum 类:a) 保留经典的 Zig-Zag;b) 对 Zig-Zag 进行修改,加入百分比步长;c) 以及我的实验分形(极值)+百分比步长(图片上是工作中的分形);

3.3. 在高级模型第一点的检测算法中,检查了超越布林线边界的条件,该算法还观察了其他点的这一条件,我认为在此基础上,我们可以判断某个模型的准确性及其当前的完整性(这里存在困难......目前还没有明确的算法);

4.图形:决定使用现成的 ElliotWave5 对象;

将很快发布。在测试过程中...这比设计花费更多的时间。

 
nav_soft:

有很多变化:

1. 指标变成了 "二进制":高级形态以小时为单位,初级形态以分钟为单位("交易者的方法"--我不知道是否有时间添加交易时段 边界的标记)。普通形态显示在一张图表上,因此有一种算法可以还原高级形态时间极值的全部值;

2.2. 重写了 MyCExtremum 类:a) 保留经典的 Zig-Zag;b) 对 Zig-Zag 进行修改,加入百分比步长;c) 以及我的实验分形(极值)+百分比步长(图片上是工作中的那个);

3.3. 在高级模型第一点的检测算法中,检查了超越布林线边界的条件,该算法还观察了其他点的这一条件,我认为在此基础上,我们可以判断某个模型的准确性及其当前的完整性(这里存在困难......目前还没有明确的算法);

4.图形:决定使用现成的 ElliotWave5 对象;

将很快发布。测试时...这比设计更花时间。

非常期待
 

开始实地测试五浪信号/顾问: https://www.mql5.com/zh/signals/98850 。Expert Advisor 根据 FivePattern 指标的预测生成交易信号。

Торговые сигналы для 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/zh/signals/98850 . Советник генерирует торговые сигналы на основе прогноза от индикатора FivePattern.

nav_soft
:

开始实地测试五浪信号/顾问: https://www.mql5.com/zh/signals/98850 。Expert Advisor 根据 FivePattern 指标的预测生成交易信号。

太好了,我等了很久了,代码库中的指标会更新吗?
 
ozhiganov:
太好了,我等了很久了,代码库中的指标会更新吗?
是的。18.04.2015 - 我会将代码提交给版主检查,并将其作为存档发布在论坛上。
[删除]  

HEAVY!!!!为开发者点赞!

我喜欢这款游戏的新颖之处,与其他游戏截然不同。几乎就像一种诀窍。

[删除]  
感谢开发者,等待更新版本,现在已经是 4 月 20 日了)
 
早上好,如何在 mt5 中安装该指标?我的电子邮件地址是 felipebm1@hotmail.com,谢谢。