Welcome to crypto_history’s documentation!

Welcome to crypto-history

https://img.shields.io/pypi/v/crypto-history.svg https://img.shields.io/pypi/wheel/crypto-history.svg https://img.shields.io/pypi/pyversions/crypto-history.svg Documentation Status crypto-history download status per week crypto-history coveralls coverage https://travis-ci.org/vikramaditya91/crypto_history.svg?branch=master

This is a wrapper on binance and other exchange APIs to aggregate historical information in structured tabular formats (such as xarray.DataArray and SQLite).

Source code


  • Cleans the data ticker-wise if incomplete
  • Sets the correct type on the data obtained
  • Is able to join data from various chunks of time in a single DataArray
  • Candles of varying intervals can be obtained in a single DataArray
  • Fetches information about all tickers available on Binance asynchronously
  • Delays requests if it is close to the limit prescribed by Binance
  • Retries when the requests have exceeded the performance limit of the machine
  • Obtains the history of each/all tickers in the xarray.DataArray format
  • Easily extendable to other exchanges and other data formats
  • It does not require an API key from Binance
  • null values can be dropped either timestamp-wise and/or coin-wise
  • Can export data in SQLite format and xr.DataArray
  • Chunks of time can be aggregated into a single data object

Quick Start

pip install crypto-history

See a basic example at :examples/binance_basic.py

exchange_factory = class_builders.get("market").get("binance")()

desired_fields = ["open_ts", "open"]

binance_homogenizer = exchange_factory.create_data_homogenizer()
base_assets = await binance_homogenizer.get_all_base_assets()
print(f"All the base assets available on the Binance exchange are {base_assets}")

time_range = {("25 Jan 2020", "27 May 2020"): "1d",
              ("26 Aug 2020", "now"):         "1h"}
time_aggregated_data_container = data_container_intra.TimeAggregatedDataContainer(
    base_assets=["NANO", "IOST", "XRP"],
xdataarray_of_coins = await time_aggregated_data_container.get_time_aggregated_data_container()

For more check out the documentation.

Indices and tables


  • A basic example which interacts with Binance exchange, gets information on assets available and stores a basic xarray.DataArray is available at binance-basic
  • A second example which displays how the data is type corrected, incomplete data is expunged is available coin-history-post-processing