Quantitative financial timeseries analysis
Project description
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.
–
- Documentation:
- Dowloads:
- Source:
- Keywords:
timeseries, quantitative, finance, statistics, numpy, R, web
–
Timeserie Object
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'
DSL
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
Requirements
There are few requirements that must be met:
R backend
Depending on the back-end used, additional dependencies need to be met. For example, there are back-ends depending on the following R packages:
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.
Optional Requirements
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.
Running Tests
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:
python runtests.py
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
from benchmarks.
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
Kudos
numpy developers.
Community
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file dynts-0.4.1.tar.gz
.
File metadata
- Download URL: dynts-0.4.1.tar.gz
- Upload date:
- Size: 324.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4250ed7848eee6257b4aa757ded37088ec6767b33d78d90f587e19d965730a19 |
|
MD5 | 287a0333fe201108d052ba5bc6f32ded |
|
BLAKE2b-256 | c5ad9eba13efcd4fd811d9a94efeab02a5a7c1e8cda45590ac7a911b4416ccda |