From 31b4efc284d2ee9db4cd7227a9c7c1bb98f51ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=87=E8=96=87=E5=AE=89?= Date: Sat, 17 Jan 2026 10:44:07 +0800 Subject: [PATCH] a --- trading_system/position_manager.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/trading_system/position_manager.py b/trading_system/position_manager.py index df5aeb6..498d1ea 100644 --- a/trading_system/position_manager.py +++ b/trading_system/position_manager.py @@ -1015,6 +1015,7 @@ class PositionManager: trade_id = position_info.get('tradeId') if trade_id: try: +<<<<<<< Current (Your changes) # 计算持仓持续时间和策略类型 entry_time = position_info.get('entryTime') duration_minutes = None @@ -1042,6 +1043,35 @@ class PositionManager: strategy_type=strategy_type, duration_minutes=duration_minutes ) +======= + # 计算持仓持续时间和策略类型 + entry_time = position_info.get('entryTime') + duration_minutes = None + if entry_time: + try: + from datetime import datetime + if isinstance(entry_time, str): + entry_dt = datetime.strptime(entry_time, '%Y-%m-%d %H:%M:%S') + else: + entry_dt = entry_time + exit_dt = datetime.now() + duration = exit_dt - entry_dt + duration_minutes = int(duration.total_seconds() / 60) + except Exception as e: + logger.debug(f"计算持仓持续时间失败: {e}") + + strategy_type = position_info.get('strategyType', 'trend_following') + + Trade.update_exit( + trade_id=trade_id, + exit_price=current_price, + exit_reason=exit_reason, + pnl=pnl_amount, + pnl_percent=pnl_percent_margin, + strategy_type=strategy_type, + duration_minutes=duration_minutes + ) +>>>>>>> Incoming (Background Agent changes) except Exception as e: logger.warning(f"更新止盈记录失败: {e}") if await self.close_position(symbol, reason=exit_reason):