Simplify cancel_entry

This commit is contained in:
Matthias 2022-09-30 07:13:57 +02:00
parent 561600e98b
commit 7dd984e25e
2 changed files with 4 additions and 5 deletions

View File

@ -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

View File

@ -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']