Package: quant
Welcome to QuantQuant is an enterprise software application for quantitative analysis.
Quant combinesSciPyandDomainModel.Quant contains a domain model which has exchanges, symbols, markets,
price histories, price processes, images, books, contracts of different
types, pricers, pricing preferences, and reports.Quant has a domain-specific language (Quant DSL) for expressing and
evaluating contracts in a generic manner.Quant has a Web user interface, and an API for machine clients. Quant has a
flexible role-based access controller. There is a Web admin interface, and
also command line programs to support site setup and administration.Quant can be extended by adding new price processes, custom contract types,
and alternative pricers. Quant is currently distributed with a Black Scholes
price process. There are contract types for American, Binary, European,
Futures, and for expressing contracts with Quant DSL. There are pricers
implementing the Monte Carlo, binomial tree, and Black Scholes methods. There
is a pricer for contract types based on the Quant DSL which involves the
Longstaff Schwartz least-squares Monte Carlo (LSM) method.Other features we are planning to implement include:Market prices pulled from exchange APIs;Integration with common spreadsheet applications;State machine enhancements to DSL;Different price processes (e.g local volatility).If you would like to suggest a feature, please get in touch!WebsitePlease visit theQuant project website.Install GuideWelcome to the Quant Install Guide.It is very easy to create new Quant services. Either do it all manually or
use the Quant installer. Afterwards, simply configure and restart Apache.The Quant installer will deploy Quant into a new virtual Python environment.
New services are set up with an SQLite database. Installer options exist
for using other database management systems, and it is possible to migrate
between different database management system after the service is created.Operating System DependenciesBefore installation, make sure required system packages are installed:$ sudo aptitude install python python-numpy python-scipy sqlite3If you are using Python 2.5, you will also need a few other packages:$ sudo aptitude install build-essential python-dev libsqlite3-devCheck your Python can load scipy with (returns silently if available):$ python -c "import numpy"
$ python -c "import scipy"Please note, if you will install Quant into an isolated virtual Python
environment (e.g. with virtualenv), you will want to create library links
to the Python packages for SciPy (and NumPy) before installing Quant.Manual Code InstallInstall the Quant Python package (and dependencies) either by running:$ pip install quantOr by downloading the Quant tarball, unpacking and running:$ python setup.py installAfter installation, please read the following help pages for more information:$ quant-makeconfig --help
$ quant-admin help setupManual Site SetupDecide a filesystem path for the new site:$ mkdir PATHCreate the new site configuration file:$ quant-makeconfig --master-dir=PATH  PATH/quant.confSet up the new site with the new configuration:$ quant-admin setup --config=PATH/quant.confPlease note, if you installed Quant into an isolated virtual Python
environment, you will want to use the –virtualenv-bin-dir option of
quant-makeconfig.The configuration file defines the filesystem path to the newly generated
Apache configuration file. You will need to need to include this file in the
main Apache configuration.Automated Install and DeployYou can create a Quant service in one step with the Quant installer.The installer will build a virtual Python environment, and install
the Quant software. The installer will then set up a new site with an SQLite
database, and it will create an Apache config file to be included in the main
Apache configuration (see below).Download the Quant installer (and make it executable):$ curl -O http://appropriatesoftware.net/provide/docs/quant-virtualenv
$ chmod +x quant-virtualenvRun the Quant installer. Note that the PATH folder should never be
under DocumentRoot of the Apache installation or any other directory
exposed via Apache web server:$ ./quant-virtualenv PATHPlease note, the path argument is required (and can be relative or absolute).After the installer has completed, continue by configuring Apache with a new
VirtualHost, check file ownership and permissions, and restart.The installer will diplay the filesystem path to the newly generated Apache
configuration file. You will need to need to include this file in the main
Apache configuration.Apache Configuration StepsMake sure the required system packages are installed:$ sudo aptitude install apache2 libapache2-mod-wsgiAlso, make sure Apache mod_wsgi is enabled:$ sudo a2enmod wsgiPick a domain name for your site. Create a new virtual host which includes
the Quant Apache configuration (path mentioned by the installer).Print the path to the Quant Apache configuration file with:$ quant-admin www path --config PATH/etc/quant.confA new Apache virtual host could simply look like this:<VirtualHost *:80>
    ServerName YOUR-QUANT-SITE
    Include PATH/var/httpd-autogenerated.conf
    WSGIDaemonProcess quant threads=25 maximum-requests=1000
</VirtualHost>Please note, the path to the auto-generated file must be an absolute path (not
a relative path).If necessary, configure your DNS for YOUR-QUANT-SITE.File OwnershipChange ownership of Quant files to Apache (or to the user which the WSGI
daemon process runs as):$ chown -R {www-user}:{www-user} PATHRestart ApacheOnce everything is configured, try to restart Apache:$ sudo /etc/init.d/apache2 restartYour virtual host will show a page saying ‘Welcome to Quant’.Login with username ‘admin’ and password ‘pass’.ContactIf you have any difficulties or questions about Quant, please email:quant-support@appropriatesoftware.netPlease note, at the moment, Quant is developed and tested on Ubuntu 10.10
(64 bit) with Python 2.7. Quant should work on any recent Linux distribution.AboutQuant is a project of the Appropriate Software Foundation. Please refer to theQuant websitefor more information.