From 733cd22deec49d7c3654255f2d4f723b39750223 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 17 Jan 2025 06:48:01 +0100 Subject: [PATCH] chore: remove bt_open_open_trade_count_candle it's no longer necessary if we support in-candle entries --- freqtrade/optimize/backtesting.py | 1 - freqtrade/persistence/trade_model.py | 11 ----------- tests/persistence/test_persistence.py | 1 - 3 files changed, 13 deletions(-) diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py index e9b93d7d7..e52ec3850 100644 --- a/freqtrade/optimize/backtesting.py +++ b/freqtrade/optimize/backtesting.py @@ -1488,7 +1488,6 @@ class Backtesting: # Reset open trade count for this candle # Critical to avoid exceeding max_open_trades in backtesting # when timeframe-detail is used and trades close within the opening candle. - LocalTrade.bt_open_open_trade_count_candle = LocalTrade.bt_open_open_trade_count strategy_safe_wrapper(self.strategy.bot_loop_start, supress_error=True)( current_time=current_time ) diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py index 6ecd44b4b..b6ac40977 100644 --- a/freqtrade/persistence/trade_model.py +++ b/freqtrade/persistence/trade_model.py @@ -391,7 +391,6 @@ class LocalTrade: # Copy of trades_open - but indexed by pair bt_trades_open_pp: dict[str, list["LocalTrade"]] = defaultdict(list) bt_open_open_trade_count: int = 0 - bt_open_open_trade_count_candle: int = 0 bt_total_profit: float = 0 realized_profit: float = 0 @@ -760,7 +759,6 @@ class LocalTrade: LocalTrade.bt_trades_open = [] LocalTrade.bt_trades_open_pp = defaultdict(list) LocalTrade.bt_open_open_trade_count = 0 - LocalTrade.bt_open_open_trade_count_candle = 0 LocalTrade.bt_total_profit = 0 def adjust_min_max_rates(self, current_price: float, current_price_low: float) -> None: @@ -1462,11 +1460,6 @@ class LocalTrade: LocalTrade.bt_trades_open.remove(trade) LocalTrade.bt_trades_open_pp[trade.pair].remove(trade) LocalTrade.bt_open_open_trade_count -= 1 - if (trade.close_date_utc - trade.open_date_utc) > timedelta(minutes=trade.timeframe): - # Only subtract trades that are open for more than 1 candle - # To avoid exceeding max_open_trades. - # Must be reset at the start of every candle during backesting. - LocalTrade.bt_open_open_trade_count_candle -= 1 LocalTrade.bt_trades.append(trade) LocalTrade.bt_total_profit += trade.close_profit_abs @@ -1476,7 +1469,6 @@ class LocalTrade: LocalTrade.bt_trades_open.append(trade) LocalTrade.bt_trades_open_pp[trade.pair].append(trade) LocalTrade.bt_open_open_trade_count += 1 - LocalTrade.bt_open_open_trade_count_candle += 1 else: LocalTrade.bt_trades.append(trade) @@ -1485,9 +1477,6 @@ class LocalTrade: LocalTrade.bt_trades_open.remove(trade) LocalTrade.bt_trades_open_pp[trade.pair].remove(trade) LocalTrade.bt_open_open_trade_count -= 1 - # TODO: The below may have odd behavior in case of canceled entries - # It might need to be removed so the trade "counts" as open for this candle. - LocalTrade.bt_open_open_trade_count_candle -= 1 @staticmethod def get_open_trades() -> list[Any]: diff --git a/tests/persistence/test_persistence.py b/tests/persistence/test_persistence.py index 9109fce43..b9606ee47 100644 --- a/tests/persistence/test_persistence.py +++ b/tests/persistence/test_persistence.py @@ -2145,7 +2145,6 @@ def test_Trade_object_idem(): "bt_trades_open", "bt_trades_open_pp", "bt_open_open_trade_count", - "bt_open_open_trade_count_candle", "bt_total_profit", "from_json", )