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.