请求 BroadTape 新闻
BroadTape 新闻不是绑定某一只股票,而是订阅某个新闻源的广泛新闻流。它需要构造 secType="NEWS" 的新闻合约。
NEWS 合约示例
Section titled “NEWS 合约示例”from ibapi.contract import Contract
def benzinga_broadtape_news() -> Contract: """Benzinga BroadTape 新闻合约。""" contract = Contract() contract.symbol = "BZ:BZ_ALL" contract.secType = "NEWS" contract.exchange = "BZ" return contract不同新闻源的 symbol 和 exchange 不同。TWS 返回的有效新闻源提示中可能包含 BRFG、BRFUPDN、DJNL、BZ、DJTOP 等 code,但账户实际可用列表仍以 reqNewsProviders() 为准。
app.reqMktData( 98102, benzinga_broadtape_news(), "mdoff,292", False, False, [],)BROADTAPE_NEWS_ROWS=0本次请求没有返回 BroadTape 标题,也没有再出现无效新闻源错误。实时新闻标题是否推送,取决于新闻源权限、市场状态和当时是否有新闻。
和指定合约新闻的区别
Section titled “和指定合约新闻的区别”| 项目 | 指定合约新闻 | BroadTape 新闻 |
|---|---|---|
| 合约类型 | 股票、期货、期权等普通合约 | secType="NEWS" |
| 新闻范围 | 某个标的相关新闻 | 某个新闻源的广泛新闻流 |
genericTickList | 常见 "mdoff,292:BRFG+BRFUPDN" | 常见 "mdoff,292" |
| 常见问题 | 可能受标的行情权限影响 | 新闻源、新闻合约写法和权限更敏感 |
新闻源无效错误
Section titled “新闻源无效错误”如果 Contract.exchange 写错,TWS 可能返回类似:
ERROR code=321;msg=输入的新闻来源无效遇到这种错误,先重新请求 reqNewsProviders(),再检查官方示例和 TWS 返回的有效来源列表。