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

Re: Point & Figure Chart in AFL



PureBytes Links

Trading Reference Links

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.