Quantitative financial timeseries analysis
A statistic package for python with enphasis on timeseries analysis. Built around numpy, it provides several back-end timeseries classes including R-based objects via rpy2. It is shipped with a domain specific language for timeseries analysis and manipulation built on to of ply. It requires Python 2.6 and up, including Python 3 versions.
timeseries, quantitative, finance, statistics, numpy, R, web
To create a timeseries object directly:
>>> from dynts import timeseries >>> ts = timeseries('test') >>> ts.type 'zoo' >>> ts.name 'test' >>> ts TimeSeries:zoo:test >>> str(ts) 'test'
At the core of the library there is a Domain-Specific-Language (DSL) dedicated to timeserie analysis and manipulation. DynTS makes timeserie manipulation easy and fun. This is a simple multiplication:
>>> import dynts >>> e = dynts.parse('2*GOOG') >>> e 2.0 * goog >>> len(e) 2 >>> list(e) [2.0, goog] >>> ts = dynts.evaluate(e).unwind() >>> ts TimeSeries:zoo:2.0 * goog >>> len(ts) 251
There are few requirements that must be met:
Depending on the back-end used, additional dependencies need to be met. For example, there are back-ends depending on the following R packages:
timeSeries for the rmetrics back-end
cython for performance. The library is not strictly dependent on cython, however its usage is highly recommended. If available several python modules will be replaced by more efficient compiled C code.
xlwt to create spreadsheet from timeseries.
matplotlib for plotting.
djpcms for the web.views module.
There are three types of tests available:
regression for unit and regression tests.
profile for analysing performance of different backends and impact of cython.
bench same as profile but geared towards speed rather than profiling.
From the distribution directory type:
This will run by default the regression tests. To run a profile test type:
python runtests.py -t profile <test-name>
where <test-name> is the name of a profile test. To obtain a list of available tests for each test type, run:
python runtests.py --list
for regression, or:
python runtests.py -t profile --list
for profile, or:
python runtests.py -t bench --list
If you access the internet behind a proxy server, pass the -p option, for example:
python runtests.py -p http://myproxy.com:80
It is needed since during tests some data is fetched from google finance.
To access coverage of tests you need to install the coverage package and run the tests using:
coverage run runtests.py
and to check out the coverage report:
coverage report -m
Trying to use an IRC channel #dynts on irc.freenode.net (you can use the webchat at http://webchat.freenode.net/).
If you find a bug or would like to request a feature, please submit an issue.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.