diff --git a/src/real/real_trader_manager.py b/src/real/real_trader_manager.py index 2635413..df3c6fe 100644 --- a/src/real/real_trader_manager.py +++ b/src/real/real_trader_manager.py @@ -1,6 +1,7 @@ import time import threading import schedule +import datetime from xtquant import xtconstant from logger_config import get_logger from config import Config @@ -185,7 +186,13 @@ class RealTraderManager: for order_id, order_info in pending_orders.items(): # 如果订单类型为限价单,则检查是否超时 if order_info.order_type == ORDER_TYPE_LIMIT: - duration = (time.time() - order_info.created_time).total_seconds() + # 将datetime对象转换为时间戳进行比较 + if isinstance(order_info.created_time, datetime.datetime): + created_timestamp = order_info.created_time.timestamp() + duration = time.time() - created_timestamp + else: + duration = time.time() - order_info.created_time + if duration > Config.RTM_ORDER_TIMEOUT: logger.info(f"限价单超时: ID={order_id}, 策略={strategy_name}, 持续时间={duration}秒") self.trader.cancel(order_id)