This commit is contained in:
aaron 2026-02-14 22:53:19 +08:00
parent 3f8b5fee23
commit 850afa1d18

View File

@ -297,6 +297,7 @@ class PaperTradingService:
'order_id': order.order_id, 'order_id': order.order_id,
'symbol': order.symbol, 'symbol': order.symbol,
'side': order.side.value, 'side': order.side.value,
'entry_price': order.entry_price, # 挂单价
'filled_price': filled_price, 'filled_price': filled_price,
'quantity': order.quantity, 'quantity': order.quantity,
'signal_grade': order.signal_grade.value if order.signal_grade else None, 'signal_grade': order.signal_grade.value if order.signal_grade else None,
@ -579,12 +580,18 @@ class PaperTradingService:
def get_active_orders(self, symbol: Optional[str] = None) -> List[Dict[str, Any]]: def get_active_orders(self, symbol: Optional[str] = None) -> List[Dict[str, Any]]:
"""获取活跃订单""" """获取活跃订单(从数据库读取,确保多进程同步)"""
orders = list(self.active_orders.values()) db = db_service.get_session()
try:
query = db.query(PaperOrder).filter(
PaperOrder.status.in_([OrderStatus.PENDING, OrderStatus.OPEN])
)
if symbol: if symbol:
orders = [o for o in orders if o.symbol == symbol] query = query.filter(PaperOrder.symbol == symbol)
# 转换为字典,添加错误处理 orders = query.all()
# 转换为字典
result = [] result = []
for order in orders: for order in orders:
try: try:
@ -595,6 +602,11 @@ class PaperTradingService:
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
return result return result
except Exception as e:
logger.error(f"获取活跃订单失败: {e}")
return []
finally:
db.close()
def get_order_by_id(self, order_id: str) -> Optional[Dict[str, Any]]: def get_order_by_id(self, order_id: str) -> Optional[Dict[str, Any]]:
"""根据ID获取订单""" """根据ID获取订单"""