Skip to content

Latest commit

 

History

History
328 lines (237 loc) · 9.83 KB

ws_v2.md

File metadata and controls

328 lines (237 loc) · 9.83 KB

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,
       channel_filter=[],
       *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=float,
             channel_filter=[],
             *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 through
  • connected: () called when a connection is made
  • disconnected: () 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 closed
  • authenticated (): called when the websocket passes authentication
  • notification (Notification): incoming account notification
  • error (array): error from the websocket
  • order_closed (Order, Trade): when an order has been closed
  • order_new (Order, Trade): when an order has been created but not closed. Note: will not be called if order is executed and filled instantly
  • order_confirmed (Order, Trade): When an order has been submitted and received
  • wallet_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)
  • positions_new (array): Initial open positions (Fired once)
  • positions_update (array): An active position has been updated
  • positions_close (array): An active position has closed
  • wallet_update (Wallet): Changes to the balance of wallets
  • status_update (Object): New platform status info
  • seed_candle (Object): Initial past candle to prime strategy
  • seed_trade (Object): Initial past trade to prime strategy
  • funding_offer_snapshot (array): Opening funding offer balances
  • funding_loan_snapshot (array): Opening funding loan balances
  • funding_credit_snapshot (array): Opening funding credit balances
  • balance_update (array): When the state of a balance is changed
  • new_trade (array): A new trade on the market has been executed
  • new_ticker (Ticker|FundingTicker): A new ticker update has been published
  • new_funding_ticker (FundingTicker): A new funding ticker update has been published
  • new_trading_ticker (Ticker): A new trading ticker update has been published
  • trade_update (array): A trade on the market has been updated
  • new_candle (array): A new candle has been produced
  • margin_info_updates (array): New margin information has been broadcasted
  • funding_info_updates (array): New funding information has been broadcasted
  • order_book_snapshot (array): Initial snapshot of the order book on connection
  • order_book_update (array): A new order has been placed into the ordebrook
  • subscribed (Subscription): A new channel has been subscribed to
  • unsubscribed (Subscription): A channel has been un-subscribed

enable_flag

BfxWebsocket.enable_flag(flag)

Enable flag on websocket connection

Attributes

  • flag (int): int flag value

subscribe_order_book

BfxWebsocket.subscribe_order_book(symbol)

Subscribe to an orderbook data feed

Attributes

  • @param symbol: the trading symbol i.e 'tBTCUSD'

subscribe_candles

BfxWebsocket.subscribe_candles(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(symbol)

Subscribe to a trades data feed

Attributes

  • @param symbol: the trading symbol i.e 'tBTCUSD'

subscribe_ticker

BfxWebsocket.subscribe_ticker(symbol)

Subscribe to a ticker data feed

Attributes

  • @param symbol: the trading symbol i.e 'tBTCUSD'

subscribe_derivative_status

BfxWebsocket.subscribe_derivative_status(symbol)

Subscribe to a status data feed

Attributes

  • @param symbol: the trading symbol i.e 'tBTCUSD'

subscribe

BfxWebsocket.subscribe(*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(*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(*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(*args, **kwargs)

Unsubscribe from all channels.

resubscribe_all

BfxWebsocket.resubscribe_all(*args, **kwargs)

Unsubscribe and then subscribe to all channels

submit_order

BfxWebsocket.submit_order(*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(*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(*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(*args, **kwargs)

Cancel a set of orders using a single group id.

cancel_all_orders

BfxWebsocket.cancel_all_orders(*args, **kwargs)

Cancel all existing open orders

This function closes all open orders.

cancel_order_multi

BfxWebsocket.cancel_order_multi(*args, **kwargs)

Cancel existing open orders as a batch

Attributes

  • @param ids: an array of order ids
  • @param gids: an array of group ids