diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py index 21390489e..f592cd211 100644 --- a/freqtrade/optimize/backtesting.py +++ b/freqtrade/optimize/backtesting.py @@ -588,7 +588,6 @@ class Backtesting: """ if order and self._get_order_filled(order.ft_price, row): order.close_bt_order(current_date, trade) - trade.open_order_id = None return True return False @@ -854,7 +853,6 @@ class Backtesting: self.trade_id_counter += 1 trade = LocalTrade( id=self.trade_id_counter, - open_order_id=self.order_id_counter, pair=pair, base_currency=base_currency, stake_currency=self.config['stake_currency'], @@ -916,8 +914,7 @@ class Backtesting: ) order._trade_bt = trade trade.orders.append(order) - if not self._try_close_open_order(order, trade, current_time, row): - trade.open_order_id = str(self.order_id_counter) + self._try_close_open_order(order, trade, current_time, row) trade.recalc_trade_from_orders() return trade @@ -929,7 +926,7 @@ class Backtesting: """ for pair in open_trades.keys(): for trade in list(open_trades[pair]): - if trade.open_order_id and trade.nr_of_successful_entries == 0: + if trade.has_open_orders and trade.nr_of_successful_entries == 0: # Ignore trade if entry-order did not fill yet continue exit_row = data[pair][-1] @@ -1006,13 +1003,11 @@ class Backtesting: else: # Close additional entry order del trade.orders[trade.orders.index(order)] - trade.open_order_id = None return False if order.side == trade.exit_side: self.timedout_exit_orders += 1 # Close exit order and retry exiting on next signal. del trade.orders[trade.orders.index(order)] - trade.open_order_id = None return False return None @@ -1040,7 +1035,6 @@ class Backtesting: return False else: del trade.orders[trade.orders.index(order)] - trade.open_order_id = None self.canceled_entry_orders += 1 # place new order if result was not None @@ -1051,7 +1045,7 @@ class Backtesting: order.safe_remaining * order.ft_price / trade.leverage), direction='short' if trade.is_short else 'long') # Delete trade if no successful entries happened (if placing the new order failed) - if trade.open_order_id is None and trade.nr_of_successful_entries == 0: + if not trade.has_open_orders and trade.nr_of_successful_entries == 0: return True self.replaced_entry_orders += 1 else: @@ -1136,7 +1130,7 @@ class Backtesting: self.wallets.update() # 4. Create exit orders (if any) - if not trade.open_order_id: + if not trade.has_open_orders: self._check_trade_exit(trade, row) # Place exit order if necessary # 5. Process exit orders. diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py index 7a32ef6f5..3212297e1 100644 --- a/freqtrade/persistence/trade_model.py +++ b/freqtrade/persistence/trade_model.py @@ -765,7 +765,6 @@ class LocalTrade: self.close_date = self.close_date or datetime.utcnow() self.is_open = False self.exit_order_status = 'closed' - self.open_order_id = None self.recalc_trade_from_orders(is_closing=True) if show_msg: logger.info(f"Marking {self} as closed as the trade is fulfilled "