From a8e0baf0c0aab9f9a89cf097be2e3a2849d11376 Mon Sep 17 00:00:00 2001 From: shokollm <270575765+shokollm@users.noreply.github.com> Date: Sun, 12 Apr 2026 07:41:56 +0000 Subject: [PATCH] fix: save portfolio data to database Portfolio (cash balance, position, etc.) is now saved to DB during simulation so it persists and shows in frontend. --- src/backend/app/api/simulate.py | 10 ++++++++-- src/backend/app/db/models.py | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/backend/app/api/simulate.py b/src/backend/app/api/simulate.py index fda6b6b..42163e7 100644 --- a/src/backend/app/api/simulate.py +++ b/src/backend/app/api/simulate.py @@ -61,8 +61,14 @@ def run_simulation_sync( ] simulation.trade_log = engine.trade_log # Save portfolio data - if hasattr(engine, 'current_balance') and engine.current_balance is not None: - simulation.signals = [serialize_signal(s) for s in engine.signals] + simulation.portfolio = { + "initial_balance": engine.config.get("initial_balance", 10000), + "current_balance": engine.current_balance, + "position": engine.position, + "position_token": engine.position_token, + "entry_price": engine.entry_price, + "current_price": engine.last_close, + } db.commit() finally: db.close() diff --git a/src/backend/app/db/models.py b/src/backend/app/db/models.py index 2eccf85..741d95b 100644 --- a/src/backend/app/db/models.py +++ b/src/backend/app/db/models.py @@ -95,6 +95,7 @@ class Simulation(Base): signals = Column(JSON) klines = Column(JSON) # Price data for chart display trade_log = Column(JSON) # Trade activity log + portfolio = Column(JSON) # Portfolio data bot = relationship("Bot", back_populates="simulations")