fix: 检查限价单是否超时时发生异常
This commit is contained in:
parent
a6a081e773
commit
e62ab751d8
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user