Finance::Shares::Model version 1.04 =================================== This version only differs from 1.03 by a single patch which handles Yahoo's change to their CSV format. I have now started an MSc which will take all my time and attention, so I will not be developing this further now. [I have further work using external code and genetic algorithms but not of publishable quality.] Anyone wanting to take it on (and make it their own) is very welcome. If you let me know, I can tell other enquirers. WARNING: *** USER INTERFACE CHANGED *** ======================================= Models prepared for v1.00 to v1.02 will need these changes. (Of course nothing from v0.91 and before will work at all.) 1. The resource 'test'/'tests' has been renamed 'code'/'codes'. 2. Within a code entry, the field 'during' is now 'step'. 3. Within a chart specification, the graph type 'level' is now 'logic'. 4. Within a code segment, calls to mark() and info() expect their first argument to be a literal line tag name i.e. in quotes rather than using a preceding '$'. Also note that tag names with leading underscores will have them removed, possibly clashing with other tags within the same resource. Don't use leading underscores - they are now for internal names. PREPARATION =========== It is assumed you have an internet connection. A package that fetches quotes from !Yahoo won't be much use to you without one. You will also need mysql. Installation should work without mysql being set up because the tests will just be skipped. If you wish to try out the software, you will have to set up your mysql server anyway, so why not do it now? To set up the necessary mysql permissions, as root, log on to mysql and give any password requested (just press return if you haven't set one up): root@here# mysql -u root -p Password: Within B declare that user 'test' is allowed to access the 'test' database using the password 'test'. This is what the tests expect. mysql> grant all privileges on "test".* to "test" identified by "test"; You might like to add a real user while your at it. DEPENDENCIES ============ In addition to the standard perl distribution, these others are also required. They can all be found on CPAN (http://www.cpan.org) Pod::Usage Test::More Date::Calc Text::CSV_XS LWP::UserAgent DBIx::Namespace 0.04 PostScript::File 1.01 PostScript::Graph 1.01 INSTALLATION ============ If you have set up the mysql test database, please make sure an internet connection is available as some of the tests will fetch quotes. To install this module type the following: perl Makefile.PL make make test make install Some tests may be skipped if you haven't got mysql set up. But if you have, then no internet access is considered a 'fail'. ADDITIONAL FILES ================ This is the main script in this package and the only one installed to your system. fsmodel By setting up a suitable specifications file, any number of stocks can be put through the same treatment. The resulting charts can be stored as a single PostScript file or as individual files. It has its own man page, but see also Finance::S0::Model. Examples man fsmodel fsmodel --help [Assuming: (a) mysql has been set up as in PREPARATION above; (b) there is an open internet connection; (c) 'models/default.conf' has been copied to '~/.fs/default.conf; then these commands may be given from the distribution top level directory, producing *.ps files as their output.] fsmodel --model=models/greater MSFT fsmodel --model=models/less --file=less GSK.L AZN.L fsmodel -m models/compare -s stocks/FTSE-media -f media fsmodel -m models/convergence -s stocks/FTSE-mining -v 3 [NOTE: the models have not been tested with this release.] These two utilities are included as they support low level access to the mysql database. They are not installed; copy them to a bin directory if required. fs_list_tables Shows the mapping between DBIx::Namespace names and their underlying mysql tables. Change the script so that it matches your database (it assumes 'test'). Use as: fs_list_tables fs_list_tables Known::Family fs_drop_table Use this to drop a table used by DBIx::Namespace as it keeps the index synchronized. Change the script so that it matches your database (it assumes 'test'). Use as: fs_drop_table Known::Family::Table COPYRIGHT AND LICENCE ===================== Copyright (C) 2002, 2003 Christopher P Willmot. All rights reserved. This work is published under the same terms as Perl itself, which may be found at http://www.perl.org. There is no warranty whatsoever. Use at your own risk. Just because it is here and is documented does not mean that any part of this package is fit for any purpose implied by the code or accompanying documentation.