Skip to main content

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:

http://packages.python.org/dynts/

Dowloads:

http://pypi.python.org/pypi/dynts/

Source:

http://github.com/quantmind/dynts

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:

  • python 2.6 up to python 3.2.

  • 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.

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:

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

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

dynts-0.4.1.tar.gz (324.5 kB view details)

Uploaded Source

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

Hashes for dynts-0.4.1.tar.gz
Algorithm Hash digest
SHA256 4250ed7848eee6257b4aa757ded37088ec6767b33d78d90f587e19d965730a19
MD5 287a0333fe201108d052ba5bc6f32ded
BLAKE2b-256 c5ad9eba13efcd4fd811d9a94efeab02a5a7c1e8cda45590ac7a911b4416ccda

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page