新闻提供商总览
新闻提供商是 TWS API 新闻接口的入口。无论你要订阅实时新闻标题、查询历史新闻,还是读取新闻正文,都需要知道账户可用的 providerCode。
reqNewsProviders() 会返回可用且已订阅的新闻提供商列表。每个提供商包含两个核心字段:code 和 name。
为什么先请求提供商
Section titled “为什么先请求提供商”不同账户、地区和订阅权限可用的新闻源不一样。不要直接假设 BRFG、BZ 或 DJNL 一定可用。
更稳的流程是:
| 步骤 | 接口 / 回调 | 说明 |
|---|---|---|
| 1 | reqNewsProviders() | 请求账户可用的新闻提供商。 |
| 2 | newsProviders() | 接收 NewsProvider 列表。 |
| 3 | 选择 providerCode | 用返回的 code 组成后续请求。 |
| 4 | reqHistoricalNews() / reqNewsArticle() | 查询历史标题或新闻正文。 |
CONNECTED=TruePROVIDERS_RECEIVED=TruePROVIDER_COUNT=3PROVIDER=code=BRFG;name=Briefing.com General Market ColumnsPROVIDER=code=BRFUPDN;name=Briefing.com Analyst ActionsPROVIDER=code=DJNL;name=Dow Jones Newsletters这说明该账户至少可以使用这三个新闻源。历史新闻示例会用 BRFG+BRFUPDN 查询 IBM 新闻标题。
providerCode 的用途
Section titled “providerCode 的用途”| 使用场景 | providerCode 写在哪里 |
|---|---|
| 历史新闻标题 | reqHistoricalNews() 的 providerCodes 参数,多个来源用 + 连接。 |
| 新闻正文 | reqNewsArticle() 的 providerCode 参数,必须和标题返回来源一致。 |
| BroadTape 新闻 | Contract.exchange 或新闻合约配置中。 |
新闻提供商列表不是新闻内容。它只说明账户能访问哪些来源。
如果 reqNewsProviders() 返回空列表,后面的新闻标题和正文通常也无法正常请求。先处理订阅权限,再调试业务代码。
新闻接口的权限不是一个开关。一个账户可能出现下面这种情况:
| 接口 | 可能状态 |
|---|---|
reqNewsProviders() | 能返回可用新闻源。 |
reqHistoricalNews() | 能返回历史新闻标题。 |
reqNewsArticle() | 能读取某些正文。 |
实时 tickNews() | 仍可能因为市场数据或实时新闻权限不足而没有推送。 |
所以调试新闻功能时,建议先从 reqNewsProviders() 和 reqHistoricalNews() 开始,再做实时标题订阅。