作者:yunjinqi 类别:
日期:2022-01-03 22:24:30
阅读:1570 次 消耗积分: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 中唯一表示合约的编码值。可能的值包括:
none = 空选择
contractID@exchange - 任何非组合合同。示例: 8314@SMART for IBM SMART; 8314@ARCA for IBM @ARCA
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的简单的程序化策略