Kraken Continuous Downloader (dccd.continuous_dl.kraken)¶
Objects and functions to download data from Kraken exchange (WebSocket).
High level API¶
- get_data_kraken(path, pair='BTC/USD', time_step=60, until=3600, form='csv')[source]¶
Download order book and trades data from Kraken via WebSocket.
- Parameters:
- pathstr
Root path; trades saved under
<path>/trades/, book under<path>/book/.- pairstr, optional
Trading pair in Kraken format (e.g. ‘BTC/USD’), default is ‘BTC/USD’.
- 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_kraken(path, pair='BTC/USD', time_step=60, until=3600, form='csv')[source]¶
Download order book data from Kraken via WebSocket.
- Parameters:
- pathstr
Path to save data.
- pairstr, optional
Trading pair in Kraken format (e.g. ‘BTC/USD’), default is ‘BTC/USD’.
- 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_kraken(path, pair='BTC/USD', time_step=60, until=3600, form='csv')[source]¶
Download trades data from Kraken via WebSocket.
- Parameters:
- pathstr
Path to save data.
- pairstr, optional
Trading pair in Kraken format (e.g. ‘BTC/USD’), default is ‘BTC/USD’.
- 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 DownloadKrakenData(pair='BTC/USD', time_step=60, until=3600, span=None, checkpoint_dir=None)[source]¶
Bases:
ContinuousDownloaderDownload data continuously from Kraken via WebSocket v2.
- Parameters:
- pairstr
Trading pair in Kraken format (e.g. ‘BTC/USD’).
- time_stepint, optional
Seconds between data snapshots, default is 60.
- untilint, optional
Seconds to run or stop timestamp, default is 3600.
- spanint, optional
OHLCV interval in seconds; if given, also subscribes to the ohlc channel. Must be a multiple of 60. Default is None.
- Attributes:
- hoststr
WebSocket URL.
- 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.
DownloadKrakenData streams real-time
trades, order book data, and native OHLCV candles from Kraken via WebSocket.
Kraken is the only exchange supported by dccd that provides native OHLCV
over WebSocket. No authentication is required.
Exchange specifics¶
WebSocket URL |
|
Available channels |
Trades, order book (level 2 with depth 10–1000), and OHLCV (native). |
Pair format |
Standard slash-separated: |
Authentication |
Not required for public streams. |
Quick example¶
from dccd.continuous_dl import DownloadKrakenData, get_data_kraken
from dccd.tools.io import IODataBase
# Convenience function
get_data_kraken('/data/crypto/', pair='BTC/USD',
time_step=60, until=3600, form='parquet')
# Class-based API
dl = DownloadKrakenData(pair='BTC/USD', 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()