diff --git a/src/real/real_trader_manager.py b/src/real/real_trader_manager.py index 63f6720..0b9576a 100644 --- a/src/real/real_trader_manager.py +++ b/src/real/real_trader_manager.py @@ -79,7 +79,7 @@ class RealTraderManager: # 检查限价单是否超时 if hasattr(Config, "RTM_ORDER_TIMEOUT"): try: - schedule.every(10).seconds.do( + schedule.every(30).seconds.do( run_threaded(self.check_limit_orders) ) except Exception as e: @@ -205,10 +205,7 @@ class RealTraderManager: self.trader.place_market_order_for_remainder(order_info, strategy_name) else: logger.warning(f"限价单撤销失败: ID={order_id}, 策略={strategy_name}") - else: - logger.info(f"限价单未超时: ID={order_id}, 策略={strategy_name}, 持续时间={duration}秒") - logger.info("限价单检查完毕") except Exception as e: logger.error(f"检查限价单是否超时时发生异常: {str(e)}") diff --git a/src/real/xt_trader.py b/src/real/xt_trader.py index e6fae09..5ae91ab 100644 --- a/src/real/xt_trader.py +++ b/src/real/xt_trader.py @@ -74,15 +74,7 @@ class MyXtQuantTraderCallback: if self.trader_instance: order_id = trade.order_id # 查找该订单所属的策略 - strategy_name = None - - # 避免循环引用,不直接调用real_trader_manager的方法 - # 而是通过trader的方法间接调用 - for strategy, position_manager in self.trader_instance.get_all_position_managers().items(): - if position_manager.get_pending_order(order_id): - strategy_name = strategy - break - + strategy_name = self.trader_instance.get_strategy_name(order_id) if strategy_name: # 使用trader的方法来处理订单状态更新,避免直接调用real_trader_manager self.trader_instance.handle_order_update(order_id, strategy_name)