Binance Continuous Downloader (dccd.continuous_dl.binance)¶
Objects and functions to download data from Binance exchange (WebSocket).
High level API¶
- get_data_binance(path, pair='BTCUSDT', time_step=60, until=3600, form='csv')[source]¶
Download order book and trades data from Binance via WebSocket.
- Parameters:
- pathstr
Root path; trades saved under
<path>/trades/, book under<path>/book/.- pairstr, optional
Trading pair in Binance format (e.g. ‘BTCUSDT’), default is ‘BTCUSDT’.
- time_stepint, optional
Seconds between snapshots, default is 60.
- untilint, optional
Duration in seconds or stop timestamp, default is 3600.
- formstr, optional
Save format (‘csv’, ‘parquet’, etc.), default is ‘csv’.
- get_orderbook_binance(path, pair='BTCUSDT', time_step=60, until=3600, form='csv')[source]¶
Download order book data from Binance via WebSocket.
- Parameters:
- pathstr
Path to save data.
- pairstr, optional
Trading pair in Binance format (e.g. ‘BTCUSDT’), default is ‘BTCUSDT’.
- time_stepint, optional
Seconds between snapshots, default is 60.
- untilint, optional
Duration in seconds or stop timestamp, default is 3600.
- formstr, optional
Save format (‘csv’, ‘parquet’, etc.), default is ‘csv’.
- get_trades_binance(path, pair='BTCUSDT', time_step=60, until=3600, form='csv')[source]¶
Download trades data from Binance via WebSocket.
- Parameters:
- pathstr
Path to save data.
- pairstr, optional
Trading pair in Binance format (e.g. ‘BTCUSDT’), default is ‘BTCUSDT’.
- time_stepint, optional
Seconds between snapshots, default is 60.
- untilint, optional
Duration in seconds or stop timestamp, default is 3600.
- formstr, optional
Save format (‘csv’, ‘parquet’, etc.), default is ‘csv’.
Low level API¶
- class DownloadBinanceData(pair='BTCUSDT', time_step=60, until=3600, checkpoint_dir=None)[source]¶
Bases:
ContinuousDownloaderDownload data continuously from Binance via combined WebSocket streams.
- Parameters:
- pairstr
Trading pair symbol in Binance format (e.g. ‘BTCUSDT’).
- time_stepint, optional
Seconds between data snapshots, default is 60.
- untilint, optional
Seconds to run or stop timestamp, default is 3600.
- Attributes:
- hoststr
WebSocket URL (combined stream endpoint).
- is_connectbool
True if connected.
- tsint
Snapshot interval in seconds.
- untilint
Stop timestamp.
Methods
set_process_data(func, **kwargs)Set processing function.
set_saver(call, **kwargs)Set saver object to save data or update a database.
__call__(*args, **kwargs)Start the WebSocket stream and block until it stops.
- __call__(*args, **kwargs)¶
Start the WebSocket stream and block until it stops.
- Parameters:
- *args, **kwargs
Forwarded to
_connect.
- Returns:
- ContinuousDownloader
The downloader instance (for chaining).
- set_process_data(func, **kwargs)¶
Set processing function.
- Parameters:
- funccallable
Function to process and clean data before to be saved. Must take data in arguments and can take any optional keywords arguments, cf exemples in
dccd.process_data.- **kwargs
Any keyword arguments to be passed to func.
- set_saver(call, **kwargs)¶
Set saver object to save data or update a database.
- Parameters:
- callcallable
Callable object to save data or update a database. Must take data in arguments and can take any optional keywords arguments, cf exemples in
dccd.io_tools.- **kwargs
Any keyword arguments to be passed to call.
DownloadBinanceData streams real-time
trades and order book data from Binance via WebSocket. No authentication is
required.
Exchange specifics¶
WebSocket URL |
|
Available channels |
Trades ( |
Pair format |
Lowercase concatenation: |
Authentication |
Not required for public streams. |
Quick example¶
from dccd.continuous_dl import DownloadBinanceData, get_data_binance
from dccd.tools.io import IODataBase
# Convenience function (simplest)
get_data_binance('/data/crypto/', pair='BTCUSDT',
time_step=60, until=3600, form='parquet')
# Class-based API (full control)
dl = DownloadBinanceData(pair='BTCUSDT', time_step=60, until=3600)
dl.set_trades_saver(IODataBase('/data/crypto/trades', method='parquet'))
dl.set_book_saver(IODataBase('/data/crypto/book', method='parquet'))
dl.run()