mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-19 14:54:21 +01:00
OrderManager: add docstrings to cancel functions
This commit is contained in:
@@ -24,10 +24,10 @@ class OrderManager:
|
|||||||
return list(self.pending_orders.values())
|
return list(self.pending_orders.values())
|
||||||
|
|
||||||
async def _confirm_order(self, order, isClosed=False):
|
async def _confirm_order(self, order, isClosed=False):
|
||||||
'''
|
"""
|
||||||
Called once when we first recieve infomation back from the bitfinex api
|
Called every time an order signal has been received. This function
|
||||||
that the order has been accepted.
|
manages the local list of open orders.
|
||||||
'''
|
"""
|
||||||
if order.cId in self.pending_orders:
|
if order.cId in self.pending_orders:
|
||||||
if self.pending_callbacks[order.cId][0]:
|
if self.pending_callbacks[order.cId][0]:
|
||||||
# call onConfirm callback
|
# call onConfirm callback
|
||||||
@@ -198,18 +198,35 @@ class OrderManager:
|
|||||||
self.logger.info("Update Order order_id={} dispatched".format(orderId))
|
self.logger.info("Update Order order_id={} dispatched".format(orderId))
|
||||||
|
|
||||||
async def cancel_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))
|
Cancel an existing open order
|
||||||
|
|
||||||
|
@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
|
||||||
|
"""
|
||||||
order = self.open_orders[orderId]
|
order = self.open_orders[orderId]
|
||||||
self.pending_callbacks[order.cId] = (onConfirm, onClose)
|
self.pending_callbacks[order.cId] = (onConfirm, onClose)
|
||||||
await self._cancel_order(orderId)
|
await self.bfxapi._send_auth_command('oc', { 'id': orderId })
|
||||||
self.logger.info("Order cancel order_id={} dispatched".format(orderId))
|
self.logger.info("Order cancel order_id={} dispatched".format(orderId))
|
||||||
|
|
||||||
async def cancel_all_orders(self):
|
async def cancel_all_orders(self):
|
||||||
|
"""
|
||||||
|
Cancel all existing open orders
|
||||||
|
|
||||||
|
This function closes orders that have been tracked locally by the OrderManager.
|
||||||
|
"""
|
||||||
ids = [self.open_orders[x].id for x in self.open_orders]
|
ids = [self.open_orders[x].id for x in self.open_orders]
|
||||||
await self.cancel_order_multi(ids)
|
await self.cancel_order_multi(ids)
|
||||||
|
|
||||||
async def cancel_order_multi(self, orderIds):
|
async def cancel_order_multi(self, orderIds):
|
||||||
|
"""
|
||||||
|
Cancel existing open orders as a batch
|
||||||
|
|
||||||
|
@param orderIds: an array of order ids
|
||||||
|
"""
|
||||||
task_batch = []
|
task_batch = []
|
||||||
for oid in orderIds:
|
for oid in orderIds:
|
||||||
task_batch += [
|
task_batch += [
|
||||||
@@ -217,28 +234,6 @@ class OrderManager:
|
|||||||
]
|
]
|
||||||
await asyncio.wait(*[ task_batch ])
|
await asyncio.wait(*[ task_batch ])
|
||||||
|
|
||||||
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,
|
|
||||||
price_trailing=None, flags=None, time_in_force=None):
|
|
||||||
payload = { "id": orderId }
|
|
||||||
if price is not None:
|
|
||||||
payload['price'] = str(price)
|
|
||||||
if amount is not None:
|
|
||||||
payload['amount'] = str(amount)
|
|
||||||
if delta is not None:
|
|
||||||
payload['delta'] = str(delta)
|
|
||||||
if price_aux_limit is not None:
|
|
||||||
payload['price_aux_limit'] = str(price_aux_limit)
|
|
||||||
if price_trailing is not None:
|
|
||||||
payload['price_trailing'] = str(price_trailing)
|
|
||||||
if flags is not None:
|
|
||||||
payload['flags'] = str(flags)
|
|
||||||
if time_in_force is not None:
|
|
||||||
payload['time_in_force'] = str(time_in_force)
|
|
||||||
await self.bfxapi._send_auth_command('ou', payload)
|
|
||||||
|
|
||||||
def _calculate_flags(self, hidden, close, reduce_only, post_only, oco):
|
def _calculate_flags(self, hidden, close, reduce_only, post_only, oco):
|
||||||
flags = 0
|
flags = 0
|
||||||
flags = flags + Order.Flags.HIDDEN if hidden else flags
|
flags = flags + Order.Flags.HIDDEN if hidden else flags
|
||||||
|
|||||||
Reference in New Issue
Block a user