From 532adfe348ab71cdd9ed92ef599d051af4a73895 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 18:46:20 +0800 Subject: [PATCH] a --- backend/api/routes/account.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/backend/api/routes/account.py b/backend/api/routes/account.py index d6a1b2d..81a2bbe 100644 --- a/backend/api/routes/account.py +++ b/backend/api/routes/account.py @@ -263,13 +263,18 @@ async def get_realtime_positions(): mark_price = entry_price position_value = abs(position_amt * mark_price) - pnl_percent = 0 - if entry_price > 0 and position_value > 0: - pnl_percent = (unrealized_pnl / position_value) * 100 - # 计算开仓时的USDT数量 + # 计算开仓时的USDT数量(名义价值) entry_value_usdt = abs(position_amt) * entry_price + # 计算收益率:盈亏 / 保证金(与币安一致) + # 保证金 = 名义价值 / 杠杆 + leverage = float(pos.get('leverage', 1)) + margin = entry_value_usdt / leverage if leverage > 0 else entry_value_usdt + pnl_percent = 0 + if margin > 0: + pnl_percent = (unrealized_pnl / margin) * 100 + # 尝试从数据库获取开仓时间 entry_time = None try: