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

P&F Indicator



PureBytes Links

Trading Reference Links

Here is an update to the P&F Indicator, that corrects
a plotting error I found on 1 chart.

         { Point & Figure Indicator }
              { by Adam Hefner }
 {Note: this will plot the high of the
  "x" and low of the "o" on a barchart}

 {box value}
BS1:=Input("Box Size ?",.1,100,1);
 {reversal amount}
RS1:=Input("Reversal Amount ?",1,10,3)*BS1;
 {box high calculation}
BH1:=(Int(H/BS1))*BS1;
 {box low calculation}
BL1:=If(((Int(L/BS1))*BS1)=L,
     {then}L,
     {else}((Int(L/BS1))*BS1)+BS1);
 {reversal calculation}
DH1:=If((BL1>=Ref(BL1,-1))AND
       ((BH1-RS1)>=Ref(BL1,-1)),
     {then}1,
     {else}0);
DL1:=If((BH1<=Ref(BH1,-1))AND
      ((BL1+RS1)<=Ref(BH1,-1)),
    {then}1,
    {else}0);
 {Determine market direction}
 {NOTE: The value of D1= 
              1="trend up"
             -1="trend down"}
D1:=If(DH1=1 AND DL1=1,
   {then}If(BarsSince(Ref(DH1=1,-1))=
            BarsSince(Ref(DL1=1,-1)),
         {then}If(BarsSince(
                       ValueWhen(3,DH1=1,DH1))<
                  BarsSince(
                       ValueWhen(3,DL1=1,DL1)),
               {then}-1,
               {else}1),
          {else}If(BarsSince(Ref(DH1=1,-1))<
                   BarsSince(Ref(DL1=1,-1)),
                {then}1,
                {else}-1)),
   {else}If(BarsSince(DH1=1)<BarsSince(DL1=1),
         {then}-1,
         {else}1));
 {time since market reversed}
DH:=BarsSince(D1=1);
DL:=BarsSince(D1=-1);
 { plot high and low }
PH1:=HighestSince(1,DH=1,BH1);
PL1:=LowestSince(1,DL=1,BL1);
PH2:=ValueWhen(1,DH>0,PH1);
PL2:=ValueWhen(1,DL>0,PL1);
PH2;
PL2;

 Best wishes,
               Adam Hefner.
 e-mail:  VonHef@xxxxxxxxxx

_____________________