PureBytes Links
Trading Reference Links
|
>From http://stockcharts.com/education/How/AnalysisTools/pnfCharts.html:
Traditional box scaling preloads box sizes historically used for that
particular price range. The reversal amount starts at 2 (this should be 3),
but can be adjusted dynamically. Here are the traditional box sizes used in
our charts:
Price Range Box Size
Under $0.25 .0625
.26 to 1.00 .125
1.01 to 5.00 .25
5.01 to 20.00 .50
20.01 to 100.00 1.00
100.01 to 200.00 2.00
200.01 to 500.00 4.00
500.01 to 1,000.00 5.00
1,000.01 to 25,000.00 50.00
25,000.01 and up 500.00
The traditional scaling in PnF.dll only uses .25 (less than $5) up to 2
(greater than $100) because I have been a student of Dorsey Wright long
before StockCharts came along, but the DLL can change when and if needed.
Plus you have the ability to use your own boxsize in the DLL.
Peter
-----Original Message-----
From: Richard Alford [mailto:richard.alford@x...]
Sent: Friday, July 19, 2002 4:59 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] Re: Point & Figure Chart in AFL
Looks great, Peter. Can you elaborate on what is meant by the traditional
scaling? "x = Boxsize (use '0' for traditional scaling)or provide a
reference. I was checking out Kaufman and I couldn't find a recommended box
size.
Thanks,
Richard
----- Original Message -----
From: bluesinvestor
To: amibroker@xxxxxxxxxxxxxxx
Sent: Friday, July 19, 2002 3:29 PM
Subject: RE: [amibroker] Re: Point & Figure Chart in AFL
Forgot to mention:
http://groups.yahoo.com/group/amibroker/message/17288
For PnF.dll information.
Peter
-----Original Message-----
From: bluesinvestor [mailto:investor@x...]
Sent: Friday, July 19, 2002 4:23 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: RE: [amibroker] Re: Point & Figure Chart in AFL
Hello Mirat,
Good stuff!! I made some modifications to your code to call my Point
& Figure DLL and plot the data using your jscript code. I tested it on one
stock (PYPL - short history) and it looks correct (except for the beginning
bars:
I have attached the AFL to this email (and posted below for Yahoo
viewers).
Thanks again,
Peter
// PF Chart by Mirat Dave
// Copy and paste this as a custom indicator.
x=calcPnF(0,3);
EnableScript("jscript");
<%
PnFValue = VBArray( AFL( "PnFVal" ) ).toArray();
PnFColumn = VBArray( AFL( "PnFCol" ) ).toArray();
// Calculate running average stock price for use in calculating the
Box size.
PFO = new Array();
PFC = new Array();
// initialize first element
j = 0;
PFO[j] = PnFValue[0];
PFC[j] = PnFValue[0];
// perform the loop that produces PF Chart
for( i = 1; i < PnFValue.length; i++ )
{
if ( PnFColumn[i] == 0 )
{
if( PnFColumn[i] == 0 && PnFColumn[i-1] == 0)
{
PFC[j] = PnFValue[i];
}
if( PnFColumn[i] == 0 && PnFColumn[i-1] != 0 )
{
j++;
PFC[j] = PnFValue[i];
PFO[j] = PnFValue[i-1];
}
}
else
{
if (PnFColumn[i] == 1)
{
if( PnFColumn[i] == 1 && PnFColumn[i-1] == 1 )
{
PFC[j] = PnFValue[i];
}
if( PnFColumn[i] == 1 && PnFColumn[i-1] != 1 )
{
j++;
PFO[j] = PnFValue[i-1];
PFC[j] = PnFValue[i];
}
}
}
}
// Shift chart to the right to eliminate trailing empty data
// - PF charts are generally smaller/shorter then the full stock
charts because they lack a time scale.
delta = PnFValue.length - PFO.length;
for( i = PnFValue.length; i > delta; i-- )
{
PFO[ i-1 ] = PFO[ i-delta-1];
PFC[ i-1 ] = PFC[ i-delta-1];
}
for( i = 0; i < delta; i++)
{
PFO[ i-1 ] = 0;
PFC[ i-1 ] = 0;
}
AFL.Var("delta") = delta;
AFL.Var("length") = PnFValue.length;
AFL.Var("PFO") = PFO;
AFL.Var("PFC") = PFC;
%>
O = PFO;
C = PFC;
H = (O+C)/2;
L = (O+C)/2;
GraphXSpace = 9;
Graph0Style = 64;
Graph0Color =1;
Graph0 = C;
Filter=C>0;
AddColumn(PFO,"PFO");
AddColumn(PFC,"PFC");
-----Original Message-----
From: mirat_dave [mailto:mirat_dave@x...]
Sent: Friday, July 19, 2002 10:00 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Re: Point & Figure Chart in AFL
Hello Richard and Dimitris,
Sorry to have caused so much confusion.
Since most stocks since 2000 have been trending down, you may get a
only a few bars because the P&F Chart ignores small up moves and only
extends down bars when the price moves more than the box size. Since
2000, you may very well have only a few bars. Try loading more data
for at least one stock.
I used AmiQuote and Yahoo for the data. I have data from January
1994. The AmiBroker version on which I created this file is 4.0.0
Apr 26 2002.
I do not know if the AmiBroker version is causing the difference. I
saw that it worked for Richard on MSFT (although I am not sure what
the whole MSFT v. MSFT issue was - it seems to have resolved
itself). Perhaps Richard also has more data loaded.
As you can see from the script, it is very simple. If problems
continue, I would be happy to go through it in detail to see if there
is a coding error.
I'm afraid I have no other explanation other than more data. Let's
try that first.
Mirat
PS I would post .gifs of my charts but I do not know how to attach a
file to my reply. Although that would not help resolve the issue. :-)
--- In amibroker@xxxx, "Richard Alford" <richard.alford@xxxx> wrote:
> I am just isolating variables. If we have the same program and
version (4.06.1 Jun 19 build), the same indicator code (this I
confirmed) and same data we should get the same result. (I continue
to believe in deterministic computing - probably naive in light of
Microsoft!). The questionable variable, and a big one, is the data
source - I use qp2. Perhaps someone using yahoo could compare to
your results?
>
>
> It does appear that the "box size", the significant change that
defines an X or O in my understanding, should be normalized to the
price of the instrument to account for the difference in WCOME
pricing vs. DJIA, for example. I am referring to the code fragment:
>
> // Calculate PF Chart Box size and minimum Reverse values
> // Box = ((tot[i]/(i+1))^.5)/7.3374;
>
> Cheers,
>
> Richard
> ----- Original Message -----
> From: dtsokakis
> To: amibroker@xxxx
> Sent: Wednesday, July 17, 2002 2:49 PM
> Subject: [amibroker] Re: Point & Figure Chart in AFL
>
>
> Richard,
> YHOO via Amiquote.
> Why do you think it is a matter of data provider ?
> Dimitris Tsokakis
>
> --- In amibroker@xxxx, "Richard Alford" <richard.alford@xxxx>
wrote:
> > but the point remains that you and I get different results.
what
> is your data source?
> >
> > Richard
> > ----- Original Message -----
> > From: dtsokakis
> > To: amibroker@xxxx
> > Sent: Wednesday, July 17, 2002 1:47 PM
> > Subject: [amibroker] Re: Point & Figure Chart in AFL
> >
> >
> > Richard,
> > ANY other function works just fine with my valuable Amibroker
> 4.06.
> > Just fine.
> > I can not see the reason for this P&F script.
> > Anyway, the author perhaps could expain.
> > Dimitris Tsokakis
> >
> > --- In amibroker@xxxx, "Richard Alford" <richard.alford@xxxx>
> wrote:
> > > DT, I agree it was not easy to understand. The attached
charts
> > showed the TWO results that were generated whenever I entered
the
> > symbol MSFT - it appears to be a fluke and I cannot reproduce
it
> any
> > longer. Although there is not ticker name in the formula,
there
> was
> > strange behavior occurring for MSFT and MSFT only at that
time.
> > >
> > > The gist of my reply to you was that using the SAME code as
you
> > posted and using the code I copied from the files sections, I
> > generated the same results - and not the results that you
were
> > creating. That suggests that you have a problem in your data
> and/or
> > setup. The only reason for the two codes was to guarantee
that
> there
> > wasn't a subtle error - there was not.
> > >
> > > Sorry for adding the confusion about the MSFT fluke at the
same
> > time.
> > >
> > > Cheers,
> > >
> > > Richard
> > > ----- Original Message -----
> > > From: dtsokakis
> > > To: amibroker@xxxx
> > > Sent: Wednesday, July 17, 2002 12:47 AM
> > > Subject: [amibroker] Re: Point & Figure Chart in AFL
> > >
> > >
> > > Richard,
> > > It is not easy to understand this
> > > "the plot for MSFT changes when one changes the symbol go
> MSFT
> > from
> > > MSFT??? "
> > > I copied the formula from
> > > http://groups.yahoo.com/group/amibroker/files/Point-Figure
> > > pasted in my Ind. builder and get the posted gifs.
> > > No ticker name is into the formula.
> > > What is "the two MSFT " ???
> > > Do you use the same code from the above address??
> > > DT
> > >
> > >
> > > --- In amibroker@xxxx, "Richard Alford"
<richard.alford@xxxx>
> > wrote:
> > > > Those are not the figures I generate using the code in
> > the "files
> > > section". (Why wasn't this put in the AFL library is a
> question
> > in
> > > my mind???)
> > > >
> > > > Just noticed that the plot for MSFT changes when one
> changes
> > the
> > > symbol go MSFT from MSFT??? Not the case for AMZN or
ORCL?
> > > >
> > > > I attached the two MSFT for comparison, one is "my"
copy,
> and
> > the
> > > other is a copy and paste of the code in your note. The
> > difference
> > > is the quirk in MSFT, not an error in the code you have
used.
> And
> > DT
> > > do you really like black on blue borders? Personally, I
can
> > never
> > > read your chart titles.
> > > >
> > > > Cheers,
> > > >
> > > > Richard
> > > >
> > > >
> > > > ----- Original Message -----
> > > > From: Dimitris Tsokakis
> > > > To: amibroker@xxxx
> > > > Sent: Tuesday, July 16, 2002 1:14 PM
> > > > Subject: [amibroker] Re: Point & Figure Chart in AFL
> > > >
> > > >
> > > > Mirat,
> > > > Here is P&F charts for AMZN, MSFT and ORCL.
> > > > Data since Jan 2000.
> > > > Is it the expected picture ?
> > > > The code, copied from files section
> > > >
> > > > // PF Chart by Mirat Dave
> > > > // Copy and paste this as a custom indicator.
> > > >
> > > > EnableScript("jscript");
> > > > <%
> > > >
> > > > High = VBArray( AFL( "High" ) ).toArray();
> > > > Low = VBArray( AFL( "Low" ) ).toArray();
> > > >
> > > > // Calculate running average stock price for use in
> > calculating
> > > the Box size.
> > > >
> > > > tot = new Array();
> > > > tot[0] = (High[0] + Low[0])/2;
> > > > for( i=1; i < High.length; i++ )
> > > > {
> > > > tot[i] = tot[i-1] + ((High[i] + Low[i])/2);
> > > > }
> > > > PFO = new Array();
> > > > PFC = new Array();
> > > >
> > > > // initialize first element
> > > >
> > > > j = 0;
> > > > PFO[j] = High[0];
> > > > PFC[j] = Low[0];
> > > > down = 1; // By default the first bar is a down bar.
> > > >
> > > > up = 0;
> > > > swap = 0;
> > > >
> > > > // perform the loop that produces PF Chart
> > > >
> > > > for( i = 1; i < High.length; i++ )
> > > > {
> > > > // Calculate PF Chart Box size and minimum Reverse
values
> > > >
> > > > Box = ((tot[i]/(i+1))^.5)/7.3374;
> > > > Reverse = Box * 3;
> > > > if( Low[i] < PFC[j] - Box && down)
> > > > {
> > > > PFC[j] = Low[i];
> > > > }
> > > > else
> > > > {
> > > > if( High[i] >= PFC[j] + Reverse && down)
> > > > {
> > > > j++;
> > > > swap = 1;
> > > > PFO[j] = Low[i];
> > > > PFC[j] = High[i];
> > > > }
> > > > }
> > > > if( High[i] > PFC[j] + Box && up)
> > > > {
> > > > PFC[j] = High[i];
> > > > }
> > > > else
> > > > {
> > > > if( Low[i] <= PFC[j] - Reverse && up)
> > > > {
> > > > j++;
> > > > PFC[j] = Low[i];
> > > > PFO[j] = High[i];
> > > > swap = 1;
> > > > }
> > > > }
> > > > if( swap )
> > > > {
> > > > swap = 0;
> > > > if( up )
> > > > {
> > > > up = 0;
> > > > down = 1;
> > > > }
> > > > else
> > > > {
> > > > up = 1;
> > > > down = 0;
> > > > }
> > > > }
> > > > }
> > > >
> > > > // Shift chart to the right to eliminate trailing
empty
> data
> > > > // - PF charts are generally smaller/shorter then the
> full
> > stock
> > > charts because they lack a time scale.
> > > >
> > > > delta = High.length - PFO.length;
> > > > for( i = High.length; i > delta; i-- )
> > > > {
> > > > PFO[ i-1 ] = PFO[ i-delta-1];
> > > > PFC[ i-1 ] = PFC[ i-delta-1];
> > > > }
> > > > for( i = 0; i < delta; i++)
> > > > {
> > > > PFO[ i-1 ] = 0;
> > > > PFC[ i-1 ] = 0;
> > > > }
> > > > AFL.Var("PFO") = PFO;
> > > > AFL.Var("PFC") = PFC;
> > > > %>
> > > >
> > > > O = PFO;
> > > > C = PFC;
> > > >
> > > > H = (O+C)/2;
> > > > L = (O+C)/2;
> > > >
> > > > GraphXSpace = 9;
> > > > Graph0Style = 64;
> > > >
> > > > Graph0Color =1;
> > > > Graph0 = C;
> > > >
> > > > Thanks in advance for any reply.
> > > > Dimitris Tsokakis
> > > >
> > > > Yahoo! Groups Sponsor
> > > >
> > > > Click here to find your contact lenses!
> > > >
> > > > Your use of Yahoo! Groups is subject to the Yahoo!
Terms
> of
> > > Service.
> > >
> > >
> > > Yahoo! Groups Sponsor
> > > ADVERTISEMENT
> > >
> > >
> > >
> > > Your use of Yahoo! Groups is subject to the Yahoo! Terms
of
> > Service.
> >
> >
> > Yahoo! Groups Sponsor
> > ADVERTISEMENT
> >
> >
> >
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service.
>
>
> Yahoo! Groups Sponsor
> ADVERTISEMENT
>
>
>
> Your use of Yahoo! Groups is subject to the Yahoo! Terms of
Service.
------------------------ Yahoo! Groups
Sponsor ---------------------~-->
Will You Find True Love?
Will You Meet the One?
Free Love Reading by phone!
http://us.click.yahoo.com/O3jeVD/R_ZEAA/Ey.GAA/GHeqlB/TM
---------------------------------------------------------------------~
->
Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
Yahoo! Groups Sponsor
ADVERTISEMENT
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
------=_NextPart_001_0094_01C22F47.41D644A0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Diso-8859-1"=
>
<META content=3D"MSHTML 5.50.4916.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><SPAN class=3D533150621-19072002><FONT face=3DArial color=3D#0000ff=20
size=3D2>Richard,</FONT></SPAN></DIV>
<DIV><SPAN class=3D533150621-19072002><FONT face=3DArial color=3D#0000ff=20
size=3D2></FONT></SPAN> </DIV>
<DIV><SPAN class=3D533150621-19072002><FONT face=3DArial color=3D#0000ff si=
ze=3D2>From=20
<A=20
href=3D"http://stockcharts.com/education/How/AnalysisTools/pnfCharts.html">=
http://stockcharts.com/education/How/AnalysisTools/pnfCharts.html</A>:</FON=
T></SPAN></DIV>
<DIV><SPAN class=3D533150621-19072002><FONT face=3DArial color=3D#0000ff=20
size=3D2></FONT></SPAN> </DIV>
<DIV><SPAN class=3D533150621-19072002><STRONG>Traditional box scaling</STRO=
NG>=20
preloads box sizes historically used for that particular price range. The=20
reversal amount starts at 2 (this should be 3), but can be adjusted dynamic=
ally.=20
Here are the traditional box sizes used in our charts:<BR><BR></DIV>
<TABLE cellPadding=3D4 bgColor=3D#99ccff border=3D0>
<TBODY>
<TR>
<TD>
<TABLE cellPadding=3D1 border=3D0>
<TBODY>
<TR>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2><B>Price=
=20
Range</B></FONT></TD>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2><B>Box=20
Size</B></FONT></TD></TR>
<TR>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>Under=20
$0.25</FONT></TD>
<TD><FONT face=3D"verdana, arial, sans-serif"=20
size=3D-2>.0625</FONT></TD></TR>
<TR>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>.26 to=20
1.00</FONT></TD>
<TD><FONT face=3D"verdana, arial, sans-serif"=20
size=3D-2>.125</FONT></TD></TR>
<TR>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>1.01 to=20
5.00</FONT></TD>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>.25</FONT=
></TD></TR>
<TR>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>5.01 to=20
20.00</FONT></TD>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>.50</FONT=
></TD></TR>
<TR>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>20.01 to=
=20
100.00</FONT></TD>
<TD><FONT face=3D"verdana, arial, sans-serif"=20
size=3D-2>1.00</FONT></TD></TR>
<TR>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>100.01 to=
=20
200.00</FONT></TD>
<TD><FONT face=3D"verdana, arial, sans-serif"=20
size=3D-2>2.00</FONT></TD></TR>
<TR>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>200.01 to=
=20
500.00</FONT></TD>
<TD><FONT face=3D"verdana, arial, sans-serif"=20
size=3D-2>4.00</FONT></TD></TR>
<TR>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>500.01 to=
=20
1,000.00</FONT></TD>
<TD><FONT face=3D"verdana, arial, sans-serif"=20
size=3D-2>5.00</FONT></TD></TR>
<TR>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>1,000.01 =
to=20
25,000.00 </FONT></TD>
<TD><FONT face=3D"verdana, arial, sans-serif"=20
size=3D-2>50.00</FONT></TD></TR>
<TR>
<TD><FONT face=3D"verdana, arial, sans-serif" size=3D-2>25,000.01=
and=20
up</FONT></TD>
<TD><FONT face=3D"verdana, arial, sans-serif"=20
size=3D-2>500.00</FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY>=
</TABLE>
<DIV> </DIV>
<DIV><FONT face=3DArial><FONT color=3D#0000ff><FONT size=3D2>T<SPAN=20
class=3D533150621-19072002>he traditional scaling in PnF.dll only uses .25 =
(less=20
than $5) up to 2 (greater than $100) because I have been a studen=
t of=20
Dorsey Wright long before StockCharts came along, but the DLL can change wh=
en=20
and if needed. Plus you have the ability to use your own boxsize in t=
he=20
DLL.</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=3DArial><FONT color=3D#0000ff><FONT size=3D2><SPAN=20
class=3D533150621-19072002></SPAN></FONT></FONT></FONT> </DIV>
<DIV><FONT face=3DArial><FONT color=3D#0000ff><FONT size=3D2><SPAN=20
class=3D533150621-19072002>Peter</SPAN></FONT></FONT></FONT></SPAN></DIV>
<BLOCKQUOTE>
<DIV class=3DOutlookMessageHeader dir=3Dltr align=3Dleft><FONT face=3DTah=
oma=20
size=3D2>-----Original Message-----<BR><B>From:</B> Richard Alford=20
[mailto:richard.alford@x...]<BR><B>Sent:</B> Friday, July 19, 2002 4:5=
9=20
PM<BR><B>To:</B> amibroker@xxxxxxxxxxxxxxx<BR><B>Subject:</B> Re: [amibro=
ker]=20
Re: Point & Figure Chart in AFL<BR><BR></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Looks great, Peter. Can you elabor=
ate on=20
what is meant by the traditional scaling? <FONT face=3D"Courier New=
"=20
size=3D3>"x =3D Boxsize (use '0' for traditional scaling)</FONT></FONT><F=
ONT=20
size=3D+0><FONT face=3DArial size=3D2>or provide a reference. I was=
checking=20
out Kaufman and I couldn't find a recommended box size.</FONT></FONT></DI=
V>
<DIV><FONT size=3D+0><FONT face=3DArial size=3D2></FONT></FONT> </DI=
V>
<DIV><FONT size=3D+0><FONT face=3DArial size=3D2>Thanks,</FONT></FONT></D=
IV>
<DIV><FONT size=3D+0><FONT face=3DArial size=3D2></FONT></FONT> </DI=
V>
<DIV><FONT size=3D+0><FONT face=3DArial size=3D2>Richard</FONT></DIV>
<DIV><FONT face=3DArial><BR><FONT size=3D2></FONT></FONT></DIV></FONT>
<BLOCKQUOTE=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-=
LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV=20
style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>F=
rom:</B>=20
<A title=3Dinvestor@xxxx=20
href=3D"mailto:investor@xxxx">bluesinvestor</A> </DIV>
<DIV style=3D"FONT: 10pt arial"><B>To:</B> <A title=3Damibroker@xxxx=
oups.com=20
href=3D"mailto:amibroker@xxxxxxxxxxxxxxx">amibroker@xxxxxxxxxxxxxxx</A>=
</DIV>
<DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Friday, July 19, 2002 3:29=
=20
PM</DIV>
<DIV style=3D"FONT: 10pt arial"><B>Subject:</B> RE: [amibroker] Re: Poi=
nt=20
& Figure Chart in AFL</DIV>
<DIV><BR></DIV>
<DIV><SPAN class=3D741082920-19072002><FONT face=3DArial color=3D#0000f=
f=20
size=3D2>Forgot to mention:</FONT></SPAN></DIV>
<DIV><SPAN class=3D741082920-19072002><FONT face=3DArial color=3D#0000f=
f=20
size=3D2></FONT></SPAN> </DIV>
<DIV><SPAN class=3D741082920-19072002><FONT face=3DArial color=3D#0000f=
f size=3D2><A=20
href=3D"http://groups.yahoo.com/group/amibroker/message/17288">http://g=
roups.yahoo.com/group/amibroker/message/17288</A></FONT></SPAN></DIV>
<DIV><SPAN class=3D741082920-19072002><FONT face=3DArial color=3D#0000f=
f=20
size=3D2></FONT></SPAN> </DIV>
<DIV><SPAN class=3D741082920-19072002><FONT face=3DArial color=3D#0000f=
f=20
size=3D2>For PnF.dll information.</FONT></SPAN></DIV>
<DIV><SPAN class=3D741082920-19072002><FONT face=3DArial color=3D#0000f=
f=20
size=3D2></FONT></SPAN> </DIV>
<DIV><SPAN class=3D741082920-19072002><FONT face=3DArial color=3D#0000f=
f=20
size=3D2>Peter</FONT></SPAN></DIV>
<BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
<DIV class=3DOutlookMessageHeader dir=3Dltr align=3Dleft><FONT face=
=3DTahoma=20
size=3D2>-----Original Message-----<BR><B>From:</B> bluesinvestor=20
[mailto:investor@x...]<BR><B>Sent:</B> Friday, July 19, 2002=
4:23=20
PM<BR><B>To:</B> <A=20
href=3D"mailto:amibroker@xxxxxxxxxxxxxxx">amibroker@xxxxxxxxxxxxxxx</=
A><BR><B>Subject:</B>=20
RE: [amibroker] Re: Point & Figure Chart in AFL<BR><BR></FONT></D=
IV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2>Hello Mirat,</FONT><=
/DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2>Good stuff!! I=
made some=20
modifications to your code to call my Point & Figure DLL and plot=
the=20
data using your jscript code. I tested it on one stock (PYPL - =
short=20
history) and it looks correct (except for the beginning bars:</FONT><=
/DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV>
<DIV><IMG alt=3D"" hspace=3D0 src=3D"cid:533150621@xxxx" ali=
gn=3Dbaseline=20
border=3D0></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV>
<DIV><IMG alt=3D"" hspace=3D0 src=3D"cid:533150621@xxxx" ali=
gn=3Dbaseline=20
border=3D0></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2>I have attached the =
AFL to this=20
email (and posted below for Yahoo viewers).</FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2>Thanks again,</FONT>=
</DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2>Peter</FONT></DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial color=3D#0000ff size=3D2><FONT color=3D#00800=
0 size=3D1>
<P>// PF Chart by Mirat Dave</P>
<P>// Copy and paste this as a custom indicator.</P></FONT><FONT=20
color=3D#000000 size=3D1>
<P>x=3D</FONT><FONT color=3D#0000ff size=3D1>calcPnF</FONT><FONT colo=
r=3D#000000=20
size=3D1>(</FONT><FONT color=3D#ff00ff size=3D1>0</FONT><FONT color=
=3D#000000=20
size=3D1>,</FONT><FONT color=3D#ff00ff size=3D1>3</FONT><FONT color=
=3D#000000=20
size=3D1>);</P></FONT><FONT color=3D#0000ff size=3D1>
<P>EnableScript</FONT><FONT color=3D#000000 size=3D1>(</FONT><FONT=20
color=3D#ff00ff size=3D1>"jscript"</FONT><FONT color=3D#000000 size=
=3D1>);</P>
<P><%</P>
<P>PnFValue =3D VBArray( AFL( </FONT><FONT color=3D#ff00ff=20
size=3D1>"PnFVal"</FONT><FONT color=3D#000000 size=3D1> ) ).toArray()=
;</P>
<P>PnFColumn =3D VBArray( AFL( </FONT><FONT color=3D#ff00ff=20
size=3D1>"PnFCol"</FONT><FONT color=3D#000000 size=3D1> )=20
).toArray();</P></FONT><FONT color=3D#008000 size=3D1>
<P>// Calculate running average stock price for use in calculating th=
e Box=20
size.</P></FONT><FONT color=3D#000000 size=3D1>
<P>PFO =3D new Array();</P>
<P>PFC =3D new Array();</P></FONT><FONT color=3D#008000 size=3D1>
<P>// initialize first element</P></FONT><FONT color=3D#000000 size=
=3D1>
<P>j =3D </FONT><FONT color=3D#ff00ff size=3D1>0</FONT><FONT color=3D=
#000000=20
size=3D1>;</P>
<P>PFO[j] =3D PnFValue[</FONT><FONT color=3D#ff00ff size=3D1>0</FONT>=
<FONT=20
color=3D#000000 size=3D1>];</P>
<P>PFC[j] =3D PnFValue[</FONT><FONT color=3D#ff00ff size=3D1>0</FONT>=
<FONT=20
color=3D#000000 size=3D1>];</P></FONT><FONT color=3D#008000 size=3D1>
<P>// perform the loop that produces PF Chart</P></FONT><FONT=20
color=3D#000000 size=3D1>
<P>for( i =3D </FONT><FONT color=3D#ff00ff size=3D1>1</FONT><FONT col=
or=3D#000000=20
size=3D1>; i < PnFValue.length; i++ )</P>
<P>{</P>
<P>if ( PnFColumn[i] =3D=3D </FONT><FONT color=3D#ff00ff size=3D1>0</=
FONT><FONT=20
color=3D#000000 size=3D1> ) </P>
<P>{</P>
<P>if( PnFColumn[i] =3D=3D </FONT><FONT color=3D#ff00ff size=3D1>0</F=
ONT><FONT=20
color=3D#000000 size=3D1> && PnFColumn[i-</FONT><FONT color=
=3D#ff00ff=20
size=3D1>1</FONT><FONT color=3D#000000 size=3D1>] =3D=3D </FONT><FONT=
color=3D#ff00ff=20
size=3D1>0</FONT><FONT color=3D#000000 size=3D1>)</P>
<P>{</P>
<P>PFC[j] =3D PnFValue[i];</P>
<P>}</P>
<P>if( PnFColumn[i] =3D=3D </FONT><FONT color=3D#ff00ff size=3D1>0</F=
ONT><FONT=20
color=3D#000000 size=3D1> && PnFColumn[i-</FONT><FONT color=
=3D#ff00ff=20
size=3D1>1</FONT><FONT color=3D#000000 size=3D1>] !=3D </FONT><FONT c=
olor=3D#ff00ff=20
size=3D1>0</FONT><FONT color=3D#000000 size=3D1> )</P>
<P>{</P>
<P>j++;</P>
<P>PFC[j] =3D PnFValue[i];</P>
<P>PFO[j] =3D PnFValue[i-</FONT><FONT color=3D#ff00ff size=3D1>1</FON=
T><FONT=20
color=3D#000000 size=3D1>];</P>
<P>}</P>
<P>}</P>
<P>else</P>
<P>{</P>
<P>if (PnFColumn[i] =3D=3D </FONT><FONT color=3D#ff00ff size=3D1>1</F=
ONT><FONT=20
color=3D#000000 size=3D1>)</P>
<P>{</P>
<P>if( PnFColumn[i] =3D=3D </FONT><FONT color=3D#ff00ff size=3D1>1</F=
ONT><FONT=20
color=3D#000000 size=3D1> && PnFColumn[i-</FONT><FONT color=
=3D#ff00ff=20
size=3D1>1</FONT><FONT color=3D#000000 size=3D1>] =3D=3D </FONT><FONT=
color=3D#ff00ff=20
size=3D1>1</FONT><FONT color=3D#000000 size=3D1> )</P>
<P>{</P>
<P>PFC[j] =3D PnFValue[i];</P>
<P>}</P>
<P>if( PnFColumn[i] =3D=3D </FONT><FONT color=3D#ff00ff size=3D1>1</F=
ONT><FONT=20
color=3D#000000 size=3D1> && PnFColumn[i-</FONT><FONT color=
=3D#ff00ff=20
size=3D1>1</FONT><FONT color=3D#000000 size=3D1>] !=3D </FONT><FONT c=
olor=3D#ff00ff=20
size=3D1>1</FONT><FONT color=3D#000000 size=3D1> )</P>
<P>{</P>
<P>j++;</P>
<P>PFO[j] =3D PnFValue[i-</FONT><FONT color=3D#ff00ff size=3D1>1</FON=
T><FONT=20
color=3D#000000 size=3D1>];</P>
<P>PFC[j] =3D PnFValue[i];</P>
<P>}</P>
<P>}</P>
<P>}</P>
<P>}</P></FONT><FONT color=3D#008000 size=3D1>
<P>// Shift chart to the right to eliminate trailing empty data</P>
<P>// - PF charts are generally smaller/shorter then the full stock c=
harts=20
because they lack a time scale.</P></FONT><FONT color=3D#000000 size=
=3D1>
<P>delta =3D PnFValue.length - PFO.length;</P>
<P>for( i =3D PnFValue.length; i > delta; i-- )</P>
<P>{</P>
<P>PFO[ i-</FONT><FONT color=3D#ff00ff size=3D1>1</FONT><FONT color=
=3D#000000=20
size=3D1> ] =3D PFO[ i-delta-</FONT><FONT color=3D#ff00ff size=3D1>1<=
/FONT><FONT=20
color=3D#000000 size=3D1>];</P>
<P>PFC[ i-</FONT><FONT color=3D#ff00ff size=3D1>1</FONT><FONT color=
=3D#000000=20
size=3D1> ] =3D PFC[ i-delta-</FONT><FONT color=3D#ff00ff size=3D1>1<=
/FONT><FONT=20
color=3D#000000 size=3D1>];</P>
<P>}</P>
<P>for( i =3D </FONT><FONT color=3D#ff00ff size=3D1>0</FONT><FONT col=
or=3D#000000=20
size=3D1>; i < delta; i++)</P>
<P>{</P>
<P>PFO[ i-</FONT><FONT color=3D#ff00ff size=3D1>1</FONT><FONT color=
=3D#000000=20
size=3D1> ] =3D </FONT><FONT color=3D#ff00ff size=3D1>0</FONT><FONT c=
olor=3D#000000=20
size=3D1>;</P>
<P>PFC[ i-</FONT><FONT color=3D#ff00ff size=3D1>1</FONT><FONT color=
=3D#000000=20
size=3D1> ] =3D </FONT><FONT color=3D#ff00ff size=3D1>0</FONT><FONT c=
olor=3D#000000=20
size=3D1>;</P>
<P>}</P>
<P>AFL.Var(</FONT><FONT color=3D#ff00ff size=3D1>"delta"</FONT><FONT=
=20
color=3D#000000 size=3D1>) =3D delta;</P>
<P>AFL.Var(</FONT><FONT color=3D#ff00ff size=3D1>"length"</FONT><FONT=
=20
color=3D#000000 size=3D1>) =3D PnFValue.length;</P>
<P>AFL.Var(</FONT><FONT color=3D#ff00ff size=3D1>"PFO"</FONT><FONT=20
color=3D#000000 size=3D1>) =3D PFO;</P>
<P>AFL.Var(</FONT><FONT color=3D#ff00ff size=3D1>"PFC"</FONT><FONT=20
color=3D#000000 size=3D1>) =3D PFC;</P>
<P>%></P><B>
<P>O</B> =3D PFO;</P><B>
<P>C</B> =3D PFC;</P><B>
<P>H</B> =3D (<B>O</B>+<B>C</B>)/</FONT><FONT color=3D#ff00ff=20
size=3D1>2</FONT><FONT color=3D#000000 size=3D1>;</P><B>
<P>L</B> =3D (<B>O</B>+<B>C</B>)/</FONT><FONT color=3D#ff00ff=20
size=3D1>2</FONT><FONT color=3D#000000 size=3D1>;</P><B>
<P>GraphXSpace</B> =3D </FONT><FONT color=3D#ff00ff size=3D1>9</FONT>=
<FONT=20
color=3D#000000 size=3D1>;</P><B>
<P>Graph0Style</B> =3D </FONT><FONT color=3D#ff00ff size=3D1>64</FONT=
><FONT=20
color=3D#000000 size=3D1>;</P><B>
<P>Graph0Color</B> =3D</FONT><FONT color=3D#ff00ff size=3D1>1</FONT><=
FONT=20
color=3D#000000 size=3D1>;</P><B>
<P>Graph0</B> =3D <B>C</B>;</P><B>
<P>Filter</B>=3D<B>C</B>></FONT><FONT color=3D#ff00ff size=3D1>0</=
FONT><FONT=20
color=3D#000000 size=3D1>;</P></FONT><FONT color=3D#0000ff size=3D1>
<P>AddColumn</FONT><FONT color=3D#000000 size=3D1>(PFO,</FONT><FONT=20
color=3D#ff00ff size=3D1>"PFO"</FONT><FONT color=3D#000000=20
size=3D1>);</P></FONT><FONT color=3D#0000ff size=3D1>
<P>AddColumn</FONT><FONT color=3D#000000 size=3D1>(PFC,</FONT><FONT=20
color=3D#ff00ff size=3D1>"PFC"</FONT><FONT color=3D#000000=20
size=3D1>);</P></FONT></FONT></DIV>
<DIV><BR><BR></DIV>
<P><FONT size=3D2>-----Original Message-----<BR>From: mirat_dave [<A=
=20
href=3D"mailto:mirat_dave@xxxx">mailto:mirat_dave@x...</A>]=
<BR>Sent:=20
Friday, July 19, 2002 10:00 AM<BR>To:=20
amibroker@xxxxxxxxxxxxxxx<BR>Subject: [amibroker] Re: Point & Fig=
ure=20
Chart in AFL<BR><BR><BR>Hello Richard and Dimitris,<BR><BR>Sorry to h=
ave=20
caused so much confusion.<BR><BR>Since most stocks since 2000 have be=
en=20
trending down, you may get a<BR>only a few bars because the P&F C=
hart=20
ignores small up moves and only<BR>extends down bars when the price m=
oves=20
more than the box size. Since<BR>2000, you may very well have o=
nly a=20
few bars. Try loading more data<BR>for at least one stock.<BR><=
BR>I=20
used AmiQuote and Yahoo for the data. I have data from=20
January<BR>1994. The AmiBroker version on which I created this =
file=20
is 4.0.0 <BR>Apr 26 2002.<BR><BR>I do not know if the AmiBroker=
=20
version is causing the difference. I<BR>saw that it worked for=
=20
Richard on MSFT (although I am not sure what<BR>the whole MSFT v. MSF=
T=20
issue was - it seems to have resolved<BR>itself). Perhaps Richa=
rd=20
also has more data loaded.<BR><BR>As you can see from the script, it =
is=20
very simple. If problems<BR>continue, I would be happy to go th=
rough=20
it in detail to see if there<BR>is a coding error.<BR><BR>I'm afraid =
I=20
have no other explanation other than more data. Let's<BR>try th=
at=20
first.<BR><BR>Mirat<BR><BR>PS I would post .gifs of my charts b=
ut I=20
do not know how to attach a<BR>file to my reply. Although that =
would=20
not help resolve the issue. :-)<BR><BR><BR><BR><BR><BR>--- In=20
amibroker@xxxx, "Richard Alford" <richard.alford@xxxx>=20
wrote:<BR>> I am just isolating variables. If we have the sa=
me=20
program and<BR>version (4.06.1 Jun 19 build), the same indicator code=
=20
(this I<BR>confirmed) and same data we should get the same result.&nb=
sp;=20
(I continue<BR>to believe in deterministic computing - probably naive=
in=20
light of<BR>Microsoft!). The questionable variable, and a big o=
ne,=20
is the data<BR>source - I use qp2. Perhaps someone using yahoo =
could=20
compare to<BR>your results?<BR>><BR>><BR>> It does appear th=
at=20
the "box size", the significant change that<BR>defines an X or O in m=
y=20
understanding, should be normalized to the<BR>price of the instrument=
to=20
account for the difference in WCOME<BR>pricing vs. DJIA, for=20
example. I am referring to the code fragment:<BR>><BR>> /=
/=20
Calculate PF Chart Box size and minimum Reverse values<BR>> // Box=
=3D=20
((tot[i]/(i+1))^.5)/7.3374; <BR>><BR>>=20
Cheers,<BR>><BR>> Richard<BR>> ----- Original Me=
ssage=20
-----<BR>> From: dtsokakis<BR>> To:=20
amibroker@xxxx<BR>> Sent: Wednesday, July 17, 2002 2:4=
9=20
PM<BR>> Subject: [amibroker] Re: Point & Figure Ch=
art=20
in AFL<BR>><BR>><BR>> Richard,<BR>> &nbs=
p;=20
YHOO via Amiquote.<BR>> Why do you think it is a matte=
r of=20
data provider ?<BR>> Dimitris=20
Tsokakis<BR>><BR>> --- In amibroker@xxxx, "Richard=
=20
Alford" <richard.alford@xxxx><BR>wrote:<BR>> >=
; but=20
the point remains that you and I get different=20
results. <BR>what<BR>> is your data=20
source?<BR>> ><BR>> >=20
Richard<BR>> > ----- Original Message=20
-----<BR>> > From:=20
dtsokakis<BR>> > To:=20
amibroker@xxxx<BR>> > Sent: Wednesday, =
July=20
17, 2002 1:47 PM<BR>> > Subject: [amibr=
oker]=20
Re: Point & Figure Chart in AFL<BR>> =20
><BR>> ><BR>> > =20
Richard,<BR>> > ANY other function work=
s=20
just fine with my valuable Amibroker<BR>> =20
4.06.<BR>> > Just fine.<BR>> &n=
bsp;=20
> I can not see the reason for this P&F=20
script.<BR>> > Anyway, the author perha=
ps=20
could expain.<BR>> > Dimitris=20
Tsokakis<BR>> ><BR>> >  =
; ---=20
In amibroker@xxxx, "Richard Alford"=20
<richard.alford@xxxx><BR>> wrote:<BR>> &=
nbsp;=20
> > DT, I agree it was not easy to understand. =
; The=20
attached<BR>charts<BR>> > showed the TW=
O=20
results that were generated whenever I entered<BR>the<BR>> &n=
bsp;=20
> symbol MSFT - it appears to be a fluke and I cannot=
=20
reproduce<BR>it<BR>> any<BR>> =20
> longer. Although there is not ticker name in t=
he=20
formula,<BR>there<BR>> was<BR>> =20
> strange behavior occurring for MSFT and MSFT only at=
=20
that<BR>time.<BR>> > =20
><BR>> > > The gist of my reply t=
o you=20
was that using the SAME code as<BR>you<BR>> =20
> posted and using the code I copied from the files=20
sections, I<BR>> > generated the same=20
results - and not the results that you<BR>were<BR>> =20
> creating. That suggests that you have a proble=
m in=20
your data<BR>> and/or<BR>> > &n=
bsp;=20
setup. The only reason for the two codes was to=20
guarantee<BR>that<BR>> there<BR>> =20
> wasn't a subtle error - there was=20
not.<BR>> > ><BR>> =20
> > Sorry for adding the confusion about the MSFT f=
luke=20
at the<BR>same<BR>> > =20
time.<BR>> > ><BR>> =20
> > Cheers,<BR>> > =20
><BR>> > > Richard<BR>> &=
nbsp;=20
> > ----- Original Message=20
-----<BR>> > > From:=20
dtsokakis<BR>> > > To:=20
amibroker@xxxx<BR>> > > =
Sent:=20
Wednesday, July 17, 2002 12:47 AM<BR>> >  =
;=20
> Subject: [amibroker] Re: Point & Figure Chart in=
=20
AFL<BR>> > ><BR>> =20
> ><BR>> > =20
> Richard,<BR>> > =20
> It is not easy to understand this<BR>>  =
;=20
> > "the plot for MSFT changes when one=
=20
changes the symbol go<BR>> MSFT<BR>> =20
> from<BR>> > =20
> MSFT??? "<BR>> > =20
> I copied the formula from<BR>> =20
> > <A target=3D_blank=20
href=3D"http://groups.yahoo.com/group/amibroker/files/Point-Figure">h=
ttp://groups.yahoo.com/group/amibroker/files/Point-Figure</A><BR>> =
=20
> > pasted in my Ind. builder and get t=
he=20
posted gifs.<BR>> > > No=
=20
ticker name is into the formula.<BR>> > =
=20
> What is "the two MSFT " ???<BR>> =20
> > Do you use the same code from the a=
bove=20
address??<BR>> > > =20
DT<BR>> > ><BR>> =20
> ><BR>> > =20
> --- In amibroker@xxxx, "Richard=20
Alford"<BR><richard.alford@xxxx><BR>> =20
> wrote:<BR>> > =20
> > Those are not the figures I generate using the =
code=20
in<BR>> > the "files<BR>>  =
;=20
> > section". (Why wasn't this pu=
t in=20
the AFL library is a<BR>> question<BR>> =
=20
> in<BR>> > > &n=
bsp;=20
my mind???)<BR>> > > =20
><BR>> > > > Just=
=20
noticed that the plot for MSFT changes when one<BR>> =20
changes<BR>> > the<BR>> =
=20
> > symbol go MSFT from MSFT??? N=
ot=20
the case for AMZN or<BR>ORCL? <BR>> > &nb=
sp;=20
> ><BR>> > =20
> > I attached the two MSFT for comparison, one is=
=20
"my"<BR>copy,<BR>> and<BR>> > &=
nbsp;=20
the<BR>> > > other is a =
copy=20
and paste of the code in your note. The<BR>> =20
> difference<BR>> > =20
> is the quirk in MSFT, not an error in the code you=20
have<BR>used.<BR>> And<BR>> > &=
nbsp;=20
DT<BR>> > > do you reall=
y=20
like black on blue borders? Personally, I<BR>can<BR>> &=
nbsp;=20
> never<BR>> > =20
> read your chart titles.<BR>> =20
> > ><BR>> =20
> > > Cheers,<BR>> =20
> > ><BR>> =20
> > > Richard<BR>> =20
> > ><BR>> =20
> > ><BR>> =20
> > > ----- Original Mes=
sage=20
-----<BR>> > > =20
> From: Dimitris Tsokakis<BR>> =20
> > > To:=20
amibroker@xxxx<BR>> > > =
=20
> Sent: Tuesday, July 16, 2002 1:14 PM<BR>> &n=
bsp;=20
> > > Subject: [amibroke=
r]=20
Re: Point & Figure Chart in AFL<BR>> > &nb=
sp;=20
> ><BR>> > =20
> ><BR>> > =20
> > Mirat,<BR>> =20
> > > Here is P&F ch=
arts=20
for AMZN, MSFT and ORCL.<BR>> > =20
> > Data since Jan 2000.<BR>> &=
nbsp;=20
> > > Is it the expected=
=20
picture ?<BR>> > > =20
> The code, copied from files section<BR>> &nb=
sp;=20
> > ><BR>> =20
> > > // PF Chart by Mir=
at=20
Dave<BR>> > > =20
> // Copy and paste this as a custom=20
indicator.<BR>> > > =20
><BR>> > > =20
> EnableScript("jscript");<BR>> =20
> > > =20
<%<BR>> > > =20
><BR>> > > =20
> High =3D VBArray( AFL( "High" )=20
).toArray();<BR>> > > =20
> Low =3D VBArray( AFL( "Low" )=20
).toArray();<BR>> > > =20
><BR>> > > =20
> // Calculate running average stock price for use=20
in<BR>> > calculating<BR>> &nbs=
p;=20
> > the Box size.<BR>> =20
> > ><BR>> =20
> > > tot =3D new=20
Array();<BR>> > > =20
> tot[0] =3D (High[0] + Low[0])/2;<BR>> =
=20
> > > for( i=3D1; i <=
=20
High.length; i++ )<BR>> > > &nb=
sp;=20
> {<BR>> > > &nb=
sp;=20
> tot[i] =3D tot[i-1] + ((High[i] +=20
Low[i])/2);<BR>> > > =20
> }<BR>> > > &nb=
sp;=20
> PFO =3D new Array();<BR>> > &=
nbsp;=20
> > PFC =3D new Array();<BR>> &=
nbsp;=20
> > ><BR>> =20
> > > // initialize firs=
t=20
element<BR>> > > =20
><BR>> > > =20
> j =3D 0;<BR>> > =20
> > PFO[j] =3D High[0];<BR>> &n=
bsp;=20
> > > PFC[j] =3D=20
Low[0];<BR>> > > =20
> down =3D 1; // By default the first bar is a down=20
bar.<BR>> > > =20
><BR>> > > =20
> up =3D 0;<BR>> > =20
> > swap =3D 0;<BR>> =20
> > ><BR>> =20
> > > // perform the loo=
p=20
that produces PF Chart<BR>> > =20
> ><BR>> > =20
> > for( i =3D 1; i < High.length; i=
++=20
)<BR>> > > > &nb=
sp;=20
{<BR>> > > > &nb=
sp;=20
// Calculate PF Chart Box size and minimum=20
Reverse<BR>values<BR>> > > &nbs=
p;=20
><BR>> > > =20
> Box =3D ((tot[i]/(i+1))^.5)/7.3374;<BR>> &nb=
sp;=20
> > > Reverse =3D Box *=
=20
3;<BR>> > > > &n=
bsp;=20
if( Low[i] < PFC[j] - Box && down)<BR>> =20
> > > {<BR>> &nb=
sp;=20
> > > PFC[j] =3D=20
Low[i];<BR>> > > =20
> }<BR>> > > &nb=
sp;=20
> else<BR>> > =20
> > {<BR>> > &nb=
sp;=20
> > if( High[i] >=3D PFC[j] + Revers=
e=20
&& down)<BR>> > >  =
;=20
> {<BR>> > > &nb=
sp;=20
> j++;<BR>> > =20
> > swap =3D 1;<BR>> =20
> > > PFO[j] =3D=20
Low[i];<BR>> > > =20
> PFC[j] =3D High[i];<BR>> > &n=
bsp;=20
> > }<BR>> > &nb=
sp;=20
> > }<BR>> > &nb=
sp;=20
> > if( High[i] > PFC[j] + Box &=
&=20
up)<BR>> > > > &=
nbsp;=20
{<BR>> > > > &nb=
sp;=20
PFC[j] =3D High[i];<BR>> > > &n=
bsp;=20
> }<BR>> > > &nb=
sp;=20
> else<BR>> > =20
> > {<BR>> > &nb=
sp;=20
> > if( Low[i] <=3D PFC[j] - Reverse=
=20
&& up)<BR>> > > =
=20
> {<BR>> > > &nb=
sp;=20
> j++;<BR>> > =20
> > PFC[j] =3D Low[i];<BR>> &nb=
sp;=20
> > > PFO[j] =3D=20
High[i];<BR>> > > =20
> swap =3D 1;<BR>> > =20
> > }<BR>> > &nb=
sp;=20
> > }<BR>> > &nb=
sp;=20
> > if( swap )<BR>> =20
> > > {<BR>> &nb=
sp;=20
> > > swap =3D=20
0;<BR>> > > > &n=
bsp;=20
if( up )<BR>> > > =20
> {<BR>> > > &nb=
sp;=20
> up =3D 0;<BR>> > =20
> > down =3D 1;<BR>> =20
> > > }<BR>> &nb=
sp;=20
> > > =20
else<BR>> > > =20
> {<BR>> > > &nb=
sp;=20
> up =3D 1;<BR>> > =20
> > down =3D 0;<BR>> =20
> > > }<BR>> &nb=
sp;=20
> > > }<BR>> &nb=
sp;=20
> > > }<BR>> &nb=
sp;=20
> > ><BR>> =20
> > > // Shift chart to =
the=20
right to eliminate trailing<BR>empty<BR>> =20
data<BR>> > > =20
> // - PF charts are generally smaller/shorter then=20
the<BR>> full<BR>> > =20
stock<BR>> > > charts be=
cause=20
they lack a time scale.<BR>> > =20
> ><BR>> > =20
> > delta =3D High.length -=20
PFO.length;<BR>> > > =20
> for( i =3D High.length; i > delta; i--=20
)<BR>> > > > &nb=
sp;=20
{<BR>> > > > &nb=
sp;=20
PFO[ i-1 ] =3D PFO[ i-delta-1];<BR>> > =
=20
> > PFC[ i-1 ] =3D PFC[=20
i-delta-1];<BR>> > > =20
> }<BR>> > > &nb=
sp;=20
> for( i =3D 0; i < delta; i++)<BR>> =
=20
> > > {<BR>> &nb=
sp;=20
> > > PFO[ i-1 ] =3D=20
0;<BR>> > > > &n=
bsp;=20
PFC[ i-1 ] =3D 0;<BR>> > > &nbs=
p;=20
> }<BR>> > > &nb=
sp;=20
> AFL.Var("PFO") =3D PFO;<BR>> =20
> > > AFL.Var("PFC") =3D=
=20
PFC;<BR>> > > =20
> %><BR>> > =20
> ><BR>> > =20
> > O =3D PFO;<BR>> =20
> > > C =3D=20
PFC;<BR>> > > =20
><BR>> > > =20
> H =3D (O+C)/2;<BR>> > =
=20
> > L =3D (O+C)/2;<BR>> =
=20
> > ><BR>> =20
> > > GraphXSpace =3D=20
9;<BR>> > > > &n=
bsp;=20
Graph0Style =3D 64;<BR>> > > &n=
bsp;=20
><BR>> > > =20
> Graph0Color =3D1;<BR>> > &nbs=
p;=20
> > Graph0 =3D C;<BR>> =20
> > ><BR>> =20
> > > Thanks in advance =
for=20
any reply.<BR>> > > =20
> Dimitris Tsokakis<BR>> > &nbs=
p;=20
> ><BR>> > =20
> > =
=20
Yahoo! Groups Sponsor<BR>> > =20
> ><BR>> > =20
> > =
=20
Click here to find your contact lenses!<BR>> =20
> > ><BR>> =20
> > > Your use of Yahoo!=
=20
Groups is subject to the Yahoo!<BR>Terms<BR>> =20
of<BR>> > > =20
Service.<BR>> > ><BR>>  =
;=20
> ><BR>> > =20
> Yahoo! Groups=20
Sponsor<BR>> > =20
>  =
; =20
ADVERTISEMENT<BR>> > =20
>  =
; <BR>> =20
> =20
> <BR>> =20
> ><BR>> > =20
> Your use of Yahoo! Groups is subject to the Yahoo!=20
Terms<BR>of<BR>> > =20
Service.<BR>> ><BR>> =20
><BR>> =20
> Yahoo! Groups=20
Sponsor<BR>> =20
>  =
; =20
ADVERTISEMENT<BR>> =20
>  =
; <BR>> =20
> <BR>> =20
><BR>> > Your use of Yahoo! Groups i=
s=20
subject to the Yahoo! Terms of<BR>> =20
Service.<BR>><BR>><BR>> &=
nbsp; =20
Yahoo! Groups=20
Sponsor<BR>> =
=20
ADVERTISEMENT<BR>> =
<BR>> &=
nbsp;<BR>><BR>> =20
Your use of Yahoo! Groups is subject to the Yahoo! Terms=20
of<BR>Service.<BR><BR><BR>------------------------ Yahoo! Groups Spon=
sor=20
---------------------~--><BR>Will You Find True Love?<BR>Will You =
Meet=20
the One?<BR>Free Love Reading by phone!<BR><A target=3D_blank=20
href=3D"http://us.click.yahoo.com/O3jeVD/R_ZEAA/Ey.GAA/GHeqlB/TM">htt=
p://us.click.yahoo.com/O3jeVD/R_ZEAA/Ey.GAA/GHeqlB/TM</A><BR>--------------=
-------------------------------------------------------~-><BR><BR><BR><B=
R>Your=20
use of Yahoo! Groups is subject to <A target=3D_blank=20
href=3D"http://docs.yahoo.com/info/terms/">http://docs.yahoo.com/info=
/terms/</A><BR><BR><BR></FONT></P></BLOCKQUOTE><BR><BR><TT>Your=20
use of Yahoo! Groups is subject to the <A=20
href=3D"http://docs.yahoo.com/info/terms/">Yahoo! Terms of Service</A>.=
</TT>=20
<BR></BLOCKQUOTE><BR><BR><TT>Your=20
use of Yahoo! Groups is subject to the <A=20
href=3D"http://docs.yahoo.com/info/terms/">Yahoo! Terms of Service</A>.</=
TT>=20
<BR></BLOCKQUOTE></BODY></HTML>
------=_NextPart_001_0094_01C22F47.41D644A0--
Attachment:
Description: ""
|