跳转到内容

接收组事件订阅

订阅显示组后,TWS 会通过 displayGroupUpdated() 返回显示组关联的合约信息。

def displayGroupUpdated(self, reqId: int, contractInfo: str):
"""接收显示组关联合约变化。"""
print(f"reqId={reqId}, contractInfo={contractInfo}")
字段类型中文意思
reqId整数订阅请求编号,对应 subscribeToGroupEvents(reqId, groupId)
contractInfo字符串显示组关联合约,常见格式为 conId@exchange

示例:

265598@SMART

含义是:

部分说明
265598合约 ID,也就是 Contract.conId
SMART路由或交易所。股票常见为 SMART
def parse_contract_info(contract_info: str) -> tuple[int, str] | None:
"""把 contractInfo 解析成 conId 和 exchange。"""
if "@" not in contract_info:
return None
con_id_text, exchange = contract_info.split("@", 1)
if not con_id_text.isdigit():
return None
return int(con_id_text), exchange

如果需要把 conId 转成股票代码、货币、交易所等更完整信息,可以再调用 reqContractDetails() 查询合约详情。