欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

FE 斐波那契扩展 - MetaTrader 4脚本

author emer | 967 人阅读 | 0 人评论 |

FE Fibo Expansion - indicator for MetaTrader 4

各位交易者大家好..

这是我使用数组中的 2 个对象(P[2])创建的 FE 斐波那契扩展,这些对象表示每个向上或向下方向的属性。

这是一个类:

班级___
  {民众:
  整数   aa、bb、cc;
  双倍的   一个,
   乙,
   C;
                     ___():
                     啊(0),bb(0),抄送(0),
                     一个(0.0),B(0.0),C(0.0)
     {}
                    〜___(){}
  } P[2];

然后,我使用分形公式并进行一些修改来确定三个点的上限、下限以及它们之间的价格及其方向。

我使用最近酒吧位置的循环:

//---  整数我=0;
  整数米=0,n=0;
  布尔值停止=错误的;
  双倍的你好=0.0,lo=0.0;//---   A=0.0;
   B=0.0;
   C=0.0;
  为了(米=0,n=0,我=0;我<酒吧-5&&!停止;我++)
     {
      你好=(
            爱高_象征,0,我+2)>=爱高_象征,0,我+0)&&
            爱高_象征,0,我+2)>=爱高_象征,0,我+1)&&
            爱高_象征,0,我+2)>=爱高_象征,0,我+3)&&
            爱高_象征,0,我+2)>=爱高_象征,0,我+4))
         ?爱高_象征,0,我+2):0.0;
      洛=(
            _象征,0,我+2)<=_象征,0,我+0)&&
            _象征,0,我+2)<=_象征,0,我+1)&&
            _象征,0,我+2)<=_象征,0,我+3)&&
            _象征,0,我+2)<=_象征,0,我+4))
         ?_象征,0,我+2):0.0;
      //---      //---      //------------------------------------------------------------------------------------------------------------------------      //------------------------------------------------------------------------------------------------------------------------      如果(嗨!=0.0//  -  -  -  -  -  - 向上 -  -  -  -  -  -         {
        如果(P[1].C!=0.0)
           {
            如果(n==2)
              {
              如果(P[1].B1].C1].B)
                 {
                  P[1].B=嗨;  //在A[1]存在之前修改B[1]                  P[1].bb=i+2;
                 }
              }
            如果(n==1)
              {
              如果(P[1].C<嗨)
                 {
                  P[1].B=嗨;  //这个B[1] dn                  P[1].bb=i+2;
                  n++;
                 }
              别的                 {
                  n--;
                  P[1].C=0.0;
                 }
              }
           }
        //---        如果(P[0].C==0.0)
           {
            如果(米<1)
              {
               P[0].C=嗨;  //初始C[0]向上               P[0].cc=i+2;
               米++;
              }
           }
        别的           {
            如果(米==2)
              {
              如果(P[0].C<嗨)
                 {
                  P[0].A=嗨;  //这个A[0]向上                  P[0].aa=i+2;
                  米=0;
                  停止=真的;
                 }
              }
            如果(米==1)
              {
              如果(P[0].C<嗨)
                 {
                  P[0].C=嗨;  //在B[0]存在之前修改C[0]                  P[0].cc=i+2;
                 }
              }
           }
        //---        }
      //别的      如果(瞧!=0.0// ------------dn------------        {
        如果(P[0].C!=0.0)
           {
            如果(米==2)
              {
              如果(P[0].B>lo&&P[0].C>P[0].B)
                 {
                  P[0].B=lo;  //在A[0]存在之前修改B[0]                  P[0].bb=i+2;
                 }
              }
            如果(米==1)
              {
              如果(P[0].C>lo)
                 {
                  P[0].B=lo;  //这个B[0]向上                  P[0].bb=i+2;
                  米++;
                 }
              别的                 {
                  米——;
                  P[0].C=0.0;
                 }
              }
           }
        //---        如果(P[1].C==0.0)
           {
            如果(n<1)
              {
               P[1].C=lo;  //初始C[1] dn               P[1].cc=i+2;
               n++;
              }
           }
        别的           {
            如果(n==2)
              {
              如果(P[1].C>lo)
                 {
                  P[1].A=lo;  //这个A[1] dn                  P[1].aa=i+2;
                  n=0;
                  停止=真的;
                 }
              }
            如果(n==1)
              {
              如果(P[1].C>lo)
                 {
                  P[1].C=lo;  //在B[1]存在之前修改C[1]                  P[1].cc=i+2;
                 }
              }
           }
        //---        }
      //别的      //      //---      //---      //---      如果((P[0].C==0.0&&P[1].C==0.0)||(嗨==0.0&&lo==0.0))
        {
        继续;
        }

     }// 环形

如果找到 UP 或 DOWN 方向的 3 个点,则循环中断。

我得早点拿出3分。

  如果(P[0].A!=0.0&&P[0].B!=0.0&&P[0].C!=0.0)
     {
      绘制扩展(工具,“FE->”,时间[P[0].aa],P[0].A,时间[P[0].bb],P[0].B,时间[P[0].cc],P[0].C,-1);
     }//---  如果(P[1].A!=0.0&&P[1].B!=0.0&&P[1].C!=0.0)
     {
      绘制扩展(工具,“FE->”,时间[P[1].aa],P[1].A,时间[P[1].bb],P[1].B,时间[P[1].cc],P[1].C,1);
     }

最后使用 OBJ_EXPANSION 对象进行绘制..并且我使用单个函数 DrawExpansion(...)。

空白绘制展开(细绳姓名,细绳标签,日期时间t1,双倍的p1,日期时间t2,双倍的p2,日期时间t3,双倍的p3,整数佛罗里达=0)
  {//---  对象删除(姓名);
  颜色wrn=(fl>0)?clr天蓝:(fl<0)?番茄清白;
  如果对象查找0,名字)!=0)
      对象创建(姓名,OBJ_EXPANSION,0,t1,p1,t2,p2,t3,p3);
   对象集(名称,OBJPROP_FIBOLEVELS,5);
   对象集(名称,OBJPROP_FIRSTLEVEL+0,0.618);
   对象集(名称,OBJPROP_FIRSTLEVEL+1,1.000);
   对象集(名称,OBJPROP_FIRSTLEVEL+2,1.618);
   对象集(名称,OBJPROP_FIRSTLEVEL+3,2.618);
   对象集(名称,OBJPROP_FIRSTLEVEL+4,4.236);//---   对象集(名称,OBJPROP_LEVELCOLOR,clr中紫色);
   对象集(名称,OBJPROP_LEVELWIDTH,1);
   对象集(名称,OBJPROP_LEVELSTYLE,0);
   对象集(名称,OBJPROP_COLOR,警告);//---   ObjectSetFiboDescription(名称,0,标签+“  ”+DoubleToStr(0.618*100,1)+“  ”);
   ObjectSetFiboDescription(名称,1,标签+“  ”+DoubleToStr(1.000*100,1)+“  ”);
   ObjectSetFiboDescription(名称,2,标签+“  ”+DoubleToStr(1.618*100,1)+“  ”);
   ObjectSetFiboDescription(名称,3,标签+“  ”+DoubleToStr(2.618*100,1)+“  ”);
   ObjectSetFiboDescription(名称,4,标签+“  ”+DoubleToStr(4.236*100,1)+“  ”);//---  }

FE Fibo Expansion - indicator for MetaTrader 4


附件下载

📎 fe.mq4 (7.93 KB)

Source: MQL5 #31891

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录