feat: add "bot_managed" to wallet_history

This commit is contained in:
Matthias
2026-01-06 15:51:06 +01:00
parent 0835318b8f
commit 98493dc9ed
2 changed files with 8 additions and 0 deletions
+1
View File
@@ -21,6 +21,7 @@ class WalletHistory(ModelBase):
price: Mapped[float] = mapped_column(Float, nullable=True) price: Mapped[float] = mapped_column(Float, nullable=True)
balance: Mapped[float] = mapped_column(Float, nullable=False) balance: Mapped[float] = mapped_column(Float, nullable=False)
leverage: Mapped[float] = mapped_column(Float, nullable=False, default=1.0) leverage: Mapped[float] = mapped_column(Float, nullable=False, default=1.0)
bot_managed: Mapped[bool] = mapped_column(nullable=False, default=True)
__table_args__ = ( __table_args__ = (
# Ensure one record per currency per day # Ensure one record per currency per day
+7
View File
@@ -458,6 +458,7 @@ class Wallets:
# Record total balances for all currencies # Record total balances for all currencies
wallet_records = [] wallet_records = []
position_collaterals = 0.0 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(): for position in self.get_all_positions().values():
base = self._exchange.get_pair_base_currency(position.symbol) base = self._exchange.get_pair_base_currency(position.symbol)
price = self._exchange.get_conversion_rate(base, self._stake_currency) price = self._exchange.get_conversion_rate(base, self._stake_currency)
@@ -467,6 +468,7 @@ class Wallets:
price=price, price=price,
balance=position.position, balance=position.position,
leverage=position.leverage or 1.0, leverage=position.leverage or 1.0,
bot_managed=base in open_assets,
) )
position_collaterals += position.collateral position_collaterals += position.collateral
wallet_records.append(position_record) wallet_records.append(position_record)
@@ -474,6 +476,10 @@ class Wallets:
for wallet in self.get_all_balances().values(): for wallet in self.get_all_balances().values():
# TODO: exclude minimal balances? # TODO: exclude minimal balances?
price = self._exchange.get_conversion_rate(wallet.currency, self._stake_currency) 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( wallet_record = WalletHistory(
timestamp=timestamp, timestamp=timestamp,
currency=wallet.currency, currency=wallet.currency,
@@ -481,6 +487,7 @@ class Wallets:
balance=wallet.total balance=wallet.total
- (position_collaterals if wallet.currency == self._stake_currency else 0), - (position_collaterals if wallet.currency == self._stake_currency else 0),
leverage=1.0, leverage=1.0,
bot_managed=is_bot_managed,
) )
wallet_records.append(wallet_record) wallet_records.append(wallet_record)
try: try: