Thanks.  Looks like what I was looking for but will have to study.  Thanks 
again.

--- In amibroker@yahoogroups.com, "hagus99se" <hans.gustavs...@...> wrote:
>
> 
> 
> 
> 
> 
> 
> 
> --- In amibroker@yahoogroups.com, "bistrader" <bistrader@> wrote:
> >
> > Is there a Point & Figure afl that comes with AmiBroker?  If not, is there 
> > a Stocks and Commodities afl or any afl out there that is Point & Figure?
> >
> 
> This code by signature "apfxtrader" is the best I have noticed. It has three 
> scaling methods Traditional|Percentage|AVG True Range.
> He has also some ideas about exploration of P&F formations.
> Search his signature.
> 
> 
> ( "Point & Figure w Values adj" );
> 
> GraphXSpace = 5;
> 
> SetChartBkColor( ParamColor( "BackGroundColor", colorBlack) );
> 
> //GraphColor = ParamColor("GarphColor",colorLightGrey);
> 
> GridColor = ParamColor( "GridColor", colorLightGrey );
> 
> Scaling = ParamList( "Scaling Method", "Traditional|Percentage|AVG True 
> Range" );
> 
> if ( scaling == "Traditional" )
> 
> Box = Param( "Box", 1, 0.2, 10, 0.1 );
> 
> else
> 
> if ( scaling == "Percentage" )
> 
> Box = Param( "Box ", 1, 0.2, 10, 0.1 ) / 100 * LastValue( C );
> 
> else
> 
> if ( scaling == "AVG True Range" )
> 
> Box = Param( "Box", 1, 0.3, 5, 0.1 ) * LastValue( ATR ( 20 ) );
> 
> shiftChart = 0;
> 
> shiftLastClose = 1;
> 
> shiftGrid = 7;
> 
> shiftPriceAxis = 2;
> 
> Reverse = Param( "Reverse", 3, 1, 5 );
> 
> j = 0;
> 
> PFL[0] = Box * ceil( Low[0] / Box ) + Box;
> 
> PFH[0] = Box * floor( High[0] / Box );
> 
> direction = 0;
> 
> for ( i = 1; i < BarCount; i++ )
> 
> {
> 
> if ( direction[j] == 0 )
> 
> {
> 
> if ( Low[i] <= PFL[j] - Box )
> 
> {
> 
> PFL[j] = Box * ceil( Low[i] / Box );
> 
> }
> 
> else
> 
> {
> 
> if ( High[i] >= PFL[j] + Reverse*Box )
> 
> {
> 
> j++;
> 
> direction[j] = 1;
> 
> PFH[j] = Box * floor( High[i] / Box );
> 
> PFL[j] = PFL[j - 1] + Box;
> 
> }
> 
> }
> 
> }
> 
> else
> 
> {
> 
> if ( High[i] >= PFH[j] + Box )
> 
> {
> 
> PFH[j] = Box * floor( High[i] / Box );
> 
> }
> 
> else
> 
> {
> 
> if ( Low[i] <= PFH[j] - Reverse * Box )
> 
> {
> 
> j++;
> 
> direction[j] = 0;
> 
> PFH[j] = PFH[j - 1] - Box;
> 
> PFL[j] = Box * ceil( Low[i] / Box );
> 
> }
> 
> }
> 
> }
> 
> }
> 
> delta = BarCount - j - 1;
> 
> direction = Ref( direction, - delta );
> 
> Hi = Ref( PFH, -delta ) + Box / 2;
> 
> Lo = Ref( PFL, -delta ) - Box / 2;
> 
> Cl = IIf( direction == 1, Hi, Lo );
> 
> Op = IIf( direction == 1, Cl - Box, Cl + Box );
> 
> Graphcolor = IIf( direction == 1, ParamColor( "X_Color", colorBrightGreen ),
> 
> ParamColor( "O_Color", colorRed ) );
> 
> PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor ,
> 
> stylePointAndFigure | styleNoLabel, 0, 0 , shiftChart );
> 
> PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor , stylePointAndFigure | 
> styleNoLabel, 0, 0 , shiftChart );
> 
> Last = Ref( LastValue( C ), -( BarCount - 1 ) );
> 
> Plot( Last, "", colorRed, styleNoLine | styleDots, 0 , 0, shiftLastClose );
> 
> // selected value
> 
> Value = IIf( direction > 0, SelectedValue( Hi ) - box / 2, SelectedValue( Lo 
> ) + box / 2 );
> 
> //-----------------------------------------------------------------------
> 
> // GRID CONSTRUCTION
> 
> //----------------------------------------------------------------------
> 
> PlotGridLines = ParamToggle( "PlotdGrid", "Yes! |No", 1 ) ;
> 
> if ( PlotGridLines )
> 
> {
> 
> begin = SelectedValue( BarIndex() );
> 
> end = LastValue( BarIndex() );
> 
> period = end - begin + 1;
> 
> if ( begin < end )
> 
> {
> 
> ScreenHigh = LastValue( HHV( cl, period ) );
> 
> ScreenLow = LastValue( LLV( Cl, period ) );
> 
> top = LineArray( begin - shiftGrid, screenHigh, end, screenhigh, 0 , 1 );
> 
> Bot = LineArray( begin - shiftGrid, screenlow, end, screenLow, 0, 1 );
> 
> Plot( top, "", gridColor, styleLine | styleNoLabel , 0, 0, shiftGrid );
> 
> //Plot( bot, "", gridColor,styleLine|styleNoLabel, 0 , 0 , shiftGrid);
> 
> VerticalGrid = IIf ( BarIndex() >= begin, IIf( direction == 1, screenHigh, 
> screenLow ), Null );
> 
> Plot ( VerticalGrid, "", gridColor, styleStaircase | styleNoLabel, 0, 0, 1 );
> 
> format = 8.2;
> 
> for ( n = LastValue( bot ); n < LastValue( top ) - 0.5*box; n = n + box )
> 
> {
> 
> Plot( bot , "", gridColor, styleLine | styleNoLabel, 0, 0 , shiftGrid );
> 
> text = NumToStr( LastValue( bot ) + 0.5 * box, format );
> 
> xposition = BarCount + shiftPriceaxis;
> 
> yPosition = LastValue( bot ) + 0.27 * box;
> 
> PlotText( text, xPosition , yPosition, colorBlue );
> 
> bot = bot + box;
> 
> Graphcolor = IIf( direction == 1, ParamColor( "X_Color", colorBrightGreen ),
> 
> ParamColor( "O_Color", colorRed ) );
> 
> PlotOHLC( Op, Hi, Lo, Cl, "", GraphColor ,
> 
> stylePointAndFigure | styleNoLabel, 0, 0 , shiftChart );
> 
> }
> 
> }
> 
> }
> 
>  
> 
> //---------------------------------------------------------------------
> 
> // TITLE
> 
> //----------------------------------------------------------------------
> 
> Title = "\n" +
> 
> " Instrument : " + Name() + FullName() + "\n " +
> 
> "Formula : " + " Point & Figure (High/Low Range)" + "\n " +
> 
> "Box : " + NumToStr( Box, 4.4 ) + " " +
> 
> "Reverse : " + NumToStr( Reverse, 2.0 ) + "\n " +
> 
> "ATR : " + WriteVal( LastValue( ATR( 100 ) ), format = 4.4 );
> 
> _SECTION_END();
>


Reply via email to