Coder Social home page Coder Social logo

binance-downloader's Introduction

Binance Downloader

Build Status

Python tool to download Binance Candlestick (k-line) data from REST API

Originally forked from bullsignals/binance-downloader, that project does not seem to be maintained any longer and I wanted to actually make use of this project and allow others to contribute. At this point, I have re-written almost all the code from scratch, but would like to thank the original authors for their ideas that got me started.

Installation

Prerequisites

You will need Poetry installed in order to install this package and run from the command line. Poetry is a Python package and dependency manager that makes installation and distribution really easy. Installation instructions can be found here for macOS/Linux/Windows

  • Verify Poetry installation
$ poetry --version
Poetry 0.12.10

Download and install

Clone the repository
$ git clone https://github.com/anson-vandoren/binance-downloader.git
$ cd binance-downloader
Activate your virtual environment

Poetry will try to automatically enable a virtual environment for you if it detects you are not already using one.

If you already use virtualenvwrapper (or similar), go ahead and make (or switch to) your working environment beforehand:

$ mkvirtualenv binance-downloader

or

$ workon binance-downloader
Install dependencies
$ poetry install
Installing dependencies from lock file

Package operations: 12 installs, 0 updates, 0 removals

  - Installing six (1.12.0)
  - Installing certifi (2008.11.29)
  - Installing chardet (3.0.4)
  - Installing idna (2.8)
  - Installing numpy (1.15.4)
  - Installing python-dateutil (2.7.5)
  - Installing pytz (2018.7)
  - Installing urllib3 (1.22)
  - Installing logbook (1.4.1)
  - Installing pandas (0.23.4)
  - Installing requests (2.21.0)
  - Installing tqdm (4.28.1)
  - Installing binance-downloader (0.2.0)

Using the Command Line Interface

Show available options
$  kline-binance --help
usage: kline-binance [-h] [--start START] [--end END] [--dtfmt DATE_FORMAT]
                     symbol interval

CLI for downloading Binance Candlestick (k-line) data in bulk

positional arguments:
  symbol               (Required) Binance symbol pair, e.g. ETHBTC
  interval             (Required) Frequency interval in minutes(m); hours(h);
                       days(d); weeks(w); months(M); All possibles values: 1m
                       3m 5m 15m 30m 1h 2h 4h 6h 8h 12h 1d 3d 1w 1M

optional arguments:
  -h, --help           show this help message and exit
  --start START        Start date to get data (inclusive). Format: yyyy/mm/dd
  --end END            End date to get data (exclusive). Format: yyyy/mm/dd
  --dtfmt DATE_FORMAT  Format to use for dates (DMY, MDY, YMD, etc). Default:
                       YMD
Downloading data
$  kline-binance XRPBTC 1m --start 2016-01-01 --end now
[2019-01-02 05:12:40.941301] NOTICE: api: First available kline starts on {from_ms_utc(period_start)}
[2019-01-02 05:12:40.941867] NOTICE: api: Downloading 620 chunks...
Download : 100%|█████████████████████████████████████████████████| 620/620 [00:48<00:00, 12.73 chunk/s]
Write CSV: 100%|███████████████████████████████████████████████████| 100/100 [00:14<00:00,  7.04 pct/s]
[2019-01-02 05:13:44.784379] NOTICE: db: Done writing ./downloaded/2019-01-01_211330_XRPBTC_1m.csv for 612794 lines

License

This code is made available under the MIT License. See LICENSE file for detail.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.