Binance Data Downloader
Project description
rm-binance-data-downloader
A Python library for downloading, extracting and formatting historical Binance market data.
The package provides a pipeline that:
- Downloads data from Binance Vision
- Extracts compressed archives
- Formats data into a structured dataset
It is designed for fast data preparation for quantitative trading, backtesting and data analysis.
Installation
pip install rm-bdd
Features
- Download historical Binance data
- Automatic archive extraction
- Data formatting pipeline
- Metadata management
- Async architecture
- Easy integration into trading systems
Quick Example
import asyncio
import time
from rm_bdd.data_downloader import DataDownloader
from rm_bdd.data_extractor import DataExtractor
from rm_bdd.data_formatter import DataFormatter
from rm_bdd.binance_metadata_manager import BinanceMetadataManager
class DataManager:
def __init__(self, downloader, extractor, formatter):
self._downloader = downloader
self._extractor = extractor
self._formatter = formatter
async def download_and_save(self, symbol, timeframe, date_from=None, date_to=None):
start = time.time()
await self._downloader.download(symbol, timeframe, date_from=date_from, date_to=date_to)
print("download time:", time.time() - start)
start = time.time()
await self._extractor.extract(symbol, timeframe, date_from=date_from, date_to=date_to)
print("extract time:", time.time() - start)
start = time.time()
await self._formatter.format(symbol, timeframe, date_from=date_from, date_to=date_to)
print("format time:", time.time() - start)
async def main():
downloader = DataDownloader(
"downloads/",
BinanceMetadataManager("downloads/metadata.json")
)
extractor = DataExtractor(
"downloads/",
"extracts/",
BinanceMetadataManager("extracts/metadata.json")
)
formatter = DataFormatter(
"extracts/",
"data/",
BinanceMetadataManager("data/metadata.json")
)
manager = DataManager(downloader, extractor, formatter)
await manager.download_and_save("BTCUSDT", "1m")
asyncio.run(main())
Result Folder Structure
After execution the folders will look like:
downloads/
BTCUSDT/
metadata.json
extracts/
BTCUSDT/
metadata.json
data/
BTCUSDT/
metadata.json
Pipeline Overview
The processing pipeline consists of three stages:
Downloader
Downloads historical data archives from Binance Vision.
Extractor
Extracts downloaded archives.
Formatter
Formats extracted CSV data into a structured dataset ready for analysis.
Metadata Manager
The library uses a metadata system to track downloaded, extracted and formatted data.
This prevents duplicate downloads and processing.
Example Use Case
Typical workflow:
download → extract → format → analyze
Used for:
- algorithmic trading
- backtesting
- machine learning datasets
- market research
Requirements
Python 3.10+
License
MIT
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rm_bdd-0.1.1a1.tar.gz.
File metadata
- Download URL: rm_bdd-0.1.1a1.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82fd600bfbe1877b31551bc4305746875909f6c3d5598050d75b7c41671a45fa
|
|
| MD5 |
33db58ebbc63ae5164e0fc21f02358aa
|
|
| BLAKE2b-256 |
3e7f670546b669e10ebdd811f4d107b8465e39d92cbab89c813226799deed4f9
|
Provenance
The following attestation bundles were made for rm_bdd-0.1.1a1.tar.gz:
Publisher:
publish_to_pypi.yml on romamyronenko/rm_binance_data_downloader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rm_bdd-0.1.1a1.tar.gz -
Subject digest:
82fd600bfbe1877b31551bc4305746875909f6c3d5598050d75b7c41671a45fa - Sigstore transparency entry: 1077236675
- Sigstore integration time:
-
Permalink:
romamyronenko/rm_binance_data_downloader@9f3c088594dc1097cee3e31bca6ad8405630731e -
Branch / Tag:
refs/tags/v0.1.1a1 - Owner: https://github.com/romamyronenko
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@9f3c088594dc1097cee3e31bca6ad8405630731e -
Trigger Event:
push
-
Statement type:
File details
Details for the file rm_bdd-0.1.1a1-py3-none-any.whl.
File metadata
- Download URL: rm_bdd-0.1.1a1-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dff836cc3b3215cf023288bde0478febd548fbc6c122a003cbf6187f3e3aad06
|
|
| MD5 |
a318ce1ec79f0121c11e5e8dc4c088bf
|
|
| BLAKE2b-256 |
f67a311a91afee6eacb6902fd534ed918a1ea21588f46bf1934df24cf4236636
|
Provenance
The following attestation bundles were made for rm_bdd-0.1.1a1-py3-none-any.whl:
Publisher:
publish_to_pypi.yml on romamyronenko/rm_binance_data_downloader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rm_bdd-0.1.1a1-py3-none-any.whl -
Subject digest:
dff836cc3b3215cf023288bde0478febd548fbc6c122a003cbf6187f3e3aad06 - Sigstore transparency entry: 1077236678
- Sigstore integration time:
-
Permalink:
romamyronenko/rm_binance_data_downloader@9f3c088594dc1097cee3e31bca6ad8405630731e -
Branch / Tag:
refs/tags/v0.1.1a1 - Owner: https://github.com/romamyronenko
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_to_pypi.yml@9f3c088594dc1097cee3e31bca6ad8405630731e -
Trigger Event:
push
-
Statement type: