From b103045a0598e8a02d801a3005aa5ee8da7e93c9 Mon Sep 17 00:00:00 2001 From: Sam Germain Date: Sun, 27 Feb 2022 12:08:39 -0600 Subject: [PATCH] backtesting._enter_trade update liquidation price on increased position --- freqtrade/optimize/backtesting.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py index 1bda42ee0..82b576609 100644 --- a/freqtrade/optimize/backtesting.py +++ b/freqtrade/optimize/backtesting.py @@ -701,16 +701,16 @@ class Backtesting: if stake_amount and (not min_stake_amount or stake_amount > min_stake_amount): self.order_id_counter += 1 amount = round((stake_amount / propose_rate) * leverage, 8) + is_short = (direction == 'short') + (interest_rate, isolated_liq) = self._leverage_prep( + pair=pair, + open_rate=propose_rate, + amount=amount, + leverage=leverage, + is_short=is_short, + ) if trade is None: # Enter trade - is_short = (direction == 'short') - (interest_rate, isolated_liq) = self._leverage_prep( - pair=pair, - open_rate=propose_rate, - amount=amount, - leverage=leverage, - is_short=is_short, - ) self.trade_id_counter += 1 trade = LocalTrade( id=self.trade_id_counter, @@ -737,6 +737,13 @@ class Backtesting: trade.adjust_stop_loss(trade.open_rate, self.strategy.stoploss, initial=True) + if self.trading_mode == TradingMode.FUTURES: + if isolated_liq is None: + raise OperationalException( + f'isolated_liq is none for {pair} while trading futures, ' + 'this should never happen') + trade.set_isolated_liq(isolated_liq) + order = Order( id=self.order_id_counter, ft_trade_id=trade.id,