| 
 PureBytes Links 
Trading Reference Links 
 | 
Hi folks,
I have a routine that sets up an OHLCV set of arrays for my Industry 
Groups - code is below. This calculates very well most of the time. 
However, if there is a stock that is a relatively new issue with a 
substantially different price than those in the index, like a 
averaging $100 stock and $10 ten I get a gap that I wish I didn't 
have in the industry index. This can also happen if I don't have the 
same length of price history for all the stocks in the group.
What I would like to do is count the number of stocks in the 
industry that actually have a closing price of NOT Null or Close not 
equal to zero. I thought this expression would do it, but it doesn't 
work:
   list = GetCategorySymbols( categoryIndustry, IndustryID(0) );
   n = 0;
   for( i = 0; ( sym = StrExtract( list, i ) ) != ""; i++ )
   {
      n=IIf(C>0 OR C!=Null,1,0)+n;
   }
   Plot(n,"# of Comp's",colorBlue);
My goal was to look for step changes in the value of 'n' and then 
apply a scale factor of Open/Ref(Close,1) to all the prices forward 
of the step change, thus correcting the composite index for 
additions of stocks at various times due to differing lengths 
historical data.
Any thougths on how I might accomlish this? I really thought I had 
it there.
Sincerely,
-ace
------------------------------------------------
//INDUSTRY GROUP COMPOSITE INDEX CODE
------------------------------------------------
function CreateIndustryAverage( listnum, price )
{
 // retrive comma-separated list of symbols in watch list
 list = GetCategorySymbols( categoryIndustry, listnum );
 scalefactor=1;   
 Average = 0; // just in case there are no watch list members
 for( i = 0; ( sym = StrExtract( list, i ) ) != ""; i++ )
 {
    f = Nz(Foreign( sym, price ));
    if( i == 0 ) Average = Average;
    else Average = Average + f*scalefactor;
 }
// divide by number of components
// return Cum(Average / i); 
 return Average / i; 
}
indticker="~"+IndustryID(1);
//price=CreateIndustryAverage( IndustryID(0) );
/*StrLeft(IndustryID(1),3)+StrRight(IndustryID(1),3);*/
IO=CreateIndustryAverage( IndustryID(0), "O" )*10;
IH=CreateIndustryAverage( IndustryID(0), "H" )*10;
IL=CreateIndustryAverage( IndustryID(0), "L" )*10;
IC=CreateIndustryAverage( IndustryID(0), "C" )*10;
AddToComposite(IO,indticker,"O", 3);
AddToComposite(IH,indticker,"H", 3);
AddToComposite(IL,indticker,"L", 3);
AddToComposite(IC,indticker,"C", 3);
AddToComposite(CreateIndustryAverage( IndustryID(0), "V" )
*10,indticker,"V", 3);
AddToComposite( 1, indticker, "I" );
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/GHeqlB/TM
---------------------------------------------------------------------~->
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 
 |