diff --git a/src/core/app_state.py b/src/core/app_state.py index b390f56..f755a9f 100644 --- a/src/core/app_state.py +++ b/src/core/app_state.py @@ -94,19 +94,10 @@ def login() -> bool: global _trader_instance try: - if _trader_instance is not None and is_real_mode(): - # _trader_instance is BaseTrader or its child, which should have logout - _trader_instance.logout() - _trader_instance = None - + logout() _trader_instance = SimulationTrader() if Config.SIMULATION_MODE else XtTrader(connect_failed_callback=on_connect_failed) logger.info("开始登录") - - if Config.SIMULATION_MODE: - return True - - # _trader_instance is XtTrader here, which has login login_success = _trader_instance.login() if login_success: @@ -117,7 +108,7 @@ def login() -> bool: return True else: logger.error(f"登录成功但查询余额失败: {result}") - if _trader_instance: + if _trader_instance and is_real_mode(): _trader_instance.connection_failed = True # BaseTrader property _trader_instance.last_reconnect_time = time.time() # BaseTrader property _trader_instance.notify_connection_failure("登录成功但查询余额失败") # BaseTrader method @@ -127,7 +118,7 @@ def login() -> bool: return False except Exception as e: logger.error(f"登录初始化异常: {str(e)}") - if is_real_mode() and _trader_instance is not None: + if _trader_instance and is_real_mode(): _trader_instance.connection_failed = True _trader_instance.last_reconnect_time = time.time() _trader_instance.notify_connection_failure(f"登录初始化异常: {str(e)}") @@ -139,7 +130,7 @@ def logout() -> None: """登出并销毁交易实例。""" global _trader_instance - if _trader_instance is not None: + if _trader_instance: _trader_instance.logout() logger.info("登出成功")