Skip to content
This repository has been archived by the owner on Sep 28, 2023. It is now read-only.

xzmeng/binance-history

Repository files navigation

Binance History

pypi version License - MIT Coverage Tests Status Documentation Status

PyPI - Python Version

Fetch binance public data easily.

Supports Python 3.8+.

Installation

$ pip install binance-history

Usage

API docs

Klines

>>> import binance_history as bh
>>> klines = bh.fetch_klines(
...     symbol="BTCUSDT",
...     timeframe="1m",
...     start="2022-12-14",
...     end="2022-12-24",
... )
                               open      high       low     close     volume  quote_volume  trades                   close_datetime
open_datetime
2022-12-14 00:00:00+08:00  17753.54  17768.41  17752.78  17766.99  240.82918  4.277685e+06    5241 2022-12-14 00:00:59.999000+08:00
2022-12-14 00:01:00+08:00  17766.99  17786.40  17764.37  17781.81  311.47670  5.536668e+06    6278 2022-12-14 00:01:59.999000+08:00
2022-12-14 00:02:00+08:00  17781.81  17790.54  17771.44  17785.37  372.12992  6.616562e+06    6911 2022-12-14 00:02:59.999000+08:00
2022-12-14 00:03:00+08:00  17786.23  17800.18  17774.63  17777.35  401.52223  7.142210e+06    6926 2022-12-14 00:03:59.999000+08:00
2022-12-14 00:04:00+08:00  17777.35  17785.98  17769.15  17781.93  218.03837  3.876373e+06    5519 2022-12-14 00:04:59.999000+08:00
...                             ...       ...       ...       ...        ...           ...     ...                              ...
2022-12-23 23:56:00+08:00  16850.22  16850.22  16839.55  16842.59  146.38906  2.465894e+06    4229 2022-12-23 23:56:59.999000+08:00
2022-12-23 23:57:00+08:00  16842.59  16846.22  16839.00  16840.99   86.95440  1.464495e+06    3152 2022-12-23 23:57:59.999000+08:00
2022-12-23 23:58:00+08:00  16840.99  16843.61  16827.28  16830.27  208.41471  3.508642e+06    4918 2022-12-23 23:58:59.999000+08:00
2022-12-23 23:59:00+08:00  16830.27  16836.66  16824.41  16832.16  154.10833  2.593717e+06    4502 2022-12-23 23:59:59.999000+08:00
2022-12-24 00:00:00+08:00  16832.15  16833.62  16828.42  16830.52  119.28572  2.007721e+06    3725 2022-12-24 00:00:59.999000+08:00

[14401 rows x 8 columns]

AggTrades

>>> bh.fetch_agg_trades(
...     symbol="ETCBTC",
...     start="2022-11 01:05",
...     end="2022-11-25 3:20",
...     tz="Europe/Paris"
... )
                                    price  quantity  is_buyer_maker
datetime
2022-11-01 01:05:09.435000+01:00  0.001187      1.60            True
2022-11-01 01:05:17.639000+01:00  0.001186     29.56            True
2022-11-01 01:05:18.616000+01:00  0.001186      8.43            True
2022-11-01 01:05:18.621000+01:00  0.001186     37.31            True
2022-11-01 01:05:18.748000+01:00  0.001186      0.17            True
...                                    ...       ...             ...
2022-11-25 03:19:18.317000+01:00  0.001199      5.00           False
2022-11-25 03:19:19.482000+01:00  0.001199     10.69           False
2022-11-25 03:19:23.270000+01:00  0.001199      7.55            True
2022-11-25 03:19:26.082000+01:00  0.001199      2.56            True
2022-11-25 03:19:40.375000+01:00  0.001199      2.20           False

Command Line

binance-history comes with a command line interface, you need to install some extra dependencies to use it:

$ pip install 'binance-history[cli]'
$ bh --help
Usage: bh [OPTIONS]

Options:
  --symbol TEXT                   The binance market pair name, e.g. BTCUSDT
                                  [required]
  --start TEXT                    The start datetime, e.g. '2022-1-2 1:10'
                                  [required]
  --end TEXT                      The end datetime, e.g. '2022-1-25 2:20
                                  [required]
  --data-type [klines|aggTrades]  choose klines or aggTrades to download,
                                  default to 'klines'
  --asset-type [spot|futures/um|futures/cm]
                                  choose spot or futures data, default to
                                  'spot'
  --timeframe [1s|1m|3m|5m|15m|30m|1h|2h|4h|6h|8h|12h|1d|3d|1w|1M]
                                  The timeframe of klines, default to '15m',
                                  can be omitted if --data-type is not
                                  'klines'
  --tz TEXT                       The tz database name of time zone, use your
                                  local time zone if omitted'
  --output-path TEXT              The path you want to save the downloaded
                                  data, support format: [csv, json, xlsx],
                                  e.g. a.xlsx  [required]
  --help                          Show this message and exit.

$ bh --start 2022-1-5 --end 2022-1-7 --symbol ETCBTC --output-path a.xlsx