Historical Stock Grades历史评级记录
该接口按历史时间序列返回指定股票在过往各报告节点的多档分析师评级人数分布快照(强力买入、买入、持有、卖出、强力卖出)。它完整还原了市场一致看多或看空情绪随股价周期演变的轨迹,适用于情绪因子回测与极值反转研究。
https://quote-fmp.com/stable/grades-historical?symbol=AAPL数据更新周期
2 Hours
接口说明
- 分析师情绪因子长周期历史回测:在构建基于卖方评级变化率(Rating Revision)的量化选股因子时,该接口按历史日期节点保留了当时市场上的五档评级机构家数分布,使研究员能够精确回溯过去任意时刻的多空机构比例,杜绝使用当前静态汇总值回测的偏差。
- 识别卖方观点拥挤极值与周期拐点:通过拉取数年的五档评级人数历史序列,可以直观观察到在牛市顶部往往出现“全员买入、零卖出”的极度一致拥挤状态,而在业绩暴雷底部则出现“持有与卖出扎堆”的悲观极值,为逆向投资提供量化的情绪温度计。
- 度量中期机构态度渐变斜率:单次评级跳变容易受个别机构主观噪音干扰,而该接口呈现的是全市场覆盖机构在五个评级档位上的整体人数迁移。通过计算“(强力买入+买入)占总覆盖人数比例”的历史斜率,可稳健刻画机构共识的中期强化或瓦解趋势。
- 配套投研接口:Ratings Snapshot(评级快照) · Historical Ratings(历史财务评分) · Stock Quote(股票报价) · Income Statement(利润表)
请求参数
2 个参数| 参数 | 类型 | 要求 | 示例 | 说明 |
|---|---|---|---|---|
symbol | string | 必填 | AAPL | 证券代码,例如 AAPL 或 MSFT(美股直传代码如 AAPL;港股/英股/A股须带交易所后缀,如 0700.HK、600519.SS) |
limit | number | 可选 | 100 | 返回结果条数上限,用于控制单次响应大小。 |
调用代码示例
Python 关键代码上方代码调用 /stable/grades-historical(必填 symbol),将历史评级记录的 analystRatingsStrongBuy(强力买入评级数)、analystRatingsBuy(买入评级数)、analystRatingsHold(持有评级数) 载入 DataFrame。
resp = requests.get(
"https://quote-fmp.com/stable/grades-historical",
params={"symbol": "AAPL", "limit": 100, "apikey": FMP_KEY},
timeout=15,
)
resp.raise_for_status()
df = pd.DataFrame(resp.json())
# 按 date 升序重排并数值化 analystRatingsStrongBuy(强力买入评级数)
df["analystRatingsStrongBuy"] = pd.to_numeric(df["analystRatingsStrongBuy"], errors="coerce")
df = df.sort_values("date").reset_index(drop=True)参数使用和避坑
3 组参数组合 · 2 条避坑以下列出本接口在高频投研与回测场景下的常用 Query 参数组合写法:
| 投研场景 | Query 参数组合示例 | 返回数据特征与用途 |
|---|---|---|
| 查询 AAPL 的历史评级记录明细(symbol=AAPL) | symbol=AAPL | 向 /stable/grades-historical 传 symbol=AAPL,返回包含 analystRatingsStrongBuy、analystRatingsBuy、analystRatingsHold(如 analystRatingsStrongBuy=6)在内的 7 项字段。 |
| 带容量上限参数(limit=100)采集 AAPL 历史评级记录 | symbol=AAPL&limit=100 | 在 /stable/grades-historical 请求中显式声明容量上限,批量归档 AAPL 的 analystRatingsStrongBuy、analystRatingsBuy、analystRatingsHold(样本 6)。 |
| 港股腾讯(0700.HK)跨市场历史评级记录拉取 | symbol=0700.HK | 传入 0700.HK 调用 /stable/grades-historical,获取港股标的的 analystRatingsStrongBuy、analystRatingsBuy、analystRatingsHold(共 7 列)。 |
执行 /stable/grades-historical 拉取历史评级记录(必填 symbol),响应涵盖 analystRatingsStrongBuy(6)等 7 列;对返回序列做滚动窗口计算前请先按日期升序排列。
/stable/grades-historical 产出的 7 项字段(含 analystRatingsStrongBuy=6、analystRatingsBuy=23)在写入宽表前,应按 (symbol, date) 执行去重校验。
返回数据
7 个字段本接口示例响应共包含 7 个字段(数值型 5 个,文本/日期/布尔型 2 个)。下表列出全部字段名、类型、首条记录真实样本值与中文释义,实际返回会因接口与数据状态有所不同。
| 字段 | 类型 | 示例值 | 说明 |
|---|---|---|---|
symbol | string | "AAPL" | 证券代码 |
date | string | "2026-07-01" | 日期 |
analystRatingsStrongBuy | number | 6 | 强力买入评级数 |
analystRatingsBuy | number | 23 | 买入评级数 |
analystRatingsHold | number | 17 | 持有评级数 |
analystRatingsSell | number | 2 | 卖出评级数 |
analystRatingsStrongSell | number | 2 | 强力卖出评级数 |
查看响应数据示例(原始 JSON)
[
{
"symbol": "AAPL",
"date": "2026-07-01",
"analystRatingsStrongBuy": 6,
"analystRatingsBuy": 23,
"analystRatingsHold": 17,
"analystRatingsSell": 2,
"analystRatingsStrongSell": 2
}
]常见问题解答(FAQ)
2 个问题历史评级记录与 股票评级变动 的端点路径(/stable/grades-historical vs /stable/grades)和参数约束分别是怎样的?
调用 /stable/grades-historical 获取历史评级记录时(必填 symbol),您将拿到 analystRatingsStrongBuy=6 等 7 列数据;而调用 Stock Grades(股票评级变动)则会拿到 6 列数据。
调用 /stable/grades-historical 获取历史评级记录,怎样根据参数特性控制单次返回的记录范围?
针对 历史评级记录(/stable/grades-historical),请向 /stable/grades-historical 传入合适的 limit 容量上限以覆盖目标回测窗口;提取 analystRatingsStrongBuy(6)与 analystRatingsBuy 后即可完成当期截面对齐。
同模块相关接口对比
Upgrades Downgrades本接口路径 /stable/grades-historical,必填参数 symbol。 同一模块「Upgrades Downgrades」下共 3 个接口,下表列出其余 2 个, 按粒度与查询维度对比,避免选错接口。