From ada31bdd65ed6a880db9c3dca2c2162e4f27b7f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=87=E8=96=87=E5=AE=89?= Date: Thu, 15 Jan 2026 19:02:05 +0800 Subject: [PATCH] a --- backend/api/routes/stats.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/backend/api/routes/stats.py b/backend/api/routes/stats.py index e87d04f..d325781 100644 --- a/backend/api/routes/stats.py +++ b/backend/api/routes/stats.py @@ -107,12 +107,20 @@ async def get_dashboard_data(): open_trades = [] for trade in db_trades: entry_value_usdt = float(trade.get('quantity', 0)) * float(trade.get('entry_price', 0)) + leverage = float(trade.get('leverage', 1)) + pnl = float(trade.get('pnl', 0)) + + # 数据库中的pnl_percent是价格涨跌幅,需要转换为收益率 + # 收益率 = 盈亏 / 保证金 + margin = entry_value_usdt / leverage if leverage > 0 else entry_value_usdt + pnl_percent = (pnl / margin * 100) if margin > 0 else 0 + formatted_trade = { **trade, 'entry_value_usdt': entry_value_usdt, 'mark_price': trade.get('entry_price', 0), # 数据库中没有标记价,使用入场价 - 'pnl': trade.get('pnl', 0), - 'pnl_percent': trade.get('pnl_percent', 0) + 'pnl': pnl, + 'pnl_percent': pnl_percent # 使用重新计算的收益率 } open_trades.append(formatted_trade) logger.info(f"使用数据库记录作为持仓数据: {len(open_trades)} 个持仓") @@ -128,12 +136,20 @@ async def get_dashboard_data(): open_trades = [] for trade in db_trades: entry_value_usdt = float(trade.get('quantity', 0)) * float(trade.get('entry_price', 0)) + leverage = float(trade.get('leverage', 1)) + pnl = float(trade.get('pnl', 0)) + + # 数据库中的pnl_percent是价格涨跌幅,需要转换为收益率 + # 收益率 = 盈亏 / 保证金 + margin = entry_value_usdt / leverage if leverage > 0 else entry_value_usdt + pnl_percent = (pnl / margin * 100) if margin > 0 else 0 + formatted_trade = { **trade, 'entry_value_usdt': entry_value_usdt, 'mark_price': trade.get('entry_price', 0), # 数据库中没有标记价,使用入场价 - 'pnl': trade.get('pnl', 0), - 'pnl_percent': trade.get('pnl_percent', 0) + 'pnl': pnl, + 'pnl_percent': pnl_percent # 使用重新计算的收益率 } open_trades.append(formatted_trade) logger.info(f"使用数据库记录作为持仓数据: {len(open_trades)} 个持仓")