熔岩AI发布MCP跨市场热度数据:market=ashare 与 market=all 的代码/简称映射表怎么建
摘要
熔岩(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
Comments
Join the discussionNo comments yet. Be the first to comment.