Professional Documents
Culture Documents
http://www.inditraders.com/amibroker/11094-help-regarding-point-figure-afl.html
AFL.Var("PFO") = PFO;
AFL.Var("PFC") = PFC;
AFL.Var("delta") = delta;
AFL.Var("Reverse") = Reverse;
AFL.Var("j") = j;
%>
// the difference between Open AND Close should be set to box size
// the sign decides if X or O are plotted
C = O + 1 * IIf( PFC > PFO, 1,-1);
//Colours of major gridlines at box values change points. Colours for easier
chart identification
Color5 = colorYellow ;
Color10 = colorBlue;
Color20 = colorBrown;
Color50 = colorIndigo;
Color100 = colorGreen;
Color200 = colorTan;
Color500 = colorOrange;
Color1000 = colorLightBlue;
Color2000 = colorLime;
Color3000 = colorRed;
Color4000 = colorBlack;
colorgrid = colorWhite; //colours of intermediate gridlines
GraphXSpace = 5;
Title = "PF Chart box varies, H:" + WriteVal(H,1.0)+ ", L:" + WriteVal(L,1.0)
+
".... White gridlines are spaced at 20% intervals betweenmain gridlines." +
"\n" + "Y-Axis values = " +
EncodeColor(color5) + WriteVal(C5,1.0) + "c@ " + WriteVal(nb5,1.0) + ", " +
EncodeColor(color10) + WriteVal(C10,1.0) + "c@ " + WriteVal(nb10,1.0) + ", " +
EncodeColor(color20) + WriteVal(C20,1.0) + "c@ " + WriteVal(nb20,1.0) + ", " +
EncodeColor(color50) + WriteVal(C50,1.0) + "c@ " + WriteVal(nb50,1.0) + ", " +
EncodeColor(color100) + "$" + WriteVal(C100/100,1.0) + "@ " +
WriteVal(nb100,1.0) + ", " +
EncodeColor(color200) + "$" + WriteVal(C200/100,1.0) + "@ " +
WriteVal(nb200,1.0) + ", " +
EncodeColor(color500) + "$" + WriteVal(C500/100,1.0) +"@ " +
WriteVal(nb500,1.0) + ", " +
EncodeColor(color1000)+",$"+WriteVal(C1000/100,1.0) + "@ " +
WriteVal(nb1000,1.0) + ", " +
EncodeColor(color2000) + "$" + WriteVal(C2000/100,1.0) + "@ " +
WriteVal(nb2000,1.0) + ", " +
EncodeColor(color3000) + "$" + WriteVal(C3000/100,1.0) + "@ " +
WriteVal(nb3000,1.0) + ", " +
EncodeColor(color4000) + "$" + WriteVal(C4000/100,1.0) + "@ " +
WriteVal(nb4000,1.0) +"\n"+
"Box Values (cents) = "+
EncodeColor(color5)+"below " +WriteVal(nb5,1.0) + "=" + WriteVal(b5,1.2) + ",
" +
EncodeColor(color10)+WriteVal(nb5,1.0)+"-"+WriteVal(nb10,1.0)+"="+WriteVal(b10
,1.2)+", "+
EncodeColor(color20)+WriteVal(nb10,1.0)+"-"+WriteVal(nb20,1.0)+"="+WriteVal(b2
0,1.2)+", "+
EncodeColor(color50)+WriteVal(nb20,1.0)+"-"+WriteVal(nb50,1.0)+"="+WriteVal(b5
0,1.2)+", "+
EncodeColor(color100)+WriteVal(nb50,1.0)+"-"+WriteVal(nb100,1.0)+"="+WriteVal(
b100,1.1)+", "+
EncodeColor(color200)+WriteVal(nb100,1.0)+"-"+WriteVal(nb200,1.0)+"="+WriteVal
(b200,1.0)+", "+
EncodeColor(color500)+WriteVal(nb200,1.0)+"-"+WriteVal(nb500,1.0)+"="+WriteVal
(b500,1.0)+", "+
EncodeColor(color1000)+WriteVal(nb500,1.0)+"-"+WriteVal(nb1000,1.0)+"="+WriteV
al(b1000,1.0)+", "+
EncodeColor(color2000)+WriteVal(nb1000,1.0)+"-"+WriteVal(nb2000,1.0)+"="+Write
Val(b2000,1.0)+", "+
EncodeColor(color3000 )+WriteVal(nb2000,1.0)+"&
above"+"="+WriteVal(binfinity,1.0);
PlotGrid(nb5*0.2,colorgrid);
PlotGrid(nb5*0.4,colorgrid);
PlotGrid(nb5*0.6,colorgrid);
PlotGrid(nb5*0.8,colorgrid);
PlotGrid(nb5+(nb10-nb5)*0.2,colorgrid);
PlotGrid(nb5+(nb10-nb5)*0.4,colorgrid);
PlotGrid(nb5+(nb10-nb5)*0.6,colorgrid);
PlotGrid(nb5+(nb10-nb5)*0.8,colorgrid);
PlotGrid(nb10+(nb20-nb10)*0.2,colorgrid);
PlotGrid(nb10+(nb20-nb10)*0.4,colorgrid);
PlotGrid(nb10+(nb20-nb10)*0.6,colorgrid);
PlotGrid(nb10+(nb20-nb10)*0.8,colorgrid);
PlotGrid(nb20+(nb50-nb20)*0.2,colorgrid);
PlotGrid(nb20+(nb50-nb20)*0.4,colorgrid);
PlotGrid(nb20+(nb50-nb20)*0.6,colorgrid);
PlotGrid(nb20+(nb50-nb20)*0.8,colorgrid);
PlotGrid(nb50+(nb100-nb50)*0.2,colorgrid);
PlotGrid(nb50+(nb100-nb50)*0.4,colorgrid);
PlotGrid(nb50+(nb100-nb50)*0.6,colorgrid);
PlotGrid(nb50+(nb100-nb50)*0.8,colorgrid);
PlotGrid(nb100+(nb200-nb100)*0.2,colorgrid);
PlotGrid(nb100+(nb200-nb100)*0.4,colorgrid);
PlotGrid(nb100+(nb200-nb100)*0.6,colorgrid);
PlotGrid(nb100+(nb200-nb100)*0.8,colorgrid);
PlotGrid(nb200+(nb500-nb200)*0.2,colorgrid);
PlotGrid(nb200+(nb500-nb200)*0.4,colorgrid);
PlotGrid(nb200+(nb500-nb200)*0.6,colorgrid);
PlotGrid(nb200+(nb500-nb200)*0.8,colorgrid);
PlotGrid(nb500+(nb1000-nb500)*0.2,colorgrid);
PlotGrid(nb500+(nb1000-nb500)*0.4,colorgrid);
PlotGrid(nb500+(nb1000-nb500)*0.6,colorgrid);
PlotGrid(nb500+(nb1000-nb500)*0.8,colorgrid);
PlotGrid(nb1000+(nb2000-nb1000)*0.2,colorgrid);
PlotGrid(nb1000+(nb2000-nb1000)*0.4,colorgrid);
PlotGrid(nb1000+(nb2000-nb1000)*0.6,colorgrid);
PlotGrid(nb1000+(nb2000-nb1000)*0.8,colorgrid);
PlotGrid(nb2000+(nb3000-nb2000)*0.2,colorgrid);
PlotGrid(nb2000+(nb3000-nb2000)*0.4,colorgrid);
PlotGrid(nb2000+(nb3000-nb2000)*0.6,colorgrid);
PlotGrid(nb2000+(nb3000-nb2000)*0.8,colorgrid);
PlotGrid(nb3000+(nb4000-nb3000)*0.2,colorgrid);
PlotGrid(nb3000+(nb4000-nb3000)*0.4,colorgrid);
PlotGrid(nb3000+(nb4000-nb3000)*0.6,colorgrid);
PlotGrid(nb3000+(nb4000-nb3000)*0.8,colorgrid);
NEXT
GraphXSpace = 5;
//GraphColor = ParamColor("GarphColor",colorLightGrey);
if ( scaling == "Traditional" )
else
if ( scaling == "Percentage" )
else
shiftChart = 0;
shiftLastClose = 1;
shiftGrid = 7;
shiftPriceAxis = 2;
Reverse = Param( "Reverse", 3, 1, 5 );
j = 0;
direction = 0;
if ( direction[j] == 0 )
else
j++;
direction[j] = 1;
else
else
j++;
direction[j] = 0;
delta = BarCount - j - 1;
// selected value
//-----------------------------------------------------------------------
// GRID CONSTRUCTION
//----------------------------------------------------------------------
if ( PlotGridLines )
//---------------------------------------------------------------------
// TITLE
//----------------------------------------------------------------------
Title = "\n" +
"Formula : " + " Point & Figure (High/Low Range)" + "\n " +