Zigzag指标 - 页 15

 
DamonThailand:
你好。

这是我第一次在这里发帖,因为我快速搜索了一下没有找到这个。

我在多个时间段内使用ZigZag指标。我设置了参数,以便它为我追踪适当的高/低点,但我希望在图表上以文本形式显示高/低值。

我拍了一张我想要的截图(在手动添加文本以显示我正在寻找的东西之后)。

是否可以像这样将P1、P2、P3文本和相应的欧元/美元高/低值打印在图表上?

我知道P3的值会随着价格的不断上升或下降而实时变化。

我只需要最近的3个数值,较早的数值并不重要。

谢谢你的任何意见或建议。我不太懂编程,但如果不是太难的工作,也许我可以把这个工作做得很好

你需要发布你所使用的代码

 

我正在使用标准的ZigZag指标。不过,我是按要求发布代码的。

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

//| Zigzag.mq4 |

//| Copyright ฉ 2005-2007, MetaQuotes Software Corp. |

//| http://www.metaquotes.net/ |

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

#property copyright "Copyright ฉ 2007, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net/"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Yellow

//---- indicator parameters

extern int ExtDepth=12;

extern int ExtDeviation=5;

extern int ExtBackstep=3;

//---- indicator buffers

double ZigzagBuffer[];

double HighMapBuffer[];

double LowMapBuffer[];

int level=3; // recounting's depth

bool downloadhistory=false;

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

//| Custom indicator initialization function |

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

int init()

{

IndicatorBuffers(3);

//---- drawing settings

SetIndexStyle(0,DRAW_SECTION);

//---- indicator buffers mapping

SetIndexBuffer(0,ZigzagBuffer);

SetIndexBuffer(1,HighMapBuffer);

SetIndexBuffer(2,LowMapBuffer);

SetIndexEmptyValue(0,0.0);

//---- indicator short name

IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");

//---- initialization done

return(0);

}

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

//| |

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

int start()

{

int i, counted_bars = IndicatorCounted();

int limit,counterZ,whatlookfor;

int shift,back,lasthighpos,lastlowpos;

double val,res;

double curlow,curhigh,lasthigh,lastlow;

if (counted_bars==0 && downloadhistory) // history was downloaded

{

ArrayInitialize(ZigzagBuffer,0.0);

ArrayInitialize(HighMapBuffer,0.0);

ArrayInitialize(LowMapBuffer,0.0);

}

if (counted_bars==0)

{

limit=Bars-ExtDepth;

downloadhistory=true;

}

if (counted_bars>0)

{

while (counterZ<level && i<100)

{

res=ZigzagBuffer;

if (res!=0) counterZ++;

i++;

}

i--;

limit=i;

if (LowMapBuffer!=0)

{

curlow=LowMapBuffer;

whatlookfor=1;

}

else

{

curhigh=HighMapBuffer;

whatlookfor=-1;

}

for (i=limit-1;i>=0;i--)

{

ZigzagBuffer=0.0;

LowMapBuffer=0.0;

HighMapBuffer=0.0;

}

}

for(shift=limit; shift>=0; shift--)

{

val=Low;

if(val==lastlow) val=0.0;

else

{

lastlow=val;

if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;

else

{

for(back=1; back<=ExtBackstep; back++)

{

res=LowMapBuffer[shift+back];

if((res!=0)&&(res>val)) LowMapBuffer[shift+back]=0.0;

}

}

}

if (Low[shift]==val) LowMapBuffer[shift]=val; else LowMapBuffer[shift]=0.0;

//--- high

val=High;

if(val==lasthigh) val=0.0;

else

{

lasthigh=val;

if((val-High[shift])>(ExtDeviation*Point)) val=0.0;

else

{

for(back=1; back<=ExtBackstep; back++)

{

res=HighMapBuffer[shift+back];

if((res!=0)&&(res<val)) HighMapBuffer[shift+back]=0.0;

}

}

}

if (High[shift]==val) HighMapBuffer[shift]=val; else HighMapBuffer[shift]=0.0;

}

// final cutting

if (whatlookfor==0)

{

lastlow=0;

lasthigh=0;

}

else

{

lastlow=curlow;

lasthigh=curhigh;

}

for (shift=limit;shift>=0;shift--)

{

res=0.0;

switch(whatlookfor)

{

case 0: // look for peak or lawn

if (lastlow==0 && lasthigh==0)

{

if (HighMapBuffer[shift]!=0)

{

lasthigh=High[shift];

lasthighpos=shift;

whatlookfor=-1;

ZigzagBuffer[shift]=lasthigh;

res=1;

}

if (LowMapBuffer[shift]!=0)

{

lastlow=Low[shift];

lastlowpos=shift;

whatlookfor=1;

ZigzagBuffer[shift]=lastlow;

res=1;

}

}

break;

case 1: // look for peak

if (LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)

{

ZigzagBuffer[lastlowpos]=0.0;

lastlowpos=shift;

lastlow=LowMapBuffer[shift];

ZigzagBuffer[shift]=lastlow;

res=1;

}

if (HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0)

{

lasthigh=HighMapBuffer[shift];

lasthighpos=shift;

ZigzagBuffer[shift]=lasthigh;

whatlookfor=-1;

res=1;

}

break;

case -1: // look for lawn

if (HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)

{

ZigzagBuffer[lasthighpos]=0.0;

lasthighpos=shift;

lasthigh=HighMapBuffer[shift];

ZigzagBuffer[shift]=lasthigh;

}

if (LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0)

{

lastlow=LowMapBuffer[shift];

lastlowpos=shift;

ZigzagBuffer[shift]=lastlow;

whatlookfor=1;

}

break;

default: return;

}

}

return(0);

}

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

 

zigzag fibo(没有警报或警报调整为真或假)

newdigital:
一些其他的人字形指标https://www.mql5.com/en/forum/178335/page14

在这里发生了一件伟大的工作,我非常感谢所有以这种或那种方式参与论坛的人。我只有几天的时间,但我对目前所看到的情况感到满意。

我只想寻求帮助。

1)有没有带斐波那契水平的 "之 "字形指标(没有警报或警报可以是假的或真的)?

真)?

2) 认真寻找任何指标,当随机振荡器处于超买/超卖区域时,它将显示准确或近似的转折点。也就是说,每当任何参数的随机指标在任何时间框架内进入超买/超卖区域时,其他东西(另一个指标)就会显示市场/价格最有可能逆转的水平。

我将很高兴得到帮助。

 
knmoore:
我非常感谢所有以这种或那种方式为论坛做出贡献的人,他们的工作非常出色。我只有几天的时间,但我对目前所看到的一切感到满意。

只是为了寻求帮助。

1) 是否有任何带有斐波纳契水平的人字形指标(没有警报或警报可以是假的或

真)?

2) 认真寻找任何指标,只要随机振荡器在超买/超卖区域内,就会显示准确或近似的转折点。也就是说,每当任何参数的随机指标在任何时间框架内进入超买/超卖区域时,其他东西(另一个指标)就会显示市场/价格最有可能逆转的水平。

我很高兴得到大家的帮助。

也许这些线程中的一些东西可以像你一样

https://www.mql5.com/en/forum/173172

https://www.mql5.com/en/forum/173439

https://www.mql5.com/en/forum/173588

 
knmoore:
我非常感谢所有以这种或那种方式为论坛做出贡献的人,他们在这里做了大量工作。我只用了几天时间,但我对我目前所看到的一切感到满意。

只是为了寻求帮助。

1) 是否有任何带有斐波纳契水平的人字形指标(没有警报或警报可以是假的或

真)?

2) 认真寻找任何指标,只要随机振荡器在超买/超卖区域内,就会显示准确或近似的转折点。也就是说,每当任何参数的随机指标在任何时间框架内进入超买/超卖区域,其他东西(另一个指标)就会显示市场/价格最有可能逆转的水平。

我很高兴得到大家的帮助。

我发现,只有一个指标总是正确的,但不幸的是,它的速度很慢。

附加的文件:
 
bryant:
嗨,我在这里看到一个指标,但不是完整的。我有完整的指标,但我不知道其中的一些单词,谁能帮我把它全部翻译成英文。非常感谢!!!!!。

你好

请参考本主题的第1页

 

谢谢大家发布的所有之字形指标,总结一切,似乎周围基本上有3种之字形类型

1.基于原始 "之 "字形的指标

2.基于Dinapoli的指标,即高/低Zigzag。

3.非滞后的之字形、江恩和摆动指标,是两者之间的一种折衷。

所有基于之字形的指标都会重绘,你可以发现它们,因为它们都包含原始的代码基础,这些包括所有的之字形指针,转折点的之字形。

基于dinapoli的指标通常包括'Barn'语句作为extern int。这些指标不会重绘,而且非常可靠,麻烦的是它们根据历史数据工作,形成下一个腿的速度非常慢。

非滞后江恩和摇摆似乎是一个人字形,其中包括一些Dinapoli类型代码的变化,它们大多不会重绘,但偶尔会重绘。

对我来说,它仍然回到了绘图板,我相信会有更多的东西出现。

 

或像这样说

有三种类型的ZZ。

1.基于原始ZZ的

2.基于非原创

3.其他

这是另一种。

附加的文件:
 
fxbs:
或者像这样说

有三种类型的ZZ。

1.基于原始ZZ的

2.基于非原创

3.其他

这是另一个。

这很简洁

下面是另一种情况:有通道的ZZ

 
moha00:
你好,请参考本主题的第一页

谢谢!我知道,但那个不是完整的,某些部分的代码不知为何消失了!我想要的是一个完整的。

原因: