PureBytes Links
Trading Reference Links
|
Hi Graham,
I use only EOD data and you mention "real time
basis", so I might not be the best to give you feedback.
However, for me and some symbols, the blue
staircase doesn't line up on the lowest lows and highest highs. (see attached,
applied to the QQQs)
Should it?
-john
----- Original Message -----
From: "Graham" <<A
href=""><FONT face=Arial
size=2>gkavanagh@xxxxxxxxxxxxx<FONT face=Arial
size=2>>
To: <<A
href=""><FONT face=Arial
size=2>amibroker@xxxxxxxxxxxxxxx<FONT face=Arial
size=2>>
Sent: Tuesday, June 29, 2004 8:43 PM
Subject: [amibroker] Bullish Percent Index Code
#1
<FONT face=Arial
size=2>Here is stage 1 of the code on the road to producing BPI figures. This
isjust the forming of the boxed values of price data. It applies only to
eachstock and so far just a plot to see if the P&F values can be created
on areal time basis.Looking for comments back after you have had a
chance to work out what Ihave done, and what the results look like. Any
suggestions on how to tidy upthe code, any errors/omissions, appreciated as
sometimes I can take a longroad as an idea meanders through my head.
The PF values appear as a blue staircase line on backdrop of the
pricechart.Copy the code below to IB
windowCheers,Graham<A
href=""><FONT face=Arial
size=2>http://e-wire.net.au/~eb_kavan/<FONT face=Arial
size=2>// Bullish Percent Index// Buy Signals generated via P&F //
Graham Kavanagh 30 Jun
2004SetBarsRequired(100000,100000);function ToBox( Price
){ Boxes = Min( Price, 0.25 )/0.0625 + Max( (
Min( Price, 1 )-0.25 ) ,0 )/0.125 + Max( ( Min( Price, 5 )-1 ) ,0
)/0.25 + Max( ( Min( Price, 20 )-5 ) ,0 )/0.5 + Max( ( Min(
Price, 100 )-20 ) ,0 )/1 + Max( ( Min( Price, 200 )-100 ) ,0 )/2 +
Max( ( Min( Price, 500 )-200 ) ,0 )/4 + Max( ( Min( Price,
1000 )-500 ) ,0 )/5 + Max( ( Min( Price, 25000 )-1000 ) ,0 )/50 +
Max( ( Price-25000 ) ,0 )/500 ; return Boxes;
}// round boxes down for High and up for LowLx =
ceil(ToBox(L));Hx = floor(ToBox(H));// set variable values for
locating peak/troughs of columnsBar = BarIndex();BarDate =
DateNum();BarTurn = 0;DateTurn = 0;DateEnd = 0;BarEnd =
0;fall = 1;rise = 0;PFC[0] = Lx[0];reverse = 3;dirn
= -1; // -1=down, 1=upfor( i = 1; i < BarCount; i++
){ if( Lx[i]<=(PFC[i-1]-1) && V[i]>0 &&
dirn==-1) //continue
down { PFC[i] = Lx[i]; DateEnd[i] =
BarDate[i]; BarEnd[i] = Bar[i]; fall[i] = 1;
rise[i] = 0; } else { if(
Hx[i]>=(PFC[i-1]+Reverse) && Lx[i]>PFC[i-1] && V[i]>0
&& dirn==-1)//Change direction to up {
dirn = 1; PFC[i] = Hx[i]; BarTurn[i] =
Bar[i]; DateTurn[i] = BarDate[i]; DateEnd[i] =
BarDate[i]; BarEnd[i] = Bar[i]; fall[i] =
0; rise[i] = 1; } else
{ if( Hx[i]>=(PFC[i-1]+1) && V[i]>0 &&
dirn==1) //Continue
up { PFC[i] = Hx[i];
DateEnd[i] = BarDate[i]; BarEnd[i] =
Bar[i]; fall[i] = 0; rise[i] =
1; } else
{ if( Lx[i]<=(PFC[i-1]-Reverse) &&
Hx[i]<PFC[i-1] && V[i]>0 && dirn==1)//Change direction
to down { dirn =
-1; PFC[i] = Lx[i];
BarTurn[i] = Bar[i]; DateTurn[i] =
BarDate[i]; DateEnd[i] =
BarDate[i]; BarEnd[i] =
Bar[i]; fall[i] = 1;
rise[i] = 0; }
else { PFC[i] =
PFC[i-1]; rise[i] =
rise[i-1]; fall[i] =
fall[i-1]; } }
} }}//Convert boxes to prices for check
plottingb1=0 + 0.25 / 0.0625;b2=b1 + (1-0.25) / 0.125;b3=b2 +
(5-1) / 0.25;b4=b3 + (20-5) / 0.5;b5=b4 + (100-20) / 1;b6=b5 +
(200-100) / 2;b7=b6 + (500-200) / 4;b8=b7 + (1000-500) / 5;b9=b8 +
(25000-100) / 50;function ToPrice( Value ){ Price =
Min( Value, b1 ) * 0.0625 + Min( Max( Value-b1, 0 ), b2-b1 )
* 0.125 + Min( Max( Value-b2, 0 ), b3-b2 ) * 0.25 +
Min( Max( Value-b3, 0 ), b4-b3 ) * 0.5 + Min( Max( Value-b4,
0 ), b5-b4 ) * 1 + Min( Max( Value-b5, 0 ), b6-b5 ) * 2 +
Min( Max( Value-b6, 0 ), b7-b6 ) * 4 + Min( Max( Value-b7, 0
), b8-b7 ) * 5 + Min( Max( Value-b8, 0 ), b9-b8 ) * 50 +
Max( Value-b9, 0 ) * 500 ; return Price;
}Plot( C, "", colorBlack, styleBar);Plot( toprice(PFC), "",
colorBlue, styleStaircase);//Plot( toprice(Lx), "", colorRed,
styleStaircase);//Plot( toprice(Hx), "", colorGreen,
styleStaircase);Title = Name()+" "+Date()+ " PFC = " + pfc + ", Rise
= " + rise + ", Fall =" + fall;------------------------
Yahoo! Groups Sponsor --------------------~--> Make a clean sweep of
pop-up ads. Yahoo! Companion Toolbar.Now with Pop-Up Blocker. Get it for
free!<A
href=""><FONT face=Arial
size=2>http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/GHeqlB/TM<FONT
face=Arial
size=2>--------------------------------------------------------------------~->
Check AmiBroker web page at:<A
href=""><FONT face=Arial
size=2>http://www.amibroker.com/Check
group FAQ at: <A
href=""><FONT
face=Arial
size=2>http://groups.yahoo.com/group/amibroker/files/groupfaq.html<FONT
face=Arial size=2> Yahoo! Groups Links<*> To visit your group
on the web, go to: <A
href=""><FONT face=Arial
size=2>http://groups.yahoo.com/group/amibroker/<FONT
face=Arial size=2><*> To unsubscribe from this group, send an email
to: <A
href=""><FONT face=Arial
size=2>amibroker-unsubscribe@xxxxxxxxxxxxxxx<FONT face=Arial
size=2><*> Your use of Yahoo! Groups is subject
to: <A
href=""><FONT face=Arial
size=2>http://docs.yahoo.com/info/terms/<FONT face=Arial
size=2>
Check AmiBroker web page at:
http://www.amibroker.com/
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Yahoo! Groups Sponsor
ADVERTISEMENT
Yahoo! Groups Links
To visit your group on the web, go to:http://groups.yahoo.com/group/amibroker/
To unsubscribe from this group, send an email to:amibroker-unsubscribe@xxxxxxxxxxxxxxx
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
Attachment:
pnf.PNG
Attachment:
Description: "Description: PNG image"
|