From 3b5f1d52cdb44520b1ea396423fae31e33ee3e9a Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 6 Jan 2026 20:04:11 +0100 Subject: [PATCH] feat: Futures wallets should consider open PnL --- freqtrade/rpc/rpc.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/freqtrade/rpc/rpc.py b/freqtrade/rpc/rpc.py index c820a5c55..0c6ee4789 100644 --- a/freqtrade/rpc/rpc.py +++ b/freqtrade/rpc/rpc.py @@ -873,8 +873,21 @@ class RPC: symbol: str pos: PositionWallet for symbol, pos in self._freqtrade.wallets.get_all_positions().items(): - total += pos.collateral - total_bot += pos.collateral + est_stake = pos.collateral + pos_base = self._freqtrade.exchange.get_pair_base_currency(symbol) + if pos.leverage: + try: + rate = self._freqtrade.exchange.get_conversion_rate(pos_base, stake_currency) + if rate: + # est_stake = collateral + PnL + est_stake = rate * pos.position - pos.collateral * (pos.leverage - 1) + except (ExchangeError, PricingError) as e: + logger.warning(f"Error {e} getting rate for futures {symbol} / {pos_base}") + pass + + # Add the estimated stake (collateral + unlevered PnL) to totals + total += est_stake + total_bot += est_stake currencies.append( { @@ -883,11 +896,11 @@ class RPC: "balance": 0, "used": 0, "position": pos.position, - "est_stake": pos.collateral, - "est_stake_bot": pos.collateral, + "est_stake": est_stake, + "est_stake_bot": est_stake, "stake": stake_currency, "side": pos.side, - "is_bot_managed": True, + "is_bot_managed": pos_base in open_assets, "is_position": True, } )