From 60309b9e575fe48f0c3354b2756ed6114af7a69e Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 22 Nov 2025 13:40:57 +0100 Subject: [PATCH] chore: move num_entries/exits to trade model --- freqtrade/persistence/trade_model.py | 2 ++ freqtrade/rpc/telegram.py | 13 +++---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py index d898ea55e..bc4d1c47e 100644 --- a/freqtrade/persistence/trade_model.py +++ b/freqtrade/persistence/trade_model.py @@ -755,6 +755,8 @@ class LocalTrade: "precision_mode": self.precision_mode, "precision_mode_price": self.precision_mode_price, "contract_size": self.contract_size, + "nr_of_successful_entries": self.nr_of_successful_entries, + "nr_of_successful_exits": self.nr_of_successful_exits, "has_open_orders": self.has_open_orders, "orders": orders_json, } diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index baa448017..69c76b776 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -757,14 +757,7 @@ class Telegram(RPCHandler): max_entries = self._config.get("max_entry_position_adjustment", -1) for r in results: r["open_date_hum"] = dt_humanize_delta(r["open_date"]) - r["num_entries"] = len([o for o in r["orders"] if o["ft_is_entry"]]) - r["num_exits"] = len( - [ - o - for o in r["orders"] - if not o["ft_is_entry"] and not o["ft_order_side"] == "stoploss" - ] - ) + r["stake_amount_r"] = fmt_coin(r["stake_amount"], r["quote_currency"]) r["max_stake_amount_r"] = fmt_coin( r["max_stake_amount"] or r["stake_amount"], r["quote_currency"] @@ -790,8 +783,8 @@ class Telegram(RPCHandler): max_buy_str = f"/{max_entries + 1}" if (max_entries > 0) else "" lines.extend( [ - f"*Number of Entries:* `{r['num_entries']}{max_buy_str}`", - f"*Number of Exits:* `{r['num_exits']}`", + f"*Number of Entries:* `{r['nr_of_successful_entries']}{max_buy_str}`", + f"*Number of Exits:* `{r['nr_of_successful_exits']}`", ] )