I hope someone can help with an EasyLanguage Problem.
I want to write an indicator to plot points like swing points. The trouble
is that the indicator doesn't plot correctly these points
here is the code
Thanks for your help.
Code: Select all
Vars: DnTrend(False), UpTrend(False), Trend(0), UpTrendBar(0),
DnTrendBar(0),
DnTrendLow(999999), UpTrendHigh(-999999), UpTrendLow(0), DnTrendHigh(
0), UpTrendDate(0),DnTrendDate(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];
{ 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 Low < DnTrendLow and Low < Low[1] then
Begin
DnTrendHigh = High;
DnTrendBar= CurrentBar;
End;
If Trend = 1 and High > UpTrendHigh and High > High[1] then
Begin
UpTrendLow = Low;
UpTrendBar= CurrentBar;
End;
{ When defining a trend change, we reference these values to confirm the
change. }
{ 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;
If Trend = 1 and UpTrendHigh < High then
Begin
UpTrendHigh = High;
UpTrendDate = Date;
End;
If Trend = -1 and DnTrendLow > Low then
Begin
DnTrendLow = Low;
DnTrendDate = Date;
End;
If Trend = 1 and Trend[1] <> 1 then
Begin
LastLo[0] = DnTrendLow;
DateLo[0] = DnTrendDate;
Plot1[CurrentBar - UpTrendBar](LastLo[0],"Dn");
End;
If Trend = - 1 and Trend[1] <> -1 then
Begin
LastH[0] = UpTrendHigh;
DateH[0] = UpTrendDate;
Plot2[CurrentBar - DnTrendBar](LastH[0],"Up");
End