接收实时新闻标题
实时新闻标题通过 tickNews() 回调返回。它只返回标题和文章 ID,不返回正文。
def tickNews( self, tickerId: int, timeStamp: int, providerCode: str, articleId: str, headline: str, extraData: str,) -> None: ...| 字段 | 中文说明 |
|---|---|
tickerId | 请求编号,对应 reqMktData() 的第一个参数。 |
timeStamp | 新闻时间戳。 |
providerCode | 新闻源代码,例如 BRFG、BRFUPDN。 |
articleId | 文章 ID,后续请求正文时要用。 |
headline | 新闻标题。 |
extraData | 额外数据,是否有内容取决于新闻源。 |
timeStamp 通常是 Unix 时间戳,展示给用户前应转换成目标时区的可读时间。
def tickNews(self, tickerId, timeStamp, providerCode, articleId, headline, extraData) -> None: print({ "请求编号": tickerId, "新闻源": providerCode, "文章ID": articleId, "标题": headline, })如果用户点击标题查看详情,再调用:
app.reqNewsArticle(98104, providerCode, articleId, [])无数据时怎么判断
Section titled “无数据时怎么判断”实时新闻标题订阅可能长时间没有推送。判断问题时按这个顺序:
| 检查项 | 说明 |
|---|---|
error() 是否返回权限错误 | 例如 10168,说明订阅不足。 |
reqNewsProviders() 是否有新闻源 | 没有 provider 时先处理权限。 |
是否使用了 "mdoff,292" | 没有 292 不会收到新闻标题 tick。 |
| 是否等待足够时间 | 实时新闻不是立刻必有数据。 |
示例中历史新闻和正文可用,但实时标题没有推送:
CONTRACT_NEWS_ROWS=0BROADTAPE_NEWS_ROWS=0ERROR=reqId=98101;code=10168;msg=请求的市场数据没有订阅。延迟市场数据未启用。这类结果可以提示为“订阅已尝试,但没有实时标题推送或权限不足”。