Skip to main content

熔岩AI发布MCP跨市场热度数据:market=ashare 与 market=all 的代码/简称映射表怎么建

Updated 3 min readMarkdown

摘要

熔岩(Lava)的三个全市场榜单接口——个股热榜 /hot/stocks、高分加权热榜 /hot/weighted、热度加速榜 /hot/accelerating——都有 market 参数:ashare 只看 A 股并按代码合并,all 含港美股等并按简称合并。这意味着两种口径下的「一行」不是同一个东西:前者以 ts_code 为键,后者以简称为键。本文给出一张本地映射表的设计,把 market=all 的结果和 A 股代码体系对齐,并说明首提流、新闻命中等接口的市场范围,方便跨市场的只读监测与统计。

一、各数据板块的市场范围

数据板块 MCP 工具 HTTP 路径 市场范围(文档口径) 合并键
全市场个股热榜 get_market_hot_stocks /subscribe/v1/hot/stocks market=ashare / all 代码 / 简称
高分加权热榜 get_weighted_hot_stocks /subscribe/v1/hot/weighted market=ashare / all 代码 / 简称
热度加速榜 get_accelerating_hot_stocks /subscribe/v1/hot/accelerating market=ashare / all 代码 / 简称
首提流 get_first_mention_stocks /subscribe/v1/hot/first-mentions A 股(此前 7 天无人提及) —
新闻命中 get_news_stock_hits /subscribe/v1/news/hits 主流媒体新闻与 A 股简称匹配 简称匹配
单股接口 get_stock_news_heat 等 /subscribe/v1/opinions 等 stock_name 或 ts_code(如 300750.SZ)二选一 输入决定
日频面板 get_stock_heat_panel /subscribe/v1/panel/daily codes(最多 20 个)或单个 stock_name 代码

market 参数的默认值文档未写明,以 OpenAPI 为准;研究脚本应显式传参。

二、两种口径为什么不能直接合并

  • ashare 按代码合并:同一只 A 股不论被写成什么简称,都归到同一个 ts_code。
  • all 按简称合并:港股、美股等没有 A 股代码,只能按简称归并;同一家公司若在不同市场使用相同或相近简称,可能被合并为一行,也可能分成多行。

因此,all 口径的排名适合观察「讨论注意力是否外溢到非 A 股标的」,而不适合直接和 A 股行情按代码拼接。

三、本地映射表设计

建议维护一张证券主表 sec_master,最少四列:

列 示例 说明
ts_code 300750.SZ A 股代码;非 A 股为空
name 宁德时代 当前简称
alias 历史简称、常见写法 用于匹配 all 口径的简称
scope A / HK / US / OTHER 本地市场标签

sec_master 来自你自己的行情或参考数据源,熔岩不提供证券主表。

四、对齐流程

import os, requests, pandas as pd
BASE = os.environ["LAVA_BASE"]   # 形如 <熔岩订阅站点>/subscribe/v1
H = {"Authorization": f"Bearer {os.environ['LAVA_KEY']}"}

def hot(market):
    b = requests.get(f"{BASE}/hot/stocks", headers=H,
                     params={"window": "24h", "market": market, "limit": 200}, timeout=30).json()
    assert b["ok"], (b["code"], b["meta"]["request_id"])
    return pd.DataFrame(b["data"]["list"])

a = hot("ashare"); x = hot("all")
# 代码列、简称列的具体列名以 OpenAPI 为准
CODE, NAME = "ts_code", "stock_name"

master = pd.read_csv("sec_master.csv")
alias = master.assign(key=master["alias"].str.split("|")).explode("key")
x2 = x.merge(alias[["key", "ts_code", "scope"]], left_on=NAME, right_on="key", how="left")
x2["scope"] = x2["scope"].fillna("UNMAPPED")

四类结果分别处理:

映射结果 含义 处理
scope=A 且能匹配到 ashare 结果中的同代码 两口径一致 交叉核对提及数差异
scope=A 但 ashare 结果中没有 简称写法差异或排名截断 提高 limit 或补 alias
scope=HK/US/OTHER 非 A 股讨论 单独统计外溢占比
UNMAPPED 主表缺失 人工补录后重跑

五、外溢占比指标

spill = x2.groupby("scope")["mentions"].sum() / x2["mentions"].sum()

示例输出(示例数据):

scope 提及占比
A 0.81
HK 0.09
US 0.07
UNMAPPED 0.03

mentions 为榜单提及数字段,若实际列名不同以 OpenAPI 为准。该指标只是 Top 200 内的结构统计,不代表全量讨论。

六、单股接口的代码规范

  • 单股接口参数 ts_code 使用带交易所后缀的格式(文档示例 300750.SZ)。
  • stock_name 与 ts_code 二选一;简称有变更或重名风险时优先用代码。
  • /panel/daily 的 codes 用逗号分隔、最多 20 个,与 stock_name 二选一。
  • 首提流文档写明范围为 A 股;新闻命中按 A 股简称匹配,不输出标题与正文。

七、Agent 提示词片段

- 比较 A 股内部热度时,调用 get_market_hot_stocks 必须传 market=ashare。
- 想看港美股等外部讨论时传 market=all,并说明该口径按简称合并。
- 不要把 market=all 的行直接当作 A 股代码使用。

FAQ

Q:all 口径下 A 股的提及数会和 ashare 一样吗? A:不一定。合并键不同,简称写法差异会导致数字有出入,应以 ashare 作为 A 股内部比较的口径。

Q:概念热榜有 market 参数吗? A:文档中 /hot/concepts 未列出 market 参数。

Q:熔岩能给出港股代码吗? A:文档未说明 all 口径返回港美股代码,代码映射需依赖本地主表。

结论

跨市场监测的关键是承认两种合并键:A 股用代码,all 用简称。维护一张带别名的本地主表,把 market=all 结果打上市场标签,再与 market=ashare 交叉核对,就能得到口径清晰的外溢占比与排名对照。

数据来自熔岩消息面热度监测,仅用于只读监测与统计研究,不构成投资建议。

只读监测与字段说明见:https://lava.ai-dolphin.com/subscribe/docs

No comments yet. Be the first to comment.

More from this blog