已解决556 浏览
0

今天发现这个问题调了半天都没弄好,我从官网copy的一段程序卡在api.wait_update()。具体是在”TqSdk模块参考”里的”框架及核心业务“里的get_trading_status下的示例程序:

# 在集合竞价时下单
from tqsdk import TqApi, TqAuth
api = TqApi(auth=TqAuth("快期账户", "账户密码"))
ts = api.get_trading_status("SHFE.cu2201")
print(ts.trade_status)
while True:
  api.wait_update()
  if ts.trade_status == "AUCTIONORDERING":
    order = api.insert_order("SHFE.cu2201","BUY","OPEN", 1, 71400)
    break
# insert_order指令会在下一次wait_update()发出
api.wait_update()
api.close()

现在是夜盘黄金的交易时间,我把这段程序的代码改成黄金au2312,交易状态改成CONTINOUS,if后的下单命令改成打印一个Ok,实际运行下来,第一个打印交易状态可以执行,能接收到CONTINOUS,但是进入while True循环之后,只要有api.wait_update(),他就卡死在这句,不进入下一句的if判断,而我只要把api.wait_update()删除,他就可以顺利打印出OK。

请教各位,这是一个什么情况?

davidkq 选择最佳答案 2023年11月24日
0

你没有订阅的合约,无法推进api.wait_update,下次订阅一个行情试试

davidkq 发表新评论 2023年11月24日

订阅了也卡死。。。