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

[amibroker] New Question on Watchlist Averages



PureBytes Links

Trading Reference Links

I have been making some progress using this code, I think from the help
files and/or mentioned here on the list:
 
function CreateAverageForWatchList( listnum )
{
   // retrive comma-separated list of symbols in watch list
   list = CategoryGetSymbols( categoryWatchlist, listnum );
 
   Average = 0; // just in case there are no watch list members
 
   for( i = 0; ( sym = StrExtract( list, i ) ) != ""; i++ )
   {
      f = Foreign( sym, "C" );
      if( i == 0 ) Average = f;
      else Average = Average + f;
   }
   return Average / i; // divide by number of components
}

I am creating averages of various watchlists and it is working....except
for.....
 
The resulting average is no longer than the watchlist member with the least
or shortest amount of data.
If I have 20 members, 19 of which have data going back into the early 90s
but 1 member has data for the last 6 months, then the average which is
created is only 6 months long.
 
Is there any modification to the above code such that an average for each
date will be created from which ever members have data for that date.  In my
example, I would get an average based on 19 members up until 6 months ago
whereupon the average would be based on 20 members.
 
Can this code do that? If not, how could the code be altered to accomplish
that.
 
Thanks to all who are trying to help me with this. Some of the other
suggested approaches, using jscript (thanks Dan), etc, have been a little
daunting and I was able to get the above to work until I discovered the
truncated data (shortened average to the shortest list member).
 
Ken