Zigzag indicators - page 15

 
DamonThailand:
Hello,

This is my first post here, as I couldn't find this with a quick search.

I am using the ZigZag indicator over multiple timeframes. I have the parameters set so that it tracks the proper highs/lows for me, but I would like the high/low values displayed in text on the chart.

I have taken a screenshot of what I want (after manually adding text to show what I am looking for).

Is is possible to have the P1, P2, P3 text and corresponding high/low EUR/USD values printed on the chart like this?

I understand that the value of P3 will be changing in real time as the price continues moving up or down.

I only need the last 3 values, the older ones are not important.

Thank-you for any advice or suggestions. I'm not much of a coder, but maybe I can make this work if it's not too hard a job!

You need to post the code you are using

 

I am using the standard ZigZag indicator. I am posting the code as requested, however:

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

//| 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( no alert or alert adjusted to true or false)

newdigital:
Some other zigzag indicators https://www.mql5.com/en/forum/178335/page14

A great work is actually taken place here and quite appreciate all the guys that have contirbuted to the forum one way or the other. I am just few days old and I'm happy with the what i have seen so far.

Just for help,

1) is there any zigzag with fibonacci level indicator(no alert or alert can be false or

true)?

2) seriously looking for any indicator that will show the exact or approximte turning point whenever stochastic oscilator is within overbought/oversold region. That is, whenever stochastic of any parameter enters overbought/oversold region using any time frame, something else (another indicator) will then indicate the level at which the market/price most likely reverse.

I shall be glad for the help.

 
knmoore:
A great work is actually taken place here and quite appreciate all the guys that have contirbuted to the forum one way or the other. I am just few days old and I'm happy with the what i have seen so far.

Just for help,

1) is there any zigzag with fibonacci level indicator(no alert or alert can be false or

true)?

2) seriously looking for any indicator that will show the exact or approximte turning point whenever stochastic oscilator is within overbought/oversold region. That is, whenever stochastic of any parameter enters overbought/oversold region using any time frame, something else (another indicator) will then indicate the level at which the market/price most likely reverse.

I shall be glad for the help.

Maybe something of these threads could like you

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

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

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

 
knmoore:
A great work is actually taken place here and quite appreciate all the guys that have contirbuted to the forum one way or the other. I am just few days old and I'm happy with the what i have seen so far.

Just for help,

1) is there any zigzag with fibonacci level indicator(no alert or alert can be false or

true)?

2) seriously looking for any indicator that will show the exact or approximte turning point whenever stochastic oscilator is within overbought/oversold region. That is, whenever stochastic of any parameter enters overbought/oversold region using any time frame, something else (another indicator) will then indicate the level at which the market/price most likely reverse.

I shall be glad for the help.

There is only one that I have found which is always correct but unfortunately slow

 
bryant:
hi there,I've seen one indicator here but is not in complete.I have complete one but I don't konw some word in it,could anyone do me a favor to tanslate it into English in all.Great thanks!!!!!

Hi

refer page 1 of this topic

 

Thanks everyone for posting all the zigzag indicators, summing everything, it seems there are basically 3 types of zigzag around

1. Indicators based on the original zigzag

2. Indicators based on the Dinapoli i.e. High/Low zigzag

3. Non lag zigzag, gann and swing indicators a kind of compromise between the two

All zigzag based indicators repaint and you can spot them because they all contain the original code base, these include all the zigzag pointers, zigzag at turning points.

The indicators based on dinapoli usually include the 'Barn' statement as an extern int. These indicators do not repaint and are very reliable, trouble is they work from history and are very slow to form the next leg.

The Non lag gann and swing seem to be a zigzag with some variation of Dinapoli type code included they mostly do not repaint but occasionally do.

Well for me it still back to the drawing board, more to come I am sure

 

or put it like this

there are three types of zz:

1. based on original zz

2. based on not original

3.other

here's another:

 
fxbs:
or put it like this

there are three types of zz:

1. based on original zz

2. based on not original

3.other

here's another:

That's succinct

here's another: a zz with channel

 
moha00:
Hi refer page 1 of this topic

Thanks!I kenw that ,but the one was not in full,some part of the code has somehow disappreared!What I want is a integrated one