Bitfinex Continuous Downloader (dccd.continuous_dl.bitfinex)

Objects and functions to download data from Bitfinex exchange.

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

High level API

dccd.continuous_dl.bitfinex.get_data_bitfinex(channel, process_func, process_params={}, save_method='dataframe', io_params={}, time_step=60, until=None, path=None, **kwargs)

Download data from Bitfinex 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/bitfinex/channel’.

**kwargs

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

Warning

‘book_raw’ and ‘trades_raw’ can be very memory expensive.

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://docs.bitfinex.com/v2/docs/ws-public
dccd.continuous_dl.bitfinex.get_orderbook_bitfinex(symbol, precision='P0', frequency='F0', lenght='25', time_step=60, until=None, path=None, save_method='dataframe', io_params={})

Download orderbook from Bitfinex exchange.

dccd.continuous_dl.bitfinex.get_trades_bitfinex(symbol, time_step=60, until=None, path=None, save_method='dataframe', io_params={})

Download trades tick by tick from Bitfinex exchange.

Low level API

class dccd.continuous_dl.bitfinex.DownloadBitfinexData(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, channel, \*\*kwargs) Open a websocket connection and save/update the database.
__call__(self, channel, **kwargs)

Open a websocket connection and save/update the database.

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

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

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

**kwargs

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

Warning

‘book_raw’ and ‘trades_raw’ can be very memory expensive.

References

[1]https://docs.bitfinex.com/v2/docs/ws-public
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.