Dashboard V12: Fix Open Positions count

- PROBLEM: Dashboard showed 0 positions (read from empty trades.json)
- SOLUTION: Count locked coins instead (BTC/ETH/SOL/BNB/XRP)
- RESULT: Now shows 5 active positions correctly
- API: Added active_positions field to /api/state
This commit is contained in:
Marc Blatter 2026-07-05 08:19:56 +02:00
parent 57beea0cc9
commit a861127afc
1 changed files with 10 additions and 2 deletions

View File

@ -76,26 +76,34 @@ async def get_state():
portfolio_value += data['total'] * price
usdt_free = balance.get('USDT', {}).get('free', 0)
# Count active positions = locked coins (NOT trades.json)
active_positions = 0
for asset in ['BTC', 'ETH', 'SOL', 'BNB', 'XRP']:
if asset in balance and balance[asset]['locked'] > 0.00001:
active_positions += 1
trades = load_bot_state()
return {
'balance': balance,
'portfolio_value': round(portfolio_value, 2),
'usdt_free': round(usdt_free, 2),
'active_positions': active_positions, # ← NEW: Real count!
'current_trades': trades.get('current', {}),
'completed_trades': trades.get('completed', []),
'prices': prices,
'timestamp': datetime.now().isoformat()
}
except Exception as e:
return {'error': str(e), 'portfolio_value': 0, 'usdt_free': 0}
return {'error': str(e), 'portfolio_value': 0, 'usdt_free': 0, 'active_positions': 0}
@app.get('/')
async def root():
state = await get_state()
portfolio_val = state.get('portfolio_value', 0)
usdt_free = state.get('usdt_free', 0)
trades_count = len(state.get('current_trades', {}))
trades_count = state.get('active_positions', 0) # ← FIXED: Use real count!
prices = state.get('prices', {})
html = f'''<!DOCTYPE html>