请求元数据
请求 WSH 元数据使用 reqWshMetaData(reqId)。
from ibapi.client import EClientfrom ibapi.wrapper import EWrapper
class App(EWrapper, EClient): def __init__(self): EClient.__init__(self, self)
def nextValidId(self, orderId: int): # 连接完成后请求 WSH 元数据。 self.reqWshMetaData(98701)
def wshMetaData(self, reqId: int, dataJson: str): # 有 WSH 权限时,元数据 JSON 会从这里返回。 print(reqId, dataJson[:500])
def error(self, reqId: int, code: int, msg: str, *args): # 没有权限、请求格式错误等情况会从这里返回。 print(reqId, code, msg)| 参数 | 类型 | 说明 |
|---|---|---|
reqId | 整数 | 请求编号,用来对应 wshMetaData() 或 error() 返回。 |
reqWshMetaData() 不需要合约、日期或过滤器。它读取的是 WSH 数据服务支持的元信息。
示例输出:无 WSH 权限
Section titled “示例输出:无 WSH 权限”CONNECTED=TrueMETA_DONE=TrueMETA_ROWS=0ERROR=reqId=98701;code=10276;msg=不允许新闻推送。这不是语法问题。遇到 10276 时,程序应提示用户检查 WSH / 新闻推送权限,或在没有权限的环境中隐藏 WSH 事件功能。
WSH 元数据不需要高频请求。交易工具通常在启动后请求一次,缓存解析结果,再用这些过滤项构造事件数据请求。