Simplify cancel_entry
This commit is contained in:
parent
561600e98b
commit
7dd984e25e
@ -1343,11 +1343,12 @@ class FreqtradeBot(LoggingMixin):
|
|||||||
replacing: Optional[bool] = False
|
replacing: Optional[bool] = False
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""
|
"""
|
||||||
Buy cancel - cancel order
|
entry cancel - cancel order
|
||||||
:param replacing: Replacing order - prevent trade deletion.
|
:param replacing: Replacing order - prevent trade deletion.
|
||||||
:return: True if order was fully cancelled
|
:return: True if order was fully cancelled
|
||||||
"""
|
"""
|
||||||
was_trade_fully_canceled = False
|
was_trade_fully_canceled = False
|
||||||
|
side = trade.entry_side.capitalize()
|
||||||
|
|
||||||
# Cancelled orders may have the status of 'canceled' or 'closed'
|
# Cancelled orders may have the status of 'canceled' or 'closed'
|
||||||
if order['status'] not in constants.NON_OPEN_EXCHANGE_STATES:
|
if order['status'] not in constants.NON_OPEN_EXCHANGE_STATES:
|
||||||
@ -1374,7 +1375,6 @@ class FreqtradeBot(LoggingMixin):
|
|||||||
corder = order
|
corder = order
|
||||||
reason = constants.CANCEL_REASON['CANCELLED_ON_EXCHANGE']
|
reason = constants.CANCEL_REASON['CANCELLED_ON_EXCHANGE']
|
||||||
|
|
||||||
side = trade.entry_side.capitalize()
|
|
||||||
logger.info('%s order %s for %s.', side, reason, trade)
|
logger.info('%s order %s for %s.', side, reason, trade)
|
||||||
|
|
||||||
# Using filled to determine the filled amount
|
# Using filled to determine the filled amount
|
||||||
@ -1388,15 +1388,12 @@ class FreqtradeBot(LoggingMixin):
|
|||||||
was_trade_fully_canceled = True
|
was_trade_fully_canceled = True
|
||||||
reason += f", {constants.CANCEL_REASON['FULLY_CANCELLED']}"
|
reason += f", {constants.CANCEL_REASON['FULLY_CANCELLED']}"
|
||||||
else:
|
else:
|
||||||
# FIXME TODO: This could possibly reworked to not duplicate the code 15 lines below.
|
|
||||||
self.update_trade_state(trade, trade.open_order_id, corder)
|
self.update_trade_state(trade, trade.open_order_id, corder)
|
||||||
trade.open_order_id = None
|
trade.open_order_id = None
|
||||||
logger.info(f'{side} Order timeout for {trade}.')
|
logger.info(f'{side} Order timeout for {trade}.')
|
||||||
else:
|
else:
|
||||||
# update_trade_state (and subsequently recalc_trade_from_orders) will handle updates
|
# update_trade_state (and subsequently recalc_trade_from_orders) will handle updates
|
||||||
# to the trade object
|
# to the trade object
|
||||||
trade.amount = filled_amount
|
|
||||||
|
|
||||||
self.update_trade_state(trade, trade.open_order_id, corder)
|
self.update_trade_state(trade, trade.open_order_id, corder)
|
||||||
|
|
||||||
trade.open_order_id = None
|
trade.open_order_id = None
|
||||||
|
@ -2998,6 +2998,7 @@ def test_handle_cancel_enter(mocker, caplog, default_conf_usdt, limit_order, is_
|
|||||||
trade.open_rate = 200
|
trade.open_rate = 200
|
||||||
trade.is_short = False
|
trade.is_short = False
|
||||||
trade.entry_side = "buy"
|
trade.entry_side = "buy"
|
||||||
|
trade.amount = 100
|
||||||
l_order['filled'] = 0.0
|
l_order['filled'] = 0.0
|
||||||
l_order['status'] = 'open'
|
l_order['status'] = 'open'
|
||||||
trade.nr_of_successful_entries = 0
|
trade.nr_of_successful_entries = 0
|
||||||
@ -3086,6 +3087,7 @@ def test_handle_cancel_enter_corder_empty(mocker, default_conf_usdt, limit_order
|
|||||||
trade.entry_side = "buy"
|
trade.entry_side = "buy"
|
||||||
trade.open_order_id = "open_order_noop"
|
trade.open_order_id = "open_order_noop"
|
||||||
trade.nr_of_successful_entries = 0
|
trade.nr_of_successful_entries = 0
|
||||||
|
trade.amount = 100
|
||||||
l_order['filled'] = 0.0
|
l_order['filled'] = 0.0
|
||||||
l_order['status'] = 'open'
|
l_order['status'] = 'open'
|
||||||
reason = CANCEL_REASON['TIMEOUT']
|
reason = CANCEL_REASON['TIMEOUT']
|
||||||
|
Loading…
Reference in New Issue
Block a user