fix on_stock_trade

This commit is contained in:
zhiyong 2025-05-15 10:59:13 +08:00
parent 80be197d8f
commit c8f31c445b
2 changed files with 2 additions and 13 deletions

View File

@ -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)}")

View File

@ -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)