diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index fae5d175c..41392cffb 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -478,7 +478,8 @@ class FreqtradeBot(LoggingMixin): trade.close_date = trade.date_last_filled_utc strategy_safe_wrapper( self.strategy.order_filled, default_retval=None)( - pair=trade.pair, trade=trade, current_time=datetime.now(timezone.utc)) + pair=trade.pair, trade=trade, order=order_obj, + current_time=datetime.now(timezone.utc)) self.order_close_notify(trade, order_obj, order_obj.ft_order_side == 'stoploss', send_msg=prev_trade_state != trade.is_open) @@ -1950,7 +1951,7 @@ class FreqtradeBot(LoggingMixin): if order.status in constants.NON_OPEN_EXCHANGE_STATES: strategy_safe_wrapper( self.strategy.order_filled, default_retval=None)( - pair=trade.pair, trade=trade, current_time=datetime.now(timezone.utc)) + pair=trade.pair, trade=trade, order=order, current_time=datetime.now(timezone.utc)) # If a entry order was closed, force update on stoploss on exchange if order.ft_order_side == trade.entry_side: trade = self.cancel_stoploss_on_exchange(trade) diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py index bbf6f13f5..4a3898d5e 100644 --- a/freqtrade/optimize/backtesting.py +++ b/freqtrade/optimize/backtesting.py @@ -605,7 +605,7 @@ class Backtesting: self._run_funding_fees(trade, current_date, force=True) strategy_safe_wrapper( self.strategy.order_filled, default_retval=None)( - pair=trade.pair, trade=trade, current_time=datetime.now(timezone.utc)) + pair=trade.pair, trade=trade, order=order, current_time=datetime.now(timezone.utc)) if not (order.ft_order_side == trade.exit_side and order.safe_amount == trade.amount): # trade is still open diff --git a/freqtrade/strategy/interface.py b/freqtrade/strategy/interface.py index 04f5ce6c9..b3c6648e3 100644 --- a/freqtrade/strategy/interface.py +++ b/freqtrade/strategy/interface.py @@ -372,11 +372,13 @@ class IStrategy(ABC, HyperStrategyMixin): """ return True - def order_filled(self, pair: str, trade: Trade, current_time: datetime, **kwargs) -> None: + def order_filled(self, pair: str, trade: Trade, order: Order, + current_time: datetime, **kwargs) -> None: """ Called just ofter order filling :param pair: Pair for trade that's just exited. :param trade: trade object. + :param order: Order object. :param current_time: datetime object, containing the current datetime :param **kwargs: Ensure to keep this here so updates to this won't break your strategy. """