FE 斐波那契扩展 - 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.mq4 (7.93 KB)
Source: MQL5 #31891
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
