9.2 KiB
bfxapi
This module is used to interact with the bitfinex api
bfxapi.client
This module exposes the core bitfinex clients which includes both a websocket client and a rest interface client
Client
Client(self, API_KEY=None, API_SECRET=None, rest_host='https://api-pub.bitfinex.com/v2', ws_host='wss://api-pub.bitfinex.com/ws/2', create_event_emitter=None, logLevel='INFO', dead_man_switch=False, ws_capacity=25, *args, **kwargs)
The bfx client exposes rest and websocket objects
BfxWebsocket
BfxWebsocket(self, API_KEY=None, API_SECRET=None, host='wss://api-pub.bitfinex.com/ws/2', manageOrderBooks=False, dead_man_switch=False, ws_capacity=25, logLevel='INFO', parse_float=<class 'float'>, *args, **kwargs)
More complex websocket that heavily relies on the btfxwss module. This websocket requires authentication and is capable of handling orders. https://github.com/Crypto-toolbox/btfxwss
Emitter events:
all(array|Object): listen for all messages coming throughconnected:() called when a connection is madedisconnected: () called when a connection is ended (A reconnect attempt may follow)stopped: () called when max amount of connection retries is met and the socket is closedauthenticated(): called when the websocket passes authenticationnotification(Notification): incoming account notificationerror(array): error from the websocketorder_closed(Order, Trade): when an order has been closedorder_new(Order, Trade): when an order has been created but not closed. Note: will not be called if order is executed and filled instantlyorder_confirmed(Order, Trade): When an order has been submitted and receivedwallet_snapshot(array[Wallet]): Initial wallet balances (Fired once)order_snapshot(array[Order]): Initial open orders (Fired once)positions_snapshot(array): Initial open positions (Fired once)wallet_update(Wallet): changes to the balance of walletsstatus_update(Object): new platform status infoseed_candle(Object): initial past candle to prime strategyseed_trade(Object): initial past trade to prime strategyfunding_offer_snapshot(array): opening funding offer balancesfunding_loan_snapshot(array): opening funding loan balancesfunding_credit_snapshot(array): opening funding credit balancesbalance_update(array): when the state of a balance is changednew_trade(array): a new trade on the market has been executedtrade_update(array): a trade on the market has been updatednew_candle(array): a new candle has been producedmargin_info_updates(array): new margin information has been broadcastedfunding_info_updates(array): new funding information has been broadcastedorder_book_snapshot(array): initial snapshot of the order book on connectionorder_book_update(array): a new order has been placed into the ordebrooksubscribed(Subscription): a new channel has been subscribed tounsubscribed(Subscription): a channel has been un-subscribed
enable_flag
BfxWebsocket.enable_flag(self, flag)
Enable flag on websocket connection
Attributes
flag (int): int flag value
subscribe_order_book
BfxWebsocket.subscribe_order_book(self, symbol)
Subscribe to an orderbook data feed
Attributes
@param symbol: the trading symbol i.e 'tBTCUSD'
subscribe_candles
BfxWebsocket.subscribe_candles(self, symbol, timeframe)
Subscribe to a candle data feed
Attributes
@param symbol: the trading symbol i.e 'tBTCUSD'@param timeframe: resolution of the candle i.e 15m, 1h
subscribe_trades
BfxWebsocket.subscribe_trades(self, symbol)
Subscribe to a trades data feed
Attributes
@param symbol: the trading symbol i.e 'tBTCUSD'
subscribe_ticker
BfxWebsocket.subscribe_ticker(self, symbol)
Subscribe to a ticker data feed
Attributes
@param symbol: the trading symbol i.e 'tBTCUSD'
subscribe_derivative_status
BfxWebsocket.subscribe_derivative_status(self, symbol)
Subscribe to a status data feed
Attributes
@param symbol: the trading symbol i.e 'tBTCUSD'
subscribe
BfxWebsocket.subscribe(self, *args, **kwargs)
Subscribe to a new channel
Attributes
@param channel_name: the name of the channel i.e 'books', 'candles'@param symbol: the trading symbol i.e 'tBTCUSD'@param timeframe: sepecifies the data timeframe between each candle (only required for the candles channel)
unsubscribe
BfxWebsocket.unsubscribe(self, *args, **kwargs)
Unsubscribe from the channel with the given chanId
Attributes
@param onComplete: function called when the bitfinex websocket resoponds with a signal that confirms the subscription has been unsubscribed to
resubscribe
BfxWebsocket.resubscribe(self, *args, **kwargs)
Unsubscribes and then subscribes to the channel with the given Id
This function is mostly used to force the channel to produce a fresh snapshot.
unsubscribe_all
BfxWebsocket.unsubscribe_all(self, *args, **kwargs)
Unsubscribe from all channels.
resubscribe_all
BfxWebsocket.resubscribe_all(self, *args, **kwargs)
Unsubscribe and then subscribe to all channels
submit_order
BfxWebsocket.submit_order(self, *args, **kwargs)
Submit a new order
Attributes
-
@param gid: assign the order to a group identifier -
@param symbol: the name of the symbol i.e 'tBTCUSD -
@param price: the price you want to buy/sell at (must be positive) -
@param amount: order size: how much you want to buy/sell, a negative amount indicates a sell order and positive a buy order -
@param market_type Order.Type: please see Order.Type enum amount decimal string Positive for buy, Negative for sell -
@param hidden: if True, order should be hidden from orderbooks -
@param price_trailing: decimal trailing price -
@param price_aux_limit: decimal auxiliary Limit price (only for STOP LIMIT) -
@param oco_stop_price: set the oco stop price (requires oco = True) -
@param close: if True, close position if position present -
@param reduce_only: if True, ensures that the executed order does not flip the opened position -
@param post_only: if True, ensures the limit order will be added to the order book and not match with a pre-existing order -
@param oco: cancels other order option allows you to place a pair of orders stipulating that if one order is executed fully or partially, then the other is automatically canceled -
@param time_in_force: datetime for automatic order cancellation ie. 2020-01-01 10:45:23 -
@param leverage: the amount of leverage to apply to the order as an integer -
@param onConfirm: function called when the bitfinex websocket receives signal that the order was confirmed -
@param onClose: function called when the bitfinex websocket receives signal that the order was closed due to being filled or cancelled
update_order
BfxWebsocket.update_order(self, *args, **kwargs)
Update an existing order
Attributes
@param orderId: the id of the order that you want to update@param price: the price you want to buy/sell at (must be positive)@param amount: order size: how much you want to buy/sell, a negative amount indicates a sell order and positive a buy order@param delta: change of amount@param price_trailing: decimal trailing price@param price_aux_limit: decimal auxiliary Limit price (only for STOP LIMIT)@param hidden: if True, order should be hidden from orderbooks@param close: if True, close position if position present@param reduce_only: if True, ensures that the executed order does not flip the opened position@param post_only: if True, ensures the limit order will be added to the order book and not match with a pre-existing order@param time_in_force: datetime for automatic order cancellation ie. 2020-01-01 10:45:23@param leverage: the amount of leverage to apply to the order as an integer@param onConfirm: function called when the bitfinex websocket receives signal that the order was confirmed@param onClose: function called when the bitfinex websocket receives signal that the order was closed due to being filled or cancelled
cancel_order
BfxWebsocket.cancel_order(self, *args, **kwargs)
Cancel an existing open order
Attributes
@param orderId: the id of the order that you want to update@param onConfirm: function called when the bitfinex websocket receives signal that the order was confirmed@param onClose: function called when the bitfinex websocket receives signal that the order was closed due to being filled or cancelled
cancel_order_group
BfxWebsocket.cancel_order_group(self, *args, **kwargs)
Cancel a set of orders using a single group id.
cancel_all_orders
BfxWebsocket.cancel_all_orders(self, *args, **kwargs)
Cancel all existing open orders
This function closes all open orders.
cancel_order_multi
BfxWebsocket.cancel_order_multi(self, *args, **kwargs)
Cancel existing open orders as a batch
Attributes
@param ids: an array of order ids@param gids: an array of group ids