【TWS API 翻译系列】20、TWS API和IB中的显示组
作者:yunjinqi   类别:    日期:2022-01-03 22:24:30    阅读:1143 次   消耗积分:0 分    

显示组

显示组功能允许API客户端与TWS颜色分组窗口集成。

TWS 颜色分组窗口由 TWS 中的彩色链标识,并通过 API 由整数标识。目前,该数字的范围从1到7,并映射到特定的颜色,如TWS所示。

查询显示组

IBApi.EClient.queryDisplayGroups方法用于请求 TWS 中所有可用的显示组。

 self.queryDisplayGroups(19001)

IBApi.EWrapper.displayGroupList是对IBApi.EClient.queryDisplayGroups的一次性响应。

它返回一个整数列表,这些整数表示可见的组 ID,用"|"字符分隔,并首先按最常用的组排序。此列表在TWS连接期间不会更改。换句话说,用户不能添加新组,但只能更改组号的排序。

示例:“4|1|2|5|3|6|7”

class TestWrapper(wrapper.EWrapper):# ...
     def displayGroupList(self, reqId: int, groups: str):
         super().displayGroupList(reqId, groups)
         print("DisplayGroupList. ReqId:", reqId, "Groups", groups)

订阅组事件

要与特定组集成,您需要首先通过调用IBApi.EClient.subscribeToGroupEvents 订阅组号。

self.subscribeToGroupEvents(19002, 1)

IBApi.EWrapper.displayGroupUpdated回调在收到订阅请求后触发一次,如果订阅的显示组中的所选合约发生更改,则会再次发送回调。

class TestWrapper(wrapper.EWrapper):# ...
     def displayGroupUpdated(self, reqId: int, contractInfo: str):
         super().displayGroupUpdated(reqId, contractInfo)
         print("DisplayGroupUpdated. ReqId:", reqId, "ContractInfo:", contractInfo)

更新显示组

订阅特定组后,您可以在TWS中拥有组窗口,通过调用IBApi.EClient.updateDisplayGroup来显示某个合约。

在 IB 中唯一表示合约的编码值。可能的值包括:

  1. none = 空选择

  2. contractID@exchange - 任何非组合合同。示例: 8314@SMART for IBM SMART; 8314@ARCA for IBM @ARCA

  3. combo =如果选择了任何组合

self.updateDisplayGroup(19002, "8314@SMART")

注意:除非发生错误,否则来自 API 的此请求不会从 TWS 获得响应。

在上面的示例中,我们命令与组 #1 链接的 TWS Windows 显示IBM@SMART。下面的TWS Mosaic屏幕截图显示,粉红色链式(组 #1)窗口现在都显示IBM@SMART,而绿色链式(组 #4)窗口保持不变:

在这里插入图片描述

取消订阅群组活动

调用IBApi.EClient.unsubscribeFromGroupEvents方法以取消组订阅。

self.unsubscribeFromGroupEvents(19002)

TWS API相关的教程

【TWS API使用教程1】—如何在自己创建的client和TWS之间创建一个连接,并请求当前的时间
【TWS API使用教程2】—如何使用 TWS API在ubuntu和windows上分别设置contract、获取contract详细信息、设置order、下单、获取持仓信息、获取账户信息
【TWS API使用教程3】—如何使用TWS API从盈透证券中设置contract及获取contract的信息?
【TWS API使用教程4】—如何使用TWS API在盈透证券中设置order?
【TWS API使用教程5】—如何使用TWS API在盈透证券中下单(place order)、获取订单信息、获取持仓、获取账户汇总信息?
【TWS API使用教程6】—如何使用TWS API在盈透证券中获取数据?
【TWS API 使用教程7】如何使用TWS API 从盈透证券中筛选满足一定条件的contract?
【TWS API 使用教程8】一个基于TWS API的简单的程序化策略


版权所有,转载本站文章请注明出处:云子量化, http://www.woniunote.com/article/86
上一篇:【TWS API 翻译系列】19、TWS API和IB中的市场扫描仪
下一篇:【TWS API 翻译系列】21、TWS API和IB中的新闻和公告