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: ContinuousDownloader

Download 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

wss://ws.kraken.com/v2

Available channels

Trades, order book (level 2 with depth 10–1000), and OHLCV (native).

Pair format

Standard slash-separated: 'BTC/USD' (handled automatically).

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()