交易引擎
self.engine: ScriptEngine = init_cli_trading([CtpGateway])
def connect(self, connect_wait: float = 5.0) -> None:
"""连接 CTP,并等待基础数据加载"""
with open(self.ctp_setting_path, "r", encoding="utf-8") as f:
setting = json.load(f)
self.engine.connect_gateway(setting, "CTP")
print(f"[CTP] 已发起连接请求,配置文件:{self.ctp_setting_path}")
print(f"[CTP] 等待 {connect_wait:.1f} 秒让网关登录和合约/资金/持仓查询完成...")
time.sleep(connect_wait)
# 注册事件监听
self.engine.event_engine.register(EVENT_ACCOUNT, self.on_account)
self.engine.event_engine.register(EVENT_POSITION, self.on_position)
# 等待最多60秒,直到收到账户和持仓数据
print("[CTP] 等待账户和持仓数据返回...")
self.account_received.wait(timeout=60)
self.position_received.wait(timeout=60)
# 注销事件监听
self.engine.event_engine.unregister(EVENT_ACCOUNT, self.on_account)
self.engine.event_engine.unregister(EVENT_POSITION, self.on_position)
通过上述方式查询是否会出现有误数据呢?,有试过只用get_all_position但总是返回空数据,由此发帖请教如何正确查询持仓数据呢

