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
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);