Ever wondered what happened to your portfolio on a day the market moved 500 points? Ever wondered what your portfolio returned over the last (odd and arbitrary) period? Ever wondered what the Value-at-Risk (VaR) was? Ever wondererd what the marginal risk contribution of a given stock in your portfolio was? Ever wondered what unrealized percentage gain (or loss) you made from the recent lows (or highs) ? Ever wondered if you could easily database the (public) price info on dozens of stocks for further analysis? Ever wondered if there was a simple cron job to report all this on a daily basis?
BeanCounter does all this, and provides an easy-to-use command-line tool as well as a Perl module that can be used with other pursuits. It stores its data (price, volume, earnings --- whatever Yahoo! supplies) in either a PostgreSQL or MySQL relational database system (but it can also use an ODBC connection). The (very fast) SQLite 'database on a flat file' can also be used in either version 2.* or the newer version 3.*.
BeanCounter works with equities and equity indices from exchanges in the US, Canada, Europe and Asia. Options, foreign exchange rates, some commodities as well as US mutual funds are also supported as the data is provided by Yahoo! Downloads are efficiently batched so that information on e.g. several dozens US stocks is downloaded at once with a single HTTP request.
At some level this code is still beta in the sense that the command-line options and function interfaces might change. However, similar code has been working here since the fall of 1998.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. There is NO warranty whatsoever. This package is released under the GNU General Public License
The information that you obtain with this program may be copyrighted by Yahoo! Inc., and is governed by their usage license. See here for more information.