跳转到内容

查询显示组总览

TWS UI 显示组用于把 API 程序和 TWS 界面里的窗口联动起来。常见场景是:程序选中一个合约后,让 TWS 的图表、报价、交易窗口一起切到同一个标的。

显示组接口不会提交订单,也不会返回行情价格。它控制的是“界面正在看哪个合约”。

接口作用
queryDisplayGroups(reqId)查询 TWS 可用的显示组 ID。
subscribeToGroupEvents(reqId, groupId)订阅某个显示组的合约变化。
updateDisplayGroup(reqId, contractInfo)把已订阅的显示组切到指定合约。
unsubscribeFromGroupEvents(reqId)停止接收显示组事件。
# 1. 查询 TWS 可用显示组。
app.queryDisplayGroups(98601)
# 2. 在 displayGroupList() 回调里解析 groups 字符串。
def displayGroupList(self, reqId: int, groups: str):
group_id = parse_first_group(groups)
if group_id is not None:
# 3. 订阅其中一个显示组。
app.subscribeToGroupEvents(98602, group_id)

groups 是 TWS 返回的显示组 ID 列表,通常用竖线分隔,例如:

GROUPS_RAW=4|1|2|3|5|6|7
FIRST_GROUP=4

拿到 groupId 后,才能继续订阅或更新显示组。

  • 合约搜索工具:用户点击搜索结果,TWS 图表自动切到该合约。
  • 交易辅助工具:程序把 TWS UI 带到订单、行情或排查所需的标的。
  • 人工检查流程:开发者在程序里选择合约,同时让 TWS 界面保持一致。
  • 获取行情价格:应使用 reqMktData()reqRealTimeBars() 或历史行情接口。
  • 提交订单:应使用 placeOrder()
  • 查询合约详情:应使用 reqContractDetails()

显示组接口更像 TWS UI 的“导航遥控器”,适合提升人工检查效率,不适合作为交易数据来源。