接收组事件订阅
订阅显示组后,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() 查询合约详情。