[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Point & Figure indicator



PureBytes Links

Trading Reference Links

This is for all those who e-mailed asking for the indicator. Keep in mind
that I am an amateur at "Easy Language", and there is probably a better or
more efficient way to code this...but it does seem to work correctly. All I
ask is that you share the results of any system test that are developed
using this code.
    Cheers,
        Adam Hefner

-------------------


{This will simulate "Point & Figure" levels on a bar chart}
{Written by Adam Hefner version 01-07-02}



Var: dbh(0), dbl(0),   {Daily block high/low}
  abh(0), abl(0),   {actual block high/low}
  dir(0),     {direction}
  sv(0);     {stop value}
Inputs: BlockSize(1),   {Block Size}
  ReverseSize(3),   {Reverse Size}
  lookBack(-1);   {look back period}
Var: bs(BlockSize),
  rs(ReverseSize),
  lb(LookBack);

 {daily block high/low calculations}
If Round(high/bs,0)*bs > High
 then dbh = (Round(high/bs,0)*bs)-bs
  else dbh = Round(high/bs,0)*bs;
If Round(Low/bs,0)*bs < Low
 then dbl = (Round(Low/bs,0)*bs)+bs
  else dbl = Round(Low/bs,0)*bs;

If currentbar <= 1 {check for first 2 bars of the chart}
 then begin
  dir = 1;
  abh = dbh;
  abl = dbl;
 end
 else begin
  If dir[1] = 1 {direction up calculations}
   then begin
    if dbh > abh[1]
    then
     abh = dbh {new high}
    else begin
     If dbl <= abh-(bs*rs) {reverse}
     then begin
      dir = -1;
      abh = abh[1];
      abl = dbl;
     end
     else
      abh = abh[1];
    end;
   end
   else begin {direction down calculations}
     If dbl < abl[1]
     then
      abl = dbl {new low}
     else
      if dbh >= abl+(bs*rs) {reverse}
          then begin
       dir = 1;
       abl = abl[1];
       abh = dbh;
      end
      else
       abl = abl[1];
     end;
 end;

If dir = 1  {reversal stop}
 then sv = abh-(bs*rs)
  else sv = abl+(bs*rs);



plot1(abh);
plot2(abl);
plot3[lb](sv);

Attachment: Description: "POINT & FIGURE.ELS"