import time
from vnpy.trader.utility import load_json
from vnpy_scripttrader import init_cli_trading
from vnpy_ctp import CtpGateway
setting = load_json("connect_ctp.json")
engine = init_cli_trading([CtpGateway])
engine.connect_gateway(setting, "CTP")
time.sleep(60) #不加这一步看不到账户信息
print(engine.get_all_accounts(use_df=True))
connect gateway如果不等最后的”合约信息查询成功“,无法查看账户信息:
2026-01-29 15:05:47.198 | INFO | CTP | 交易服务器连接成功
2026-01-29 15:05:47.214 | INFO | CTP | 行情服务器连接成功
2026-01-29 15:05:47.754 | INFO | CTP | 交易服务器授权验证成功
2026-01-29 15:05:47.755 | INFO | CTP | 行情服务器登录成功
2026-01-29 15:05:47.781 | INFO | CTP | 交易服务器登录成功
2026-01-29 15:05:48.362 | INFO | CTP | 结算信息确认成功
[CTP] 未获取到账户信息
2026-01-29 15:06:11.237 | INFO | CTP | 合约信息查询成功
一定要等最后的合约信息查询成功,调用get_all_accounts才有输出:
2026-01-29 15:13:41.429 | INFO | CTP | 交易服务器连接成功
2026-01-29 15:13:41.438 | INFO | CTP | 行情服务器连接成功
2026-01-29 15:13:42.067 | INFO | CTP | 行情服务器登录成功
2026-01-29 15:13:42.067 | INFO | CTP | 交易服务器授权验证成功
2026-01-29 15:13:42.153 | INFO | CTP | 交易服务器登录成功
2026-01-29 15:13:42.690 | INFO | CTP | 结算信息确认成功
2026-01-29 15:14:06.145 | INFO | CTP | 合约信息查询成功
[AccountData(gateway_name='CTP', extra=None, accountid='xxxxxxxx', balance=87459916.78, frozen=0.0)]
[CTP] 账户资金信息:
账户: xxxxxxxx
可用资金: 53189553.38000001
冻结资金: 0.0
总资金: 87459916.78
请问为什么一定要等这个才会有输出。有没有什么办法可以加速”合约信息查询成功“这一步骤,或者有没有什么其他优化账户查询的办法

