Projects / beancounter


beancounter enables stockmarket data analysis and performance evaluation. It has two main modes. The first is data gathering - both current data (e.g. closing prices, high, low, volume etc.) and historical price data can be retrieved efficiently using multiple securities per requests, and stored in an SQL database (PostgreSQL, MySQL, and SQLite are supported) via easy command line operations. The second mode is data analysis, based on the previously stored data. This comprises various performance reports, as well as a Value-at-Risk analysis. beancounter is implemented as a Perl module, and a Perl command-line frontend to the module. It supports different stock markets from around the globe, foreign exchange rates, US mutual funds, and US options.

Operating Systems

Recent releases

  •  03 May 2006 11:48

    Release Notes: Historical backpopulation now also adjusts closes, and the rpm.spec file has been updated.

    •  24 Mar 2006 09:27

      Release Notes: The SQL insert/update logic was corrected for data updates without open/high/low/volume entries such as for mutual fund prices. The host variable may now be set from the rc file. The utility scripts setup_beancounter and update_beancounter were changed to bash scripts, since some smaller shell implementations may fail to execute them.

      •  16 Mar 2006 05:32

        Release Notes: The database access code has been improved: finish() is always called, statement handles are checked, and DBI initialization has been simplified. More tests for undefined variables have been added, and the currency mapping code has been reorganized.

        •  20 Feb 2006 03:58

          Release Notes: An additional check was added against empty currency symbol strings. A new command line argument --host was added for the existing host variable. If the host is localhost, DBI now connects via sockets instead of TCP/IP, which should make configuration easier for novices. The advance/retracement displays were reformatted for 79 columns.

          •  27 Jan 2006 09:12

            Release Notes: The "lspositions" command was added for display of (non-aggregated) positions. The volume column in the stockprices table is now of numeric type. A market cap in trillions, as sometimes seen for British stocks quotes, is now allowed. The DatabaseHistoricalUCBFX function was added for historical FX backpopulation via service from the Sauder School at UBC. The GetFXDatum function was added for a single FX data item. --pacificfx was renamed to --ubcfx to select UBC for FX data. The currency codes for Yahoo!'s FX service were updated. Minor variable renaming and cleanups were done.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.