PureBytes Links
Trading Reference Links
|
Rich:
Like you, I am looking forward to a function like RANK(). Hopefully
it will not be too long before AB gets new abilities for ranking and
portfolio testing.
Adding items like RANK() will take AB to a new level of usefulness -
but it will not be a trival task. As users we are fortunate that
that a man with Tomasz's talents and dedication is developing AB.
Some months ago, Tomasz explained that adding functions that do
ranking is not a simple task. If my memory is correct, the challenge
has to do with giving AB new procedures for processing data. Right
now AB is oriented to look at only 1 stock at a time. This has
several advantages for the user. First it allows AB to be very fast
at drawing charts, calculating indicators, and doing backtesting on
individual stocks. It means that AB can run very well on computers
that do not have 2 or more GBs of RAM. There are advantages for disk
storage as well.
In addition to AB, I use another stock program that has been
oriented from the ground up for Ranking stocks. That program is
lightening fast at ranking: less than 1 second to rank 7,000 stocks.
Compare that to how long it takes an AB scan to rank 7,000 stocks.
However, all is not perfect with my other program - it is VERY slow
at charting. Unbelievably slow! The reason is its data base design
was optimized for ranking. The by produce is slow charting (and slow
indicator calcuations).
The other by product of that program is limited stock history. To be
optimized for ranking, the other program has all of its data in one
large database. This approach quickly outgrows database limits. My
other program recently had to be upgraded from a MS Access structure
with a 1 GB limit to an MS SQL server structure (with a 2 GB limit -
larger available for higher cost). The 1 GB database can not hold
much more than 3 years of data. The newer one has a twice the limit,
but appears to be less efficent in storage: it takes about 1/3 to
1/2 GB/year of data, so its maximum is 4-5 years of data - not a lot
more than what it replaced! Compare that to the virtually unlimited
data that AB can hold due to its 1 file per stock approach to data
storage.
Over all, AB's approach is much to be preferred in my view. However,
that approach is, at its heart, to treat one stock at a time, both
for storage on the hard disk and for charting and for testing.
Adding a function like RANK() that you suggest, would add new
requirements to AB, including:
1. AB will have to syncronize dates between all the stocks -- it
currently does not have to do this for most charting and testing,
expect in a limited way when making a Foreign() call or using
AddToComposite().
2. AB will have to have some new internal arrays to store the
rankings. That will be mean least one array for every data bar,
which might not sound like much if a user just wants the top 5, 10,
20 or 50 rankings for each day (data bar), but it can add up very
quickly if the user wants ALL the stocks ranked for every data bar.
That could be a 2D array with 7,000 (stocks) in one direction and
nearly 4,000 (15 years of 250 days) in the other: 28 million cells.
And what if the user wants to test the interactions of 3 different
ranking arrays. Demands for RAM (and CPU power for sorting) could be
at a premium and intelligent programming a must.
3. There are probably many more issues that would need to be
overcome.
In short, as users we are fortunate that that a man with Tomasz's
talents and dedication is developing AB. Adding items like RANK()
will take AB to a new level of usefulness - but it will not be a
trival task.
-------------
like RANK()
--- In amibroker@xxxxxxxxxxxxxxx, "rlb21079" <rlb21079@xxxx> wrote:
> Thanks for the tips. I have read the Users Guide twice and have
> searched it for specifics often. The ROC() is a useful funtion,
but
> right now will not be of much use. My problem biggest problem has
> been my inability to compare one ticker to another, or more
> specifically one ticker's volume to the volume of all other
tickers
> in a market. This seems to be the essential aspect to creating a
> ranking of stocks, as per volume, change in price, ROC(), or
> whatever. There doesn't seem to be a function like say RANK(),
the
> parameters of which might be: "Ticker for
> comparison," "Group/Market/Watchlist for comparing," "Array to
> compare"
>
> There, of course, could be many variations on a function such as
this
> and I haven't thought them through - but it would be useful.
>
> It would allow for the creation of Composite Tickers based on such
> popular measures as Most Active per Volume, per percentage change,
> per percentage increase in volume, etc.
>
> Thankyou for your time,
> -Rich
>
> --- In amibroker@xxxxxxxxxxxxxxx, Udo.Harke@xxxx wrote:
> > Rich,
> >
> > maybe you should devise a selection of those particular stocks
> based on the AFL library function ROC() by comparing today's
progress
> ( > 0) versus the preceding day's change of price (> 0 too)
expressed
> as percentage?
> >
> > Some information about this function is also contained in the
> User's Guide which is a companion product issued with AmiBroker!
> >
> > Best regards,
> >
> > Udo
> >
> > -----Ursprüngliche Nachricht-----
> > Von: rlb21079
> > An: amibroker@xxxxxxxxxxxxxxx
> > Gesendet: Sonntag, den 25. Mai 2003 22:58 Uhr
> > Betreff: [amibroker] Re: Bugged out (1)
> >
> >
> > I'm very sorry to all reading my previous posts. Esp.
Tomasz. I
> > wanted to create a composite ticker holding each day a single
> value
> > comprised of the sum of the direction of change for the 15
most
> > active stocks of that given day. If the 15 most actively
traded
> > stocks were all positive, then value would be +15, if all but
one
> > then value would be +13...etc. I inteded the requirement of
the
> > rangefrom and rangeto dates to be the same b/c I figured I
needed
> to
> > run the explore once for every day I wanted to calculate the
> number.
> > The code wasn't done, this was just the first couple steps to
> isolate
> > the 15 most actives, but I really can't figure any other way.
> I'll
> > get more practice with something easier and hopefully be able
to
> do
> > this later.
> > All the best,
> > Rich
> >
> >
> >
> >
> > Yahoo! Groups Sponsor
> >
> >
> >
> > Send BUG REPORTS to bugs@xxxx
> > Send SUGGESTIONS to suggest@xxxx
> > -----------------------------------------
> > 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 the Yahoo! Terms of
> Service.
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Get A Free Psychic Reading! Your Online Answer To Life's Important Questions.
http://us.click.yahoo.com/Lj3uPC/Me7FAA/CNxFAA/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/
|