From 58079a8b5092b3dc0efe3a50e590070ab8c605ac Mon Sep 17 00:00:00 2001 From: ABS <53243996+ABSllk@users.noreply.github.com> Date: Mon, 23 Feb 2026 16:15:43 +0800 Subject: [PATCH] refactor: fetch starting_balance only once at backtest initialization --- freqtrade/optimize/backtesting.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py index bdfce6e42..4311df21a 100644 --- a/freqtrade/optimize/backtesting.py +++ b/freqtrade/optimize/backtesting.py @@ -136,6 +136,7 @@ class Backtesting: "exited": {}, } self.rejected_dict: dict[str, list] = {} + self.starting_balance: float = 0.0 self._exchange_name = self.config["exchange"]["name"] self.__initial_backtest = exchange is None @@ -277,6 +278,7 @@ class Backtesting: self.reset_backtest(False) self.wallets = Wallets(self.config, self.exchange, is_backtest=True) + self.starting_balance = self.wallets.get_starting_balance() self.progress = BTProgress() self.abort = False @@ -1271,9 +1273,8 @@ class Backtesting: def run_protections(self, pair: str, current_time: datetime, side: LongShort): if self.enable_protections: - starting_balance = self.wallets.get_starting_balance() - self.protections.stop_per_pair(pair, current_time, side, starting_balance) - self.protections.global_stop(current_time, side, starting_balance) + self.protections.stop_per_pair(pair, current_time, side, self.starting_balance) + self.protections.global_stop(current_time, side, self.starting_balance) def manage_open_orders(self, trade: LocalTrade, current_time: datetime, row: tuple) -> bool: """