Bitmex Continuous Downloader (dccd.continuous_dl.bitmex)

Objects and functions to download data from Bitmex exchange.

These functions and objects allow you to continuously download data and update your database.

High level API

dccd.continuous_dl.bitmex.get_data_bitmex(process_func, *args, time_step=60, until=None, path=None, save_method='dataframe', io_params={}, **kwargs)

Download data from Bitmex exchange and update the database.

Parameters:
channel : str, {‘book’, ‘book_raw’, ‘trades’, ‘trades_raw’}

Websocket channel to get data, by default data will be aggregated (OHLC for ‘trades’ and reconstructed orderbook for ‘book’), add ‘_raw’ to the channel to get raw data (trade tick by tick or each orders).

process_func : callable

Function to process and clean data before to be saved. Must take data in arguments and can take any optional keywords arguments, cf function exemples in dccd.process_data.

process_params : dict, optional

Dictionary of the keyword arguments available to process_func, cf documentation into dccd.process_data.

save_method : {‘DataFrame’, ‘SQLite’, ‘CSV’, ‘Excel’, ‘PostgreSQL’, ‘Oracle’, ‘MSSQL’, ‘MySQL’},

It will create an IODataBase object to save/update the database in the specified format save_method, default is ‘DataFrame’ it save as binary pd.DataFrame object. More informations are available into dccd.io_tools.

io_params : dict, optional

Dictionary of the keyword arguments available to the callable io_tools.IODataBase method. Note: With SQL format some parameters are compulsory, seed details into dccd.io_tools.

time_step : int, optional

Number of second between two snapshots of data, default 60 (1 minute).

until : int, optional

Number of seconds before stoping to download and update, default is None. If until equal 0 or None it means it never stop.

path : str, optional

Path to save/update the database, default is None. If path is None, database is saved at the relative path ‘./database/bitmex/channel’.

**kwargs

Any revelevant keyword arguments will be passed to the websocket connector, see Bitmex API documentation [2] for more details.

Warning

‘_raw’ option not yet working for bitmex.

See also

process_data
function to process/clean data (set_marketdepth, set_ohlc, set_orders, set_marketdepth).
io_tools.IODataBase
object to save/update the database with respect to specified format.

References

[2]https://www.bitmex.com/api/
dccd.continuous_dl.bitmex.get_orderbook_bitmex(*args, time_step=60, until=None, path=None, save_method='dataframe', io_params={})

Download orderbook from Bitmex exchange.

dccd.continuous_dl.bitmex.get_trades_bitmex(*args, time_step=60, until=None, path=None, save_method='dataframe', io_params={})

Download trades tick by tick from Bitmex exchange.

Low level API

class dccd.continuous_dl.bitmex.DownloadBitmexData(time_step=60, until=3600)

Bases: dccd.continuous_dl.exchange.ContinuousDownloader

Basis object to download data from a stream websocket client API.

Parameters:
time_step : int, optional

Number of seconds between two snapshots of data, minimum is 1, default is 60 (one minute). Each time_step data will be processed and updated to the database.

until : int, optional

Number of seconds before stoping or timestamp of when stoping, default is 3600 (one hour).

Attributes:
host : str

Adress of host to connect.

conn_par : dict

Parameters of websocket connection.

ws : websockets.client.WebSocketClientProtocol

Connection with the websocket client.

is_connect : bool

True if is connected, False otherwise.

ts : int

Number of second between two snapshots of data.

t : int

Current timestamp but rounded by ts.

until : int

Timestamp to stop to download data.

Methods

set_process_data(self, func, \*\*kwargs) Set processing function.
set_saver(self, call, \*\*kwargs) Set saver object to save data or update a database.
__call__(self, \*args) Open a websocket connection and save/update the database.
__call__(self, *args)

Open a websocket connection and save/update the database.

Run asynchronously two loops to get data from Bitmex websocket and save/update the database.

Parameters:
channel : {‘orderBookL2_25’, ‘trade’}

Channel to get data, by default data will be aggregated (OHLC for ‘trades’ and reconstructed orderbook for ‘orderBookL2_25’), add ‘_raw’ to the channel to get raw data (trade tick by tick or each orders).

**kwargs

Any revelevant keyword arguments will be passed to the websocket connector, see API documentation [1] for more details.

Warning

‘_raw’ option not yet working for Bitmex.

References

[1]https://www.bitmex.com/api/
set_process_data(self, func, **kwargs)

Set processing function.

Parameters:
func : callable

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(self, call, **kwargs)

Set saver object to save data or update a database.

Parameters:
call : callable

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.