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.
Badges: | |
---|---|
Master CI: | |
Documentation: | https://quantmind.github.io/dynts/ |
Dowloads: | https://pypi.python.org/pypi/dynts/ |
Source: | https://github.com/quantmind/dynts |
Platforms: | Linux, OSX, Windows. Python 3.5 and above |
Keywords: | timeseries, quantitative, finance, statistics, numpy, R, web |
To create a timeseries object directly:
>>> from dynts import timeseries >>> ts = timeseries('test') >>> ts.type 'numpy' >>> ts.name 'test' >>> ts TimeSeries:numpy:test >>> str(ts) 'test'
The package comes with a Domain-Specific-Language (DSL) dedicated to timeserie analysis and manipulation. This is a simple multiplication:
>>> from dynts import api >>> e = api.parse('2*GOOG') >>> e 2.0 * goog >>> len(e) 2 >>> list(e) [2.0, goog] >>> ts = api.evaluate(e).unwind() >>> ts TimeSeries:numpy:2.0 * goog >>> len(ts) 251
There are few requirements that must be met:
- python 2.6 up to python 3.3.
- numpy version 1.5.1 or higher for arrays and matrices.
- ply version 3.3 or higher, the building block of the DSL.
- ccy for date and currency manipulation.
Depending on the back-end used, additional dependencies need to be met. For example, there are back-ends depending on the following R packages:
- rpy2 if an R TimeSeries back-end is used (default).
- zoo and PerformanceAnlytics for the
zoo
back-end (currently the default one) - timeSeries for the
rmetrics
back-end
Installing rpy2 on Linux is straightforward, on windows it requires the python for windows extension library.
- 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 asprofile
but geared towards speed rather than profiling.
From the distribution directory type:
python setup.py test
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 setup.py test -l
for unit tests, or:
python runtests.py -t profile --list
for profile, or:
python runtests.py -t bench --list
from benchmarks.
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