fix: 检查限价单是否超时时发生异常

This commit is contained in:
zhiyong 2025-05-15 10:19:21 +08:00
parent a6a081e773
commit e62ab751d8

View File

@ -1,6 +1,7 @@
import time import time
import threading import threading
import schedule import schedule
import datetime
from xtquant import xtconstant from xtquant import xtconstant
from logger_config import get_logger from logger_config import get_logger
from config import Config from config import Config
@ -185,7 +186,13 @@ class RealTraderManager:
for order_id, order_info in pending_orders.items(): for order_id, order_info in pending_orders.items():
# 如果订单类型为限价单,则检查是否超时 # 如果订单类型为限价单,则检查是否超时
if order_info.order_type == ORDER_TYPE_LIMIT: 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: if duration > Config.RTM_ORDER_TIMEOUT:
logger.info(f"限价单超时: ID={order_id}, 策略={strategy_name}, 持续时间={duration}") logger.info(f"限价单超时: ID={order_id}, 策略={strategy_name}, 持续时间={duration}")
self.trader.cancel(order_id) self.trader.cancel(order_id)