设为首页 收藏本站 切换语言
| 发表于 2025-6-26 21:52:30 | 显示全部楼层 |复制链接
指标名称:ZIGFIBO_V5 (ZFV5 )[color=rgba(0, 0, 0, 0.9)]
版本:MT4 ver. 5.01

ZIGFIBO_V5(ZFV5 ) 是一款结合 ZigZag 折线、斐波那契扩展工具、趋势线及实时监控功能的 MT4 技术指标。它能自动识别价格波动的高低点,并通过斐波那契扩展线、箭头信号和止损线辅助交易决策,适合趋势跟踪和支撑阻力分析。
image.jpg
核心功能说明
1. ZigZag 折线  
  • 自动标记价格的高点和低点,形成折线,帮助识别趋势反转点。  
  • 注意:ZigZag 可能因新数据出现而重绘,建议结合其他指标确认信号。  


2. 买入/卖出信号  
  • 绿色箭头:在 ZigZag 低点后出现,提示潜在买入机会。  
  • 品红箭头:在 ZigZag 高点后出现,提示潜在卖出机会。  
  • 红色止损线:显示当前交易的止损位置。


3. 斐波那契扩展线  
基于 ZigZag 的三个连续转折点绘制,显示多个斐波那契水平(如 0.618、1.618),用于预测价格目标。  
4. 趋势线与 Pitchfork  
  • 趋势线:连接历史高低点,辅助判断支撑阻力。  
  • Pitchfork:通过中线轨道提示价格可能的波动范围。


5. 实时监控面板  
右上角显示当前点差(Spread)和当前 K 线剩余时间,便于管理交易时机。  
使用示例
1. 趋势交易  
  • 当 ZigZag 出现连续低点后,若绿色箭头出现且价格突破斐波那契 0.618 水平,可考虑买入。  
  • 止损设在红色止损线下方,目标参考斐波那契 1.618 或 Pitchfork 上轨。  

2. 支撑阻力交易  
价格接近趋势线或 Pitchfork 下轨时,若出现卖出箭头,可结合斐波那契扩展线做空。  
参数:
image.jpg
指标计算参数
nBArrowSize:指标计算柱数
ZigZagBars:普通周期ZigZag柱数
ZigZag图形参数
ZigZagBarsM1:M1周期专用值
LineZigZagWidth:ZigZag线宽
LineZigZagColor:ZigZag线色
ArrowSize:箭头尺寸
LineWidth:信号线宽
LineColorSell:卖出信号色
LineColorBuy:买入信号色
LineColorStopLoss:止损线色
斐波那契参数
ExtFiboExpansionColor:斐波线颜色
ExtExpansionStyle:斐波线型
ExtExpansionWidth:斐波线宽
FiboExp:启用斐波扩展
ShowArrow:显示箭头
ShowHLine:显示水平线
监控面板参数
Clock_Color:信息颜色
Corner:面板位置
FontSize:字体大小
XDISTANCE:水平偏移
YDISTANCE:垂直偏移
音叉线参数
Pitchwork1:启用音叉类型1
Pitchwork2:启用音叉类型2
PitchWorkstyle:音叉1样式
PitchWorksWIDTH:音叉1线宽
clrPitchWorkBuy:买入音叉色
clrPitchWorkSell:卖出音叉色
PitchWorkstyle2:音叉2样式
PitchWorksWIDTH2:音叉2线宽
趋势线参数
TreandLines1:启用趋势线1
TreandLinesStyle1:趋势线1样式
TreandLines1WIDTH:趋势线1宽
TreandLines1clr:趋势线1颜色
TreandLines2:启用趋势线2
TreandLinesStyle2:趋势线2样式
部分代码展示:

  1. //+------------------------------------------------------------------+//|                                                    ZIGFIBO_V5 .mq4 |//|                                Copyright © 2009-2024, www.QChaos.com |//|                                          https://www.qchaos.com/ |//+------------------------------------------------------------------+#property indicator_chart_window#property indicator_buffers 1
  2. //------------------------------------------// 参数分组:指标计算设置//------------------------------------------extern string ______________0______________  =  "指标计算所用柱数设置";  // 分组标题extern int     nBArrowSize                   =  618;                  // 指标计算柱数
  3. extern string ______________1______________  =  "ZigZag计算柱数设置";  // 分组标题extern int     ZigZagBars                    =  6;                    // 普通周期ZigZag计算柱数
  4. //------------------------------------------// 参数分组:ZigZag图形设置//------------------------------------------extern string ______________2______________  =  "M1周期ZigZag设置";    // 分组标题extern int     ZigZagBarsM1                  =  15;   // M1周期专用值(其他周期用6)extern int     LineZigZagWidth               =  2;    // ZigZag线宽度extern color   LineZigZagColor               =  Blue; // ZigZag线颜色extern int     ArrowSize                     =  2;    // 箭头大小extern int     LineWidth                     =  5;    // 信号线宽度extern color   LineColorSell                 =  Magenta; // 卖出信号颜色extern color   LineColorBuy                  =  Green;  // 买入信号颜色extern color   LineColorStopLoss             =  Red;    // 止损线颜色
  5. //------------------------------------------// 参数分组:斐波那契扩展设置//------------------------------------------extern string ______________3______________  =  "斐波那契扩展参数";    // 分组标题extern color   ExtFiboExpansionColor         =  Olive; // 斐波那契线颜色extern int     ExtExpansionStyle             =  2;     // 斐波那契线型(0-4)extern int     ExtExpansionWidth             =  0;     // 斐波那契线宽extern bool    FiboExp                       =  true;  // 启用斐波那契扩展extern bool    ShowArrow                     =  true;  // 显示交易箭头extern bool    ShowHLine                     =  true;  // 显示水平线
  6. //------------------------------------------// 参数分组:监控面板设置//------------------------------------------extern string ______________4______________  =  "监控面板参数";        // 分组标题extern color   Clock_Color                   =  DarkBlue;    // 信息显示颜色extern string  Corner_Placement              =  "1为右上角 3为右下角"; // 位置说明extern int     Corner                        =  1;     // 面板位置(1/3)extern int     FontSize                      =  10;    // 字体大小extern int     XDISTANCE                     =  30;    // 水平偏移量extern int     YDISTANCE                     =  30;    // 垂直偏移量string         objname                       =  "Spread&Bar"; // 对象名称
  7. //------------------------------------------// 参数分组:音叉线设置//------------------------------------------extern string ______________5______________  =  "音叉线参数";          // 分组标题extern bool    Pitchwork1                    =  true;  // 启用音叉线类型1extern bool    Pitchwork2                    =  true;  // 启用音叉线类型2extern int     PitchWorkstyle                =  2;     // 音叉线1样式extern int     PitchWorksWIDTH               =  1;     // 音叉线1宽度extern color   clrPitchWorkBuy               =  Green; // 买入音叉颜色extern color   clrPitchWorkSell              =  Red;   // 卖出音叉颜色extern int     PitchWorkstyle2               =  1;     // 音叉线2样式extern int     PitchWorksWIDTH2              =  2;     // 音叉线2宽度extern color   clrPitchWorkBuy2              =  Green; // 买入音叉2颜色extern color   clrPitchWorkSell2             =  Red;   // 卖出音叉2颜色
  8. //------------------------------------------// 参数分组:趋势线设置//------------------------------------------extern string ______________6______________  =  "支撑阻力线参数";      // 分组标题extern bool    TreandLines1                  =  true;  // 启用趋势线1extern int     TreandLinesStyle1             =  3;     // 趋势线1样式extern int     TreandLines1WIDTH             =  3;     // 趋势线1宽度extern color   TreandLines1clr               =  clrTeal; // 趋势线1颜色extern bool    TreandLines2                  =  true;  // 启用趋势线2extern int     TreandLinesStyle2             =  3;     // 趋势线2样式extern int     TreandLines2WIDTH             =  3;     // 趋势线2宽度extern color   TreandLines2clr               =  clrPurple; // 趋势线2颜色
  9. //+------------------------------------------------------------------+// 全局变量声明double SetArrowUp[],SetArrowDn[],EMB[];int shift;//+------------------------------------------------------------------+//+------------------------------------------------------------------+int init()  {   SetIndexStyle(0,1,DRAW_SECTION,LineZigZagWidth,LineZigZagColor);   SetIndexBuffer(0,EMB);   SetIndexEmptyValue(0,0.0);//----   ObjectCreate(objname, OBJ_LABEL,          0, 0, 0);   ObjectSet(objname, OBJPROP_CORNER,     Corner);   ObjectSet(objname, OBJPROP_XDISTANCE,  XDISTANCE);   ObjectSet(objname, OBJPROP_YDISTANCE,  YDISTANCE);//----   return(0);  }//+------------------------------------------------------------------+//|                                                                  |//+------------------------------------------------------------------+int deinit()  {   ObjectDelete("Buy");   ObjectDelete("Sell");   ObjectDelete("Buy Line");   ObjectDelete("Sell Line");   ObjectDelete("StopLoss Buy");   ObjectDelete("StopLoss Sell");   ObjectDelete("Fibo1");   ObjectDelete("Fibo2");   ObjectDelete("PitchWorksBuy");   ObjectDelete("PitchWorksSell");   ObjectDelete("PitchWorksBuy2");   ObjectDelete("PitchWorksSell2");   ObjectDelete("TreandLines1");   ObjectDelete("TreandLines2");   ObjectDelete(objname);   Comment("");   return(0);  }//+------------------------------------------------------------------+//|                                                                  |//+------------------------------------------------------------------+int start()  {   if(Period()==1)      ZigZagBars = ZigZagBarsM1;   int WF,SW,ND,i,ZZU,ZZD,PP,T1,T2,T3,T4,T5;   double LL,HH,BeHigh,BeLow;   double UNIT[10000][3];
  10.    double vbid    = MarketInfo(Symbol(),    MODE_BID);   double vask    = MarketInfo(Symbol(),     MODE_ASK);   double vpoint  = MarketInfo(Symbol(),     MODE_POINT);   int    vdigits = (int)MarketInfo(Symbol(),MODE_DIGITS);   int    vspread = (int)MarketInfo(Symbol(),MODE_SPREAD);   int    koeff;
  11.    if(vdigits==0)      koeff    = 1;   if(vdigits==1)      koeff    = 10;   if(vdigits==2)      koeff    = 100;   if(vdigits==3)      koeff    = 1000;   if(vdigits==4)      koeff    = 10000;   if(vdigits==5)      koeff    = 100000;   if(vdigits==6)      koeff    = 1000000;
  12.    SW       =  0;   WF       =  0;   ND       =  0;   BeHigh   =  High  [nBArrowSize];   BeLow    =  Low   [nBArrowSize];   ZZU      =         nBArrowSize;   ZZD      =         nBArrowSize;
  13. //Time to bar expiry   int m,s;
  14.    m=Time[0]+Period()*60-CurTime();   s=m%60;   m=(m-s)/60;
  15.    string _sp="",_m="",_s="";   if(vspread<10)      _sp="..";   else      if(vspread<100)         _sp=".";   if(m<10)      _m="0";   if(s<10)      _s="0";
  16.    for(shift=nBArrowSize; shift>=0; shift--)     {      LL =  100000;      HH = -100000;      for(i=shift+ZigZagBars; i>=shift+1; i--)        {         if(Low< LL)           {            LL=Low;           };         if(High>HH)           {            HH=High;           };        };      if(Low[shift]<LL && High[shift]>HH)        {         WF=2;         if(SW==1)           {            ZZU=shift+1;           };         if(SW==-1)           {            ZZD=shift+1;           };        }      else        {         if(Low[shift]<LL)           {            WF=-1;           };         if(High[shift]>HH)           {            WF=1;           };        };      if(WF!=SW && SW!=0)        {         if(WF==2)           {            WF=-SW;            BeHigh = High[shift];            BeLow = Low[shift];           };         ND=ND+1;         if(WF==1)           {            UNIT[ND][1]=ZZD;            UNIT[ND][2]=BeLow;           };         if(WF==-1)           {            UNIT[ND][1]=ZZU;            UNIT[ND][2]=BeHigh;           };         BeHigh = High[shift];         BeLow = Low[shift];        };      if(WF==1)        {         if(High[shift]>=BeHigh)           {            BeHigh=High[shift];            ZZU=shift;           };        };      if(WF==-1)        {         if(Low[shift]<=BeLow)           {            BeLow=Low[shift];            ZZD=shift;           };        };      SW=WF;     };
  17.    for(i=1; i<=ND; i++)     {      PP          =  StrToInteger(DoubleToStr(UNIT    [1],0));      T1          =  StrToInteger(DoubleToStr(UNIT    [1],0));      T2          =  StrToInteger(DoubleToStr(UNIT[i-1]  [1],0));      T3          =  StrToInteger(DoubleToStr(UNIT[i-2]  [1],0));      T4          =  StrToInteger(DoubleToStr(UNIT[i-3]  [1],0));      T5          =  StrToInteger(DoubleToStr(UNIT[i-4]  [1],0));
  18.       EMB[PP]     =  UNIT[2];
  19.       double   s1          =  UNIT[i  ][2];      double   s2          =  UNIT[i-1][2];      double   s3          =  UNIT[i-2][2];      double   s4          =  UNIT[i-3][2];      double   s5          =  UNIT[i-4][2];      double   dif100      =  MathAbs(s1-s2)*100;      double   difPoints   =  MathAbs(s1-s2);      double   proc14      =  dif100*0.146;      double   proc76      =  dif100*0.764;      double   dif14       =  difPoints*0.146;      double   dif76       =  difPoints*0.764;      double   STLoss;      double   TMedPrice   =  0.0;      int      TBarPrice   =  0;     };
  20.    if(TreandLines1)     {      ObjectCreate(0,"TreandLines1",OBJ_TREND,0,Time[T3],s3,Time[T1],s1);      ObjectSetInteger(0,"TreandLines1",OBJPROP_COLOR,TreandLines1clr);      ObjectSetInteger(0,"TreandLines1",OBJPROP_STYLE,TreandLinesStyle1);      ObjectSetInteger(0,"TreandLines1",OBJPROP_WIDTH,TreandLines1WIDTH);      ObjectSetInteger(0,"TreandLines1",OBJPROP_BACK,true);      ObjectSetInteger(0,"TreandLines1",OBJPROP_RAY_RIGHT,true);     };
  21.    if(TreandLines2)     {      ObjectCreate(0,"TreandLines2",OBJ_TREND,0,Time[T4],s4,Time[T2],s2);      ObjectSetInteger(0,"TreandLines2",OBJPROP_COLOR,TreandLines2clr);      ObjectSetInteger(0,"TreandLines2",OBJPROP_STYLE,TreandLinesStyle2);      ObjectSetInteger(0,"TreandLines2",OBJPROP_WIDTH,TreandLines2WIDTH);      ObjectSetInteger(0,"TreandLines2",OBJPROP_BACK,true);      ObjectSetInteger(0,"TreandLines2",OBJPROP_RAY_RIGHT,true);     };
  22.    for(shift=0; shift<nBArrowSize; shift++)     {      if(s1<s2)        {
  23.          if(ShowArrow)            SetArrow(225, LineColorBuy,   "Buy",  Time[T1-3], BeLow, ArrowSize);         if(ShowHLine)            SetHLine(LineColorBuy,        "Buy Line",  BeLow, 0, LineWidth);         if(ShowHLine)            SetHLine(LineColorStopLoss,   "StopLoss Buy", s1, 0, LineWidth);
  24.          ObjectDelete("Sell Line");         ObjectDelete("Sell");         ObjectDelete("StopLoss Sell");
  25.          STLoss      =  MathAbs(s1-BeLow)*koeff;         TMedPrice   =  NormalizeDouble(s3+(MathAbs(s2-s3)*0.5),Digits);         TBarPrice   = ((T3-T2)*0.5)+T2;
  26.          //Comment ( " TMedPrice   =  ", TMedPrice,  " \n",         //          " T2          =  ", T2,         " \n",         //          " T3          =  ", T3,         " \n",         //          " TBarPrice   =  ", TBarPrice , " \n"         //);
  27.          if(Pitchwork1)           {            ObjectCreate(0,"PitchWorksBuy",OBJ_PITCHFORK,0,Time[TBarPrice],TMedPrice,Time[T1],s1,Time[T2],s2);            ObjectSetInteger(0,"PitchWorksBuy",OBJPROP_COLOR,clrPitchWorkBuy);            ObjectSetInteger(0,"PitchWorksBuy",OBJPROP_WIDTH,PitchWorksWIDTH);            ObjectSetInteger(0,"PitchWorksBuy",OBJPROP_STYLE,PitchWorkstyle);           };
复制代码
免费获取指标方法如下↓↓↓第一步:先点亮文章右下角的“”再点“”;第二步:点击下方名片关注公众号“量化程序”;
第三步:进入公众号回复关键词:  ZFV5 ,获取指标公式;(请务必准确回复关键词,否则可能无效)

ZIGFIBO_V5.ex4

45.34 KB, 下载次数: 0, 下载积分: 活跃度 -5 售价: 2 H币  [记录]  [购买]

评分
  • 1
  • 2
  • 3
  • 4
  • 5
平均分:NAN    参与人数:0    我的评分:未评 下载时遇到问题?
如果有帮助,就支持一下我呗
举报

评论 使用道具

精彩评论6

EA智家
DD
| 发表于 2025-6-27 06:13:26 | 显示全部楼层
基本没多大用处,都是基于ziazig,有重绘的功能,谢谢诶分享
举报

点赞 评论 使用道具

yangxiao
DD
| 发表于 2025-6-27 07:57:33 | 显示全部楼层
路过看看,支持一下。
举报

点赞 评论 使用道具

sjwlyl
D
| 发表于 2025-6-27 10:58:45 | 显示全部楼层
觉得不实用
举报

点赞 评论 使用道具

peterzhu2004
DDD
| 发表于 2025-6-27 11:07:06 | 显示全部楼层
看起来会重绘
举报

点赞 评论 使用道具

david6843
C
| 发表于 2025-7-6 12:51:04 | 显示全部楼层
支持一下。
举报

点赞 评论 使用道具

1106452729
D
| 发表于 2025-7-11 10:22:01 | 显示全部楼层
看着还行 有使用的吗
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)