Skip to main content

Django Quant Tick aggregates candlesticks from high frequency tick data from S3 and REST APIs

Project description

What?

Django Quant Tick aggregates candlesticks from high frequency tick data.

Why?

Tick data is preferable for analyzing financial markets. Candlesticks aggregated by django-quant-tick are equally informationally dense. Such candles can be useful for analyzing financial markets. As an example, refer to "Low-Frequency Traders in a High-Frequency World: A Survival Guide" and "The Volume Clock: Insights into the High Frequency Paradigm". Lopez de Prado recommends volume candlesticks, however they are are computationally expensive to generate.

Tick data may be downloaded raw, or optionally aggregated. Aggregation can save disk space, and may increase information. There are 2 complementary aggregations. The first is by equal symbol, timestamp, nanoseconds and tick rule. The second is by filtering significant trades, for example at least $1000.

By aggregating and filtering raw tick data, volume candlesticks can be computed faster, with little loss in precision.

  1. First tick data may be aggregated by equal symbol, timestamp, nanoseconds and tick rule. Aggregating trades in this way can increase information, as they are either orders of size or stop loss cascades. As well, the number of rows can be reduced by 30-50%

  2. By filtering aggregated rows, for example only writing a row when an aggregated trade is greater than significant_trade_filter >= 1000, the number of rows can be reduced more.

  3. Clustering trades by trade direction, such that a row is created only if the tick rule changes, may further reduce the number of rows.

How?

Whenever possible, data is downloaded from the exchange's AWS S3 repositories. Otherwise, it is downloaded using their REST APIs.

A database, preferably PostgreSQL, is required. Data is saved to the database after aggregation and filtering.

Candles are aggregated at 1 minute intervals, and validated with the exchange's historical candle API.

Notes.

Supported exchanges

:white_check_mark: Binance REST API, and Binance Market Data

:white_check_mark: Bitfinex REST API

:white_check_mark: BitMEX REST API, and S3 repository

:white_check_mark: Coinbase Pro REST API

Note: Exchanges without paginated REST APIs or an S3 repository, will never be supported.

Installation

For convenience, django-quant-tick can be installed from PyPI:

pip install django-quant-tick

Deployment

For deployment, there are Dockerfiles. As well, there are invoke tasks for deployment to Google Cloud Run. Just as easily, the demo could be deployed to a VPS or AWS.

If using GCP, it is recommended to use the Cloud SQL Auth proxy, and run the management commands to collect data from your local machine. Django Quant Tick will upload the trade data to the cloud.

cd demo
invoke start-proxy
python proxy.py trades

Then, configure a Cloud Workflow to collect data in the cloud. There is an example workflow in the invoke tasks.

Environment

To use the scripts or deploy to GCP, rename .env.sample to .env, and add the required settings.

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

django_quant_tick-0.1.4.tar.gz (151.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_quant_tick-0.1.4-py3-none-any.whl (120.8 kB view details)

Uploaded Python 3

File details

Details for the file django_quant_tick-0.1.4.tar.gz.

File metadata

  • Download URL: django_quant_tick-0.1.4.tar.gz
  • Upload date:
  • Size: 151.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for django_quant_tick-0.1.4.tar.gz
Algorithm Hash digest
SHA256 016283dce738d5092f6f381d35e083087312d8f94d973536c2bd26ce84e527cc
MD5 0988cdee6946b45d5f2bf35b0d369dec
BLAKE2b-256 f783e9bd0f945e060035968c9ebfb4d47003c4806e8bfbb99e7bdba1369ea67e

See more details on using hashes here.

File details

Details for the file django_quant_tick-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: django_quant_tick-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 120.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for django_quant_tick-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f2c375cd3af259c830ee7887531da3358ab07bb3d665a58e1201b41571099946
MD5 50907087a89adb2de96fc0d21883f08c
BLAKE2b-256 0e7d7a04ba71568c3378fc5f01cc454cc063d78eb658a9a59e47b7a61a60c8b8

See more details on using hashes here.

Supported by

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