diff --git a/backend/app/services/paper_trading_service.py b/backend/app/services/paper_trading_service.py index 00cc992..81a8944 100644 --- a/backend/app/services/paper_trading_service.py +++ b/backend/app/services/paper_trading_service.py @@ -267,10 +267,13 @@ class PaperTradingService: db.commit() db.refresh(db_order) - # 同步更新内存缓存 - order.status = OrderStatus.OPEN - order.filled_price = filled_price - order.opened_at = db_order.opened_at + # 使用 make_transient 将对象从会话中分离,使其成为独立对象 + from sqlalchemy.orm import make_transient + db.expunge(db_order) # 从会话中移除 + make_transient(db_order) # 使对象独立 + + # 用独立的对象替换内存缓存中的旧对象 + self.active_orders[order.order_id] = db_order logger.info(f"挂单已激活: {order.order_id} | {order.symbol} {order.side.value} @ ${filled_price:,.2f}") @@ -280,7 +283,6 @@ class PaperTradingService: 'order_id': order.order_id, 'symbol': order.symbol, 'side': order.side.value, - 'entry_price': order.entry_price, 'filled_price': filled_price, 'quantity': order.quantity, 'signal_grade': order.signal_grade.value if order.signal_grade else None,