From e62ab751d893941aec185d595738760c80f11afa Mon Sep 17 00:00:00 2001 From: zhiyong Date: Thu, 15 May 2025 10:19:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=A3=80=E6=9F=A5=E9=99=90=E4=BB=B7?= =?UTF-8?q?=E5=8D=95=E6=98=AF=E5=90=A6=E8=B6=85=E6=97=B6=E6=97=B6=E5=8F=91?= =?UTF-8?q?=E7=94=9F=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/real/real_trader_manager.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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)