跳转到内容

更新显示组

updateDisplayGroup(reqId, contractInfo) 可以把已订阅的 TWS UI 显示组切换到指定合约。它常用于“程序选中合约后,让 TWS 图表或报价窗口也切过去”。

# 265598 是 AAPL 的 conId,SMART 是路由/交易所。
app.updateDisplayGroup(98602, "265598@SMART")

调用前必须先用同一个 reqId 订阅显示组事件,否则 TWS 不知道要更新哪个显示组。

参数类型说明
reqId整数订阅请求编号,来自 subscribeToGroupEvents(reqId, groupId)
contractInfo字符串合约信息,常见格式为 conId@exchange
格式示例说明
conId@exchange265598@SMART最常见。股票、ETF 等可使用合约 ID 加路由。
conId@exchange[其它合约 conId]@SMART切换到其它合约时,先用合约详情接口查到对应 conId

这里不能直接写 AAPL。TWS 需要的是能唯一定位合约的 conId,通常先通过 reqContractDetails() 查询得到。

GROUPS_RAW=4|1|2|3|5|6|7
FIRST_GROUP=4
SUBSCRIBE_CALLBACK_SEEN=True
UPDATE_REQUESTED=True
DISPLAY_GROUP_UPDATE=reqId=98602;contractInfo=265598@SMART
NON_INFO_ERROR_COUNT=0

这表示程序先查询显示组,再订阅第一个显示组,最后把它切到 AAPL。

  • 它改变的是 TWS UI 显示,不会提交订单。
  • 它不是行情订阅;需要价格数据仍然要调用行情接口。
  • contractInfo 需要真实 conId,不要把股票代码当成合约 ID。
  • 如果用户正在手工查看其他标的,程序更新显示组会改变他看到的 TWS 界面。