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

[amibroker] Re: Identifying Pnf Patterns



PureBytes Links

Trading Reference Links

Lets go over the steps to plot Chart and Grid once again:

Once you copy the new code*  at the end of the message

You need to perform the following:

Set Blank bars in right margin  to 10 .
Preferences Window

Right click on chart select Parameters and press  "YES"  on "PlotGrid" option.
Parameters Window 

Note that:
Grid is plotted for the chart area in the right of  Vertical Selection Line. Chart and Grid

* The following code includes the option to choose form 3 ways  of calculating the box size:
  1. Traditional  (Box size default value  = 1  with increments of 10 points)
  2. Percentage (Box size default value 1%  of last value close with increments of 0.1%).
  3. Average True Range (Box size default value last value ATR (20)  with increments of 10 % of ATR (20) ).
You  can choose to apply this from "Scaling Method" drop down  menu in Parameters

Don't forget to check the code in formula editor before you apply

//Copy ----------------------------------------------------


GraphXSpace = 5;

SetChartBkColor(ParamColor("BackGroundColor",  colorBlack));
GraphColor =  ParamColor("GarphColor",colorLightGrey);
GridColor = ParamColor("GridColor", ColorRGB(39,49, 67) );

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);




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", 0);



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, colorWhite);
    bot = bot + box;   

    }   
}

}


//---------------------------------------------------------------------
//    TITLE
//----------------------------------------------------------------------

Title = "\n" +
" Instrument : " + Name() +  FullName()+"\n " +
"Formula : " + " PF StockChart" + "\n " +
"Box  : " +  box + "     " +
"Reverse : " +  reverse + "\n " +
"ATR : " + LastValue(ATR(20));
__._,_.___

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html





SPONSORED LINKS
Investment management software Investment property software Investment software
Investment tracking software Return on investment software

Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___