WshEventData 对象
WshEventData 是请求 WSH 事件数据时传入的参数对象。Python API 里的默认值如下:
conId=2147483647filter=''fillWatchlist=FalsefillPortfolio=FalsefillCompetitors=FalsestartDate=''endDate=''totalLimit=21474836472147483647 是 TWS API 常用的“未设置整数”哨兵值,不表示真实合约或真实条数。
| 字段 | 类型 | 中文意思 | 使用建议 |
|---|---|---|---|
conId | 整数 | 合约 ID | 查询单个合约事件时填写,例如 AAPL 为 265598。 |
filter | 字符串 | 事件过滤器 | 应来自 WSH 元数据或官方规则,不要随意猜。 |
fillWatchlist | 布尔值 | 是否按自选列表填充事件 | 用于查询自选列表相关事件。 |
fillPortfolio | 布尔值 | 是否按投资组合填充事件 | 用于查询账户持仓相关事件。 |
fillCompetitors | 布尔值 | 是否包含竞争对手事件 | 适合做公司事件对比。 |
startDate | 字符串 | 开始日期 | 按 WSH 支持的日期格式填写。 |
endDate | 字符串 | 结束日期 | 与 startDate 一起限制事件时间范围。 |
totalLimit | 整数 | 最多返回条数 | 建议设置合理上限,避免返回过大结果。 |
from ibapi.common import WshEventData
request = WshEventData()request.conId = 265598 # AAPLrequest.totalLimit = 5 # 最多返回 5 条
app.reqWshEventData(98702, request)字段选择建议
Section titled “字段选择建议”如果只想查某个合约,先填 conId 和 totalLimit。如果要按事件类型筛选,再加 filter。如果要查自选列表或持仓组合事件,再考虑 fillWatchlist 和 fillPortfolio。
如果账户没有 WSH 权限,空结果不代表该公司没有事件;应优先检查是否收到了 10276 权限错误。