Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exchange_data_downloader-0.2.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exchange_data_downloader-0.2.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

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

Hashes for exchange_data_downloader-0.2.0.tar.gz
Algorithm Hash digest
SHA256 bae8cc705fb97c66b20ffecdb4194b4daec76f9304947d0f147146fa107d0d7b
MD5 52503864b1a34a36e3ef858b2dd059a7
BLAKE2b-256 316dae0f19cd2aa681a3d05c4bca7eab40b6f916d17684fb47ff00973e7f2fab

See more details on using hashes here.

File details

Details for the file exchange_data_downloader-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for exchange_data_downloader-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 701a3ba67986d92dcb5f9c9a9f3c10e8787edf5894060cc695476f6963046060
MD5 aab4711c9d48c9e1e752f92813922f32
BLAKE2b-256 46929684253069df83c876f5c6c540766bd0711925f8ac784ada8c1e73c9702f

See more details on using hashes here.

Supported by

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