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,22 +580,33 @@ 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()
if symbol: try:
orders = [o for o in orders if o.symbol == symbol] query = db.query(PaperOrder).filter(
PaperOrder.status.in_([OrderStatus.PENDING, OrderStatus.OPEN])
)
if symbol:
query = query.filter(PaperOrder.symbol == symbol)
# 转换为字典,添加错误处理 orders = query.all()
result = []
for order in orders:
try:
result.append(order.to_dict())
except Exception as e:
logger.error(f"转换订单 {order.order_id} 为字典失败: {e}")
import traceback
logger.error(traceback.format_exc())
return result # 转换为字典
result = []
for order in orders:
try:
result.append(order.to_dict())
except Exception as e:
logger.error(f"转换订单 {order.order_id} 为字典失败: {e}")
import traceback
logger.error(traceback.format_exc())
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获取订单"""