update
This commit is contained in:
parent
3f8b5fee23
commit
850afa1d18
@ -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获取订单"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user