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

RE: [amibroker] Re: What's wrong with this backtest?



PureBytes Links

Trading Reference Links

John
I guess I used wrong terms, the real time meant that it aligns to the actual
time of the chart and is not compressed, thus removing time as normal P&F
charts do.

As far as the aligning to the actual highs/lows remember that P&F only moves
in the preset box and reverse amounts. A new box is only formed if the price
moves past the next full box amount. In your chart the box size is $1 and
reversal is $3 as the chart is around $35. The last box level is $35 so the
next box won’t be produced until the price drops below 34, and reversal
until it moves above 38. 
Hope this explains.

Cheers,
Graham
http://e-wire.net.au/~eb_kavan/ 
-----Original Message-----
From: john gibb [mailto:jgibb1@xxxxxxxxxxxxx] 
Sent: Wednesday, June 30, 2004 10:06 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] Bullish Percent Index Code #1

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" <gkavanagh@xxxxxxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Tuesday, June 29, 2004 8:43 PM
Subject: [amibroker] Bullish Percent Index Code #1

Here is stage 1 of the code on the road to producing BPI figures. This is
just the forming of the boxed values of price data. It applies only to each
stock and so far just a plot to see if the P&F values can be created on a
real time basis.

Looking for comments back after you have had a chance to work out what I
have done, and what the results look like. Any suggestions on how to tidy up
the code, any errors/omissions, appreciated as sometimes I can take a long
road as an idea meanders through my head. 

The PF values appear as a blue staircase line on backdrop of the price
chart.

Copy the code below to IB window


Cheers,
Graham
http://e-wire.net.au/~eb_kavan/


// Bullish Percent Index
// Buy Signals generated via P&F 
// Graham Kavanagh  30 Jun 2004
SetBarsRequired(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 Low
Lx = ceil(ToBox(L));
Hx = floor(ToBox(H));

// set variable values for locating peak/troughs of columns
Bar = 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=up

for( 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 plotting

b1=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;




Check AmiBroker web page at:
http://www.amibroker.com/

Check group FAQ at:
http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
Yahoo! Groups Links



 


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. 



------------------------ Yahoo! Groups Sponsor --------------------~--> 
Yahoo! Domains - Claim yours for only $14.70
http://us.click.yahoo.com/Z1wmxD/DREIAA/yQLSAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

Check AmiBroker web page at:
http://www.amibroker.com/

Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
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:
     http://docs.yahoo.com/info/terms/