跳转到内容

新闻提供商总览

新闻提供商是 TWS API 新闻接口的入口。无论你要订阅实时新闻标题、查询历史新闻,还是读取新闻正文,都需要知道账户可用的 providerCode

reqNewsProviders() 会返回可用且已订阅的新闻提供商列表。每个提供商包含两个核心字段:codename

官方参考:IBKR Campus - TWS API 文档

不同账户、地区和订阅权限可用的新闻源不一样。不要直接假设 BRFGBZDJNL 一定可用。

更稳的流程是:

步骤接口 / 回调说明
1reqNewsProviders()请求账户可用的新闻提供商。
2newsProviders()接收 NewsProvider 列表。
3选择 providerCode用返回的 code 组成后续请求。
4reqHistoricalNews() / reqNewsArticle()查询历史标题或新闻正文。
CONNECTED=True
PROVIDERS_RECEIVED=True
PROVIDER_COUNT=3
PROVIDER=code=BRFG;name=Briefing.com General Market Columns
PROVIDER=code=BRFUPDN;name=Briefing.com Analyst Actions
PROVIDER=code=DJNL;name=Dow Jones Newsletters

这说明该账户至少可以使用这三个新闻源。历史新闻示例会用 BRFG+BRFUPDN 查询 IBM 新闻标题。

使用场景providerCode 写在哪里
历史新闻标题reqHistoricalNews()providerCodes 参数,多个来源用 + 连接。
新闻正文reqNewsArticle()providerCode 参数,必须和标题返回来源一致。
BroadTape 新闻Contract.exchange 或新闻合约配置中。

新闻提供商列表不是新闻内容。它只说明账户能访问哪些来源。

如果 reqNewsProviders() 返回空列表,后面的新闻标题和正文通常也无法正常请求。先处理订阅权限,再调试业务代码。

新闻接口的权限不是一个开关。一个账户可能出现下面这种情况:

接口可能状态
reqNewsProviders()能返回可用新闻源。
reqHistoricalNews()能返回历史新闻标题。
reqNewsArticle()能读取某些正文。
实时 tickNews()仍可能因为市场数据或实时新闻权限不足而没有推送。

所以调试新闻功能时,建议先从 reqNewsProviders()reqHistoricalNews() 开始,再做实时标题订阅。