diff --git a/freqtrade/persistence/wallet_history.py b/freqtrade/persistence/wallet_history.py index 0e384730c..383e42a1c 100644 --- a/freqtrade/persistence/wallet_history.py +++ b/freqtrade/persistence/wallet_history.py @@ -21,6 +21,7 @@ class WalletHistory(ModelBase): price: Mapped[float] = mapped_column(Float, nullable=True) balance: Mapped[float] = mapped_column(Float, nullable=False) leverage: Mapped[float] = mapped_column(Float, nullable=False, default=1.0) + bot_managed: Mapped[bool] = mapped_column(nullable=False, default=True) __table_args__ = ( # Ensure one record per currency per day diff --git a/freqtrade/wallets.py b/freqtrade/wallets.py index a520f98a7..b0bdc37a3 100644 --- a/freqtrade/wallets.py +++ b/freqtrade/wallets.py @@ -458,6 +458,7 @@ class Wallets: # Record total balances for all currencies wallet_records = [] position_collaterals = 0.0 + open_assets: dict[str, Trade] = {t.safe_base_currency: t for t in Trade.get_open_trades()} for position in self.get_all_positions().values(): base = self._exchange.get_pair_base_currency(position.symbol) price = self._exchange.get_conversion_rate(base, self._stake_currency) @@ -467,6 +468,7 @@ class Wallets: price=price, balance=position.position, leverage=position.leverage or 1.0, + bot_managed=base in open_assets, ) position_collaterals += position.collateral wallet_records.append(position_record) @@ -474,6 +476,10 @@ class Wallets: for wallet in self.get_all_balances().values(): # TODO: exclude minimal balances? price = self._exchange.get_conversion_rate(wallet.currency, self._stake_currency) + is_bot_managed = ( + self._stake_currency == wallet.currency or wallet.currency in open_assets + ) + wallet_record = WalletHistory( timestamp=timestamp, currency=wallet.currency, @@ -481,6 +487,7 @@ class Wallets: balance=wallet.total - (position_collaterals if wallet.currency == self._stake_currency else 0), leverage=1.0, + bot_managed=is_bot_managed, ) wallet_records.append(wallet_record) try: