exchange-data-downloader — простая библиотека для скачивания и распаковки исторических данных с криптовалютных бирж. Поддерживает организацию файлов по папкам, кэширование и разные типы данных (klines, trades, funding и др.). Идеально для бэктестов и аналитики.
Project description
Exchange Data Downloader
exchange-data-downloader — простая библиотека для скачивания и распаковки исторических данных с криптовалютных бирж. Она автоматически создаёт структуру папок, кэширует уже загруженные файлы и умеет работать с разными типами данных (klines, trades, funding и др.). Отлично подходит для бэктестов, аналитических пайплайнов и подготовки датасетов.
Установка
pip install exchange-data-downloader
или
uv add exchange-data-downloader
или
poetry add exchange-data-downloader
Быстрый старт
from exdata.binance import Downloader
downloader = Downloader(data_folder_path="data/binance")
csv_path = downloader.download(
symbol="BTCUSDT",
year=2024,
month=4,
timeframe="1h",
market_type="futures/um",
period_type="monthly",
data_type="klines",
unzip=True,
)
print(f"Файл сохранён по пути: {csv_path}")
year,month,dayпередаются числами — библиотека сама добавит ведущие нули.- Если файл уже скачан и распакован, повторный вызов просто вернёт путь из кэша.
- Параметр
unzipпо умолчанию равенFalse— библиотека вернёт путь к ZIP. Передайтеunzip=True, если нужен путь к распакованному CSV.
Дополнительные примеры
Загрузка дневных trades
csv_path = downloader.download(
symbol="TRXUSDT",
year=2025,
month=3,
day=15,
data_type="trades",
period_type="daily",
market_type="spot",
)
Обход диапазона дат
from exdata.utils import generate_intervals
intervals = generate_intervals(
start_year=2024,
start_month=12,
start_day=1,
end_year=2025,
end_month=1,
end_day=5,
)
for current in intervals:
downloader.download(
symbol="ETHUSDT",
year=current.year,
month=current.month,
day=current.day,
data_type="aggTrades",
period_type="daily",
market_type="futures/um",
timeframe=None,
)
Функция generate_intervals возвращает кортеж объектов date, что упрощает обход диапазонов.
Полезные замечания
- Для kline-подобных типов (
klines,markPriceKlines,indexPriceKlinesи т.д.) параметрtimeframeобязателен. - Для
period_type="daily"необходимо указать день (day), дляmonthly— наоборот,dayне используется. - Библиотека выбрасывает
InvalidParamsError, если параметры указаны некорректно, иNotFoundError, если источник не вернул данные.
Используйте exchange-data-downloader, чтобы не тратить время на ручные скачивания и сосредоточиться на аналитике. Удачных тестов!
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 exchange_data_downloader-0.2.0.tar.gz.
File metadata
- Download URL: exchange_data_downloader-0.2.0.tar.gz
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bae8cc705fb97c66b20ffecdb4194b4daec76f9304947d0f147146fa107d0d7b
|
|
| MD5 |
52503864b1a34a36e3ef858b2dd059a7
|
|
| BLAKE2b-256 |
316dae0f19cd2aa681a3d05c4bca7eab40b6f916d17684fb47ff00973e7f2fab
|
File details
Details for the file exchange_data_downloader-0.2.0-py3-none-any.whl.
File metadata
- Download URL: exchange_data_downloader-0.2.0-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
701a3ba67986d92dcb5f9c9a9f3c10e8787edf5894060cc695476f6963046060
|
|
| MD5 |
aab4711c9d48c9e1e752f92813922f32
|
|
| BLAKE2b-256 |
46929684253069df83c876f5c6c540766bd0711925f8ac784ada8c1e73c9702f
|