Hello here is a screenshot about what i want to do : plot points at the extremes of high / low An Upswing starts when a bar s high and low prices rise above the respective high and low prices of the latest Downswing. Prices then remain in an Upswing until such a bar that the high and low prices decline below the respective high and low prices of the highest bar of the Upswing. The highest price in the Upswing is called a TOP A Downswing starts when a bar s high and low prices decline below the respective high and low prices of the highest bar of the latest Upswing. Prices then remain in a Downswing until a bar high and low prices rise above the respective high and low prices of the lowest bar of the Downswing. The lowest price in the Downswing is called a BOTTOM. in my code, points aren't plotted at the extremes of high / low THANKS YOU FOR HELP Code: Vars: Trend(0), DnTrend(False), UpTrend(False), DnTrendLow(999999),UpTrendHigh(-99999), UpTrendLow(0),DnTrendHigh(0), UpTrendDate(0), DnTrendDate(0), DownTrendBar(0), UpTrendBar(0); Arrays: LastH[3](0), LastLo[3](0),DateH[3](0),DateLo[3](0); { Downtrend = one down bar / Uptrend = one up bar } DnTrend = High < High[1] and Low < Low[1]; UpTrend = High > High[1] and Low > Low[1]; { We define a change from an Uptrend to a Downtrend as a simple Downtrend combined with the low lower than the low recorded on the day of the highest bar of the latest Uptrend. } If DnTrend = True and Low <= UpTrendLow then Trend = -1; { We define a change from a Downtrend to an Uptrend as a simple Uptrend combined with the high greater than the high recorded on the day of the lowest bar of the latest Downtrend. } If UpTrend = True and High >= DnTrendHigh then Trend = 1; { Keep track of the high recorded on the day of the lowest low of a Downtrend Keep track of the low recorded on the day of the hightest high of an Uptrend } If Trend = 1 and High > UpTrendHigh and High > High[1] then UpTrendLow = Low; If Trend = -1 and Low < DnTrendLow and Low < Low[1] then DnTrendHigh = High; If Trend = -1 and DnTrendLow > Low then Begin DnTrendDate = Date; DownTrendBar = CurrentBar; DnTrendLow = Low; End; If Trend = 1 and UpTrendHigh < High then Begin UpTrendDate = Date; UpTrendBar = CurrentBar; UpTrendHigh = High; End; If Trend = 1 and Trend[1] <> 1 then Begin LastLo[0] = DnTrendLow; DnTrendLow = Low; DateLo[0] = DnTrendDate; Plot1(LastLo[0],"Dn"); //Plot1[CurrentBar - UpTrendBar](LastLo[0],"Dn"); End Else NoPlot(1); If Trend = - 1 and Trend[1] <> -1 then Begin LastH[0] = UpTrendHigh; UpTrendHigh = High; DateH[0] = UpTrendDate; Plot2(LastH[0],"Up"); //Plot2[CurrentBar - DnTrendBar](LastH[0],"Up"); End Else Noplot(2); <img src=http://www.elitetrader.com/vb/attachment.php?s=&postid=2235203>
take a look at the ZigZag code here: #12 on the list: http://www.elitetrader.com/vb/showthread.php?s=&postid=2193301#post2193301 also, the HH LL might be of interest to you. #1 on the list.