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:
- Documentation:
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) have to be made.
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.80573 XRP, source: {'kucoin', 'binance'}
Donation
If this library has helped you in any way, feel free to donate:
BTC: 14ou4fMYoMVYbWEKnhADPJUNVytWQWx9HG
ETH: 0xfb0ebcf8224ce561bfb06a56c3b9a43e1a4d1be2
LTC: LfHgc969RFUjnmyLn41SRDvmT146jUg9tE
EGLD: erd1qk98xm2hgztvmq6s4jwtk06g6laattewp6vh20z393drzy5zzfrq0gaefh
Project details
Release history Release notifications | RSS feed
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 python-CryptoPrice-0.1.1.tar.gz
.
File metadata
- Download URL: python-CryptoPrice-0.1.1.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a21aafc1a5efc4a95421ef40018d83d6f65af502685d77861d517393ef6a1a8c |
|
MD5 | 639a60c135adac9a1aeeab5af6780f9f |
|
BLAKE2b-256 | c45823a5a6ef9b6153157c85fa14bb87a936d29268c2ec3fd62066d9a53bd1b9 |