Skip to main content

Library to retrieve price or candle history of crypto assets using multiple sources

Project description

Note

This library is under development by EtWnn, feel free to drop your suggestions or remarks in the discussion tab of the git repo. You are also welcome to contribute by submitting PRs.

This library is made to retrieve price or candle history of crypto assets using multiple sources.

Source Code:

https://github.com/EtWnn/CryptoPrice

Documentation:

https://cryptoprice.readthedocs.io

Features

The idea is to have under a single library several price history API to be able to fetch effortlessly the price of large amount of different tokens or to compare the price difference between exchanges.

It currently includes:
  • Binance API

  • Kucoin API

  • Cross-API logic

Quick Tour

Installation

CryptoPrice is available on PYPI, install with pip:

pip install python-CryptoPrice

You can also install the latest developments (not stable):

pip install git+https://github.com/EtWnn/CryptoPrice.git@develop

Examples

A price retriever is already provided by the library, but feel free to check the documentation to instantiate one yourself.

import datetime
from CryptoPrice import get_default_retriever

retriever = get_default_retriever()

asset = 'BTC'
ref_asset = 'USDT'
timestamp = int(datetime.datetime(2021, 1, 1, 15, 14).timestamp())

# will return the first price price found close to the timestamp
retriever.get_closest_price(asset, ref_asset, timestamp)
>>Price(value=29480.0, asset='BTC', ref_asset='USDT', timestamp=1609510440, source='binance')

You can also fetch a price even if the trading pair does not exist: The retriever (MetaRetriever) will find a path with several trading pairs to estimate the price between the asset and the ref asset. This method takes much more time than the one above as several API calls (or database requests) may be needed.

import datetime
from CryptoPrice import get_default_retriever

retriever = get_default_retriever()

asset = 'LTC'
ref_asset = 'XRP'
timestamp = int(datetime.datetime(2021, 3, 3, 15, 14).timestamp())

# will return an average price of several trading path
price = retriever.get_mean_price(asset, ref_asset, timestamp)
if price is not None:  # price found
    print(f"{asset} = {price.value:.5f} {ref_asset}, source: {price.source}")
>>LTC = 420.76841 XRP, source: {'binance', 'kucoin'}

Donation

If this library has helped you in any way, feel free to donate:

  • BTC: 14ou4fMYoMVYbWEKnhADPJUNVytWQWx9HG

  • ETH: 0xfb0ebcf8224ce561bfb06a56c3b9a43e1a4d1be2

  • LTC: LfHgc969RFUjnmyLn41SRDvmT146jUg9tE

  • EGLD: erd1qk98xm2hgztvmq6s4jwtk06g6laattewp6vh20z393drzy5zzfrq0gaefh

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

python-CryptoPrice-0.2.0.dev0.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

python_CryptoPrice-0.2.0.dev0-py2.py3-none-any.whl (21.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file python-CryptoPrice-0.2.0.dev0.tar.gz.

File metadata

File hashes

Hashes for python-CryptoPrice-0.2.0.dev0.tar.gz
Algorithm Hash digest
SHA256 e932d99fca8ca0527b44b914a577767cb7b34bbd18584689314391a9ec14dccf
MD5 c08070e1dce7ad7bc9fc5eabf1b694bf
BLAKE2b-256 528958dee023ea9bf2b9fdf1fab89a6ae994c6abe8ebd6a8e5ba22ce2141c7bd

See more details on using hashes here.

File details

Details for the file python_CryptoPrice-0.2.0.dev0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for python_CryptoPrice-0.2.0.dev0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9cd6ce731cf1d4d86bfd1e0b155429b84be249f5945774a08f4326a00bb6d73c
MD5 32824f8bd57d1e434ec84e02689e44ab
BLAKE2b-256 43ff6f5a6244ab914d9173dd099b18f1ce95d9268715b8000be1afcb9422a945

See more details on using hashes here.

Supported by

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