Bybit Continuous Downloader (dccd.continuous_dl.bybit)

Objects and functions to download data from Bybit exchange (WebSocket).

High level API

get_data_bybit(path, pair='BTCUSDT', time_step=60, until=3600, form='csv')[source]

Download order book and trades data from Bybit.

Parameters:
pathstr

Root path; trades saved under <path>/trades/, book under <path>/book/.

pairstr, optional

Trading pair, default is ‘BTCUSDT’.

time_stepint, optional

Seconds between snapshots, default is 60.

untilint, optional

Duration in seconds, default is 3600.

formstr, optional

Save format, default is ‘csv’.

get_orderbook_bybit(path, pair='BTCUSDT', time_step=60, until=3600, form='csv')[source]

Download order book data from Bybit.

Parameters:
pathstr

Path to save data.

pairstr, optional

Trading pair, default is ‘BTCUSDT’.

time_stepint, optional

Seconds between snapshots, default is 60.

untilint, optional

Duration in seconds, default is 3600.

formstr, optional

Save format, default is ‘csv’.

get_trades_bybit(path, pair='BTCUSDT', time_step=60, until=3600, form='csv')[source]

Download trades data from Bybit.

Parameters:
pathstr

Path to save data.

pairstr, optional

Trading pair, default is ‘BTCUSDT’.

time_stepint, optional

Seconds between snapshots, default is 60.

untilint, optional

Duration in seconds, default is 3600.

formstr, optional

Save format, default is ‘csv’.

Low level API

class DownloadBybitData(pair='BTCUSDT', time_step=60, until=3600, checkpoint_dir=None)[source]

Bases: ContinuousDownloader

Download data continuously from Bybit via WebSocket v5.

Parameters:
pairstr

Trading pair symbol (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.

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.

DownloadBybitData streams real-time trades and order book data from Bybit via WebSocket (v5 public API). No authentication is required.

Exchange specifics

WebSocket URL

wss://stream.bybit.com/v5/public/spot

Available channels

Trades (publicTrade) and order book (orderbook).

Pair format

Concatenation: 'BTCUSDT' (handled automatically).

Authentication

Not required for public streams.

Quick example

from dccd.continuous_dl import DownloadBybitData, get_data_bybit
from dccd.tools.io import IODataBase

# Convenience function
get_data_bybit('/data/crypto/', pair='BTCUSDT',
               time_step=60, until=3600, form='parquet')

# Class-based API
dl = DownloadBybitData(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()