Many times PnF had been started on Traderji and left as it seems fewer people were interested. After Dan its Linkon. Hope to lern something. Would go through the basics on the Net to easily understand what is written.
Have this Code for Metastock in my Archievs...copied from Metastock Zone:
Point & Figure Indicator by Adam Hefner
ˇ To: "Metastock" <metastock@xxxxxxxxxxxxx>
ˇ Subject: P&F Indicator
ˇ From: "Von Hef" <VonHef@xxxxxxxxxx>
ˇ Date: Tue, 27 Oct 1998 20:32:16 -0600
ˇ Reply-To: metastock@xxxxxxxxxxxxx
ˇ Sender: owner-metastock@xxxxxxxxxxxxx
I know its long....but its the best I can do.
The following indicator will plot the high of the "x" column and the low of the "o" column in a stairstep manner on a barchart. If the high value changes then the low should hold its value until there is a "P&F" reversal, then as the low changes the high should hold. The first two lines are the Box and Reversal values, and I wasn't sure what the best "Input" values should be so please feel free to suggest any changes. My goal is to design a system around this indicator, to test different Point and Reversal amounts, but its nice to examine the P&F support and resistance levels on a bar chart. Also, I am not as experienced as many on this list nor am I above making errors, so test the value of this indicator for yourself.
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;
Have this Code for Metastock in my Archievs...copied from Metastock Zone:
Point & Figure Indicator by Adam Hefner
ˇ To: "Metastock" <metastock@xxxxxxxxxxxxx>
ˇ Subject: P&F Indicator
ˇ From: "Von Hef" <VonHef@xxxxxxxxxx>
ˇ Date: Tue, 27 Oct 1998 20:32:16 -0600
ˇ Reply-To: metastock@xxxxxxxxxxxxx
ˇ Sender: owner-metastock@xxxxxxxxxxxxx
I know its long....but its the best I can do.
The following indicator will plot the high of the "x" column and the low of the "o" column in a stairstep manner on a barchart. If the high value changes then the low should hold its value until there is a "P&F" reversal, then as the low changes the high should hold. The first two lines are the Box and Reversal values, and I wasn't sure what the best "Input" values should be so please feel free to suggest any changes. My goal is to design a system around this indicator, to test different Point and Reversal amounts, but its nice to examine the P&F support and resistance levels on a bar chart. Also, I am not as experienced as many on this list nor am I above making errors, so test the value of this indicator for yourself.
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;