diff --git a/bfxapi/examples/ws/cancel_order.py b/bfxapi/examples/ws/cancel_order.py index 2da2a44..b13b3af 100644 --- a/bfxapi/examples/ws/cancel_order.py +++ b/bfxapi/examples/ws/cancel_order.py @@ -24,7 +24,7 @@ async def trade_completed(order, trade): print ("Order confirmed.") print (order) print (trade) - await bfx.ws.close_order(order.id) + await bfx.ws.cancel_order(order.id) @bfx.ws.on('error') def log_error(msg): diff --git a/bfxapi/examples/ws/send_order.py b/bfxapi/examples/ws/send_order.py index e61442c..2af03c4 100644 --- a/bfxapi/examples/ws/send_order.py +++ b/bfxapi/examples/ws/send_order.py @@ -14,8 +14,8 @@ bfx = Client( ) @bfx.ws.on('order_snapshot') -async def close_all(data): - await bfx.ws.close_all_orders() +async def cancel_all(data): + await bfx.ws.cancel_all_orders() @bfx.ws.on('order_confirmed') async def trade_completed(order): @@ -24,9 +24,9 @@ async def trade_completed(order): ## close the order # await order.close() # or - # await bfx.ws.close_order(order.id) + # await bfx.ws.cancel_order(order.id) # or - # await bfx.ws.close_all_orders() + # await bfx.ws.cancel_all_orders() @bfx.ws.on('error') def log_error(msg): diff --git a/bfxapi/websockets/BfxWebsocket.py b/bfxapi/websockets/BfxWebsocket.py index 138b906..278a3c3 100644 --- a/bfxapi/websockets/BfxWebsocket.py +++ b/bfxapi/websockets/BfxWebsocket.py @@ -55,59 +55,11 @@ def _parse_trade(tData, symbol): } class BfxWebsocket(GenericWebsocket): - ''' + """ 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 - - Translation names: - - translation table for channel names: - Data Channels - os - Orders - hos - Historical Orders - ps - Positions - hts - Trades (snapshot) - te - Trade Executed - tu - Trade Execution update - ws - Wallets - bu - Balance Info - miu - Margin Info - fiu - Funding Info - fos - Offers - hfos - Historical Offers - fcs - Credits - hfcs - Historical Credits - fls - Loans - hfls - Historical Loans - htfs - Funding Trades - n - Notifications (WIP) - - Events: - - all: listen for all messages coming through - - connected: called when a connection is made - - authenticated: called when the websocket passes authentication - - notification (array): incoming account notification - - error (string): 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 (string): Initial wallet balances (Fired once) - - order_snapshot (string): Initial open orders (Fired once) - - positions_snapshot (string): Initial open positions (Fired once) - - wallet_update (string): changes to the balance of wallets - - seed_candle (candleArray): initial past candle to prime strategy - - seed_trade (tradeArray): initial past trade to prime strategy - - funding_offer_snapshot: - - funding_loan_snapshot: - - funding_credit_snapshot: - - balance_update when the state of a balance is changed - - new_trade: a new trade on the market has been executed - - new_candle: a new candle has been produced - - margin_info_update: new margin information has been broadcasted - - funding_info_update: new funding information has been broadcasted - ''' + """ ERRORS = { 10000: 'Unknown event', @@ -436,11 +388,11 @@ class BfxWebsocket(GenericWebsocket): async def update_order(self, *args, **kwargs): return await self.orderManager.update_order(*args, **kwargs) - async def close_order(self, *args, **kwargs): - return await self.orderManager.close_order(*args, **kwargs) + async def cancel_order(self, *args, **kwargs): + return await self.orderManager.cancel_order(*args, **kwargs) - async def close_all_orders(self, *args, **kwargs): - return await self.orderManager.close_all_orders(*args, **kwargs) + async def cancel_all_orders(self, *args, **kwargs): + return await self.orderManager.cancel_all_orders(*args, **kwargs) - async def close_order_multi(self, *args, **kwargs): - return await self.close_order_multi(*args, **kwargs) + async def cancel_order_multi(self, *args, **kwargs): + return await self.cancel_order_multi(*args, **kwargs) diff --git a/bfxapi/websockets/OrderManager.py b/bfxapi/websockets/OrderManager.py index 0bbb8e2..ada2622 100644 --- a/bfxapi/websockets/OrderManager.py +++ b/bfxapi/websockets/OrderManager.py @@ -197,19 +197,19 @@ class OrderManager: await self.bfxapi._send_auth_command('ou', payload) self.logger.info("Update Order order_id={} dispatched".format(orderId)) - async def close_order(self, orderId, onConfirm=None, onClose=None): + async def cancel_order(self, orderId, onConfirm=None, onClose=None): if orderId not in self.open_orders: raise Exception("Order id={} is not open".format(orderId)) order = self.open_orders[orderId] self.pending_callbacks[order.cId] = (onConfirm, onClose) - await self._close_order(orderId) + await self._cancel_order(orderId) self.logger.info("Order cancel order_id={} dispatched".format(orderId)) - async def close_all_orders(self): + async def cancel_all_orders(self): ids = [self.open_orders[x].id for x in self.open_orders] - await self.close_order_multi(ids) + await self.cancel_order_multi(ids) - async def close_order_multi(self, orderIds): + async def cancel_order_multi(self, orderIds): task_batch = [] for oid in orderIds: task_batch += [ @@ -217,7 +217,7 @@ class OrderManager: ] await asyncio.wait(*[ task_batch ]) - async def _close_order(self, orderId): + async def _cancel_order(self, orderId): await self.bfxapi._send_auth_command('oc', { 'id': orderId }) async def _update(self, orderId, price=None, amount=None, delta=None, price_aux_limit=None,