Historical S&P 500标普500成分变动

该接口记录标普 500 指数成分的历史变动:公司何时被纳入或移出、变动原因、市值变化对成分的影响,用于分析指数构成与长期市场趋势的演变。

GEThttps://quote-fmp.com/stable/historical-sp500-constituent

数据更新周期

1-3 Days

接口说明

  • 纳入与移出:查询被纳入或移出标普 500 的公司历史记录,含日期与变动原因,调用后可呈现 dateAdded(加入日期)、addedSecurity(新增证券)与 removedTicker(移除的标的代码) 等核心指标,辅助买方研究员快速核验标的基本面。
  • 市值变化:追踪由市值变动驱动的指数成分调整,基于 addedSecurity(新增证券)与 removedTicker(移除的标的代码) 等核心指标,省去多源报表口径折算与人工核对环节。
  • 指数历史洞察:分析标普 500 成分随时间的演变,以及这些变化对市场表现的影响,研究端可将本接口与「纳斯达克指数成分变动」组合编排,覆盖从概览快照到历史序列的需求。
  • 上下游关联接口:Stock Market Indexes List(指数清单) · Index Quote(指数实时报价) · S&P 500 Index(标普500成分股) · Nasdaq Index(纳斯达克指数)

调用代码示例

Python 关键代码

标普500成分变动(/stable/historical-sp500-constituent,仅 apikey)返回 dateAdded(加入日期)、addedSecurity(新增证券)、removedTicker(移除的标的代码) 等 7 列(样本 dateAdded=June 29, 2026)。

Python(核心参数与字段清洗逻辑)
resp = requests.get(
    "https://quote-fmp.com/stable/historical-sp500-constituent",
    params={"apikey": FMP_KEY},
    timeout=15,
)
resp.raise_for_status()
df = pd.DataFrame(resp.json())
# 提取 标普500成分变动 核心列:dateAdded, addedSecurity, removedTicker, removedSecurity
df = df[["dateAdded", "addedSecurity", "removedTicker", "removedSecurity"]].dropna(how="all")

参数使用和避坑

3 组参数组合 · 2 条避坑

以下列出本接口在高频投研与回测场景下的常用 Query 参数组合写法:

投研场景Query 参数组合示例返回数据特征与用途
一次性拉取全量标普500成分变动初始化本地主表GET /stable/historical-sp500-constituent(免参数)该接口不吃 Query 条件:请求 /stable/historical-sp500-constituent 直接下发全表 7 列,dateAdded、addedSecurity、removedTicker 全在其中。
以 symbol 为唯一键覆盖写入,避免全表重复GET /stable/historical-sp500-constituent → upsert on symbol落库键选 symbol(如 HONA),7 列逐行覆盖;同模块没有带参接口,想补单条只能再拉一次全表。
落库后自检:symbol 唯一性与 dateAdded 空值率GET /stable/historical-sp500-constituent → count(distinct symbol) / null_ratio(dateAdded)先用 symbol 去重计数校验 7 列是否完整落库,再看 dateAdded(样本 June 29, 2026)的空值率;两者都正常才认为该批次可用。
时序与查询边界请求 /stable/historical-sp500-constituent(标普500成分变动):免业务参数与时间序列对齐

请求 /stable/historical-sp500-constituent 获取标普500成分变动需传入免业务参数;返回数组涵盖 dateAdded(June 29, 2026)与 addedSecurity(Honeywell Aerospace Inc),做时间序列差分前请先核对排序方向。

落库主键与口径/stable/historical-sp500-constituent(标普500成分变动):dateAdded 大小写统一与 (symbol, date) 主键

在 /stable/historical-sp500-constituent 的返回结构中,dateAdded(June 29, 2026)构成核心标识载荷,本地表以 (symbol, date) 保证幂等入库。

返回数据

7 个字段

本接口示例响应共包含 7 个字段(数值型 0 个,文本/日期/布尔型 7 个)。下表列出全部字段名、类型、首条记录真实样本值与中文释义,实际返回会因接口与数据状态有所不同。

字段类型示例值说明
dateAddedstring"June 29, 2026"加入日期
addedSecuritystring"Honeywell Aerospace Inc"新增证券
removedTickerstring"CAG"移除的标的代码
removedSecuritystring"Conagra Brands"移除证券
datestring"2026-06-29"日期
symbolstring"HONA"证券代码
reasonstring"Market Capitalization Changes"调整原因
查看响应数据示例(原始 JSON)
[
{
"dateAdded": "June 29, 2026",
"addedSecurity": "Honeywell Aerospace Inc",
"removedTicker": "CAG",
"removedSecurity": "Conagra Brands",
"date": "2026-06-29",
"symbol": "HONA",
"reason": "Market Capitalization Changes"
}
]

常见问题解答(FAQ)

2 个问题
/stable/historical-sp500-constituent 端点(标普500成分变动)的参数设计与同模块的 纳斯达克指数成分变动 有什么区别?

工程上常将两者配合:用 标普500成分变动(/stable/historical-sp500-constituent,免业务参数)拉取 dateAdded 与 addedSecurity 等 7 列,同时用 Historical Nasdaq(纳斯达克指数成分变动)补充 7 列关联信息。

使用 /stable/historical-sp500-constituent 采集标普500成分变动构建因子库,推荐的请求切片方式是什么?

采集 /stable/historical-sp500-constituent 的核心技巧是每日定时调用一次 /stable/historical-sp500-constituent 将全量字典同步至本地;这能确保 标普500成分变动 的 dateAdded 与 addedSecurity 连续完整且无截断遗漏。

同模块相关接口对比

Historical Constituents

本接口路径 /stable/historical-sp500-constituent,无必填参数。 同一模块「Historical Constituents」下共 3 个接口,下表列出其余 2 个, 按粒度与查询维度对比,避免选错接口。

接口路径核心差异与适用场景
纳斯达克指数成分变动Historical Nasdaq/stable/historical-nasdaq-constituent记录纳斯达克指数成分的历史变动,哪些公司在何时被纳入或移出、变动原因
道琼斯指数历史Historical Dow Jones/stable/historical-dowjones-constituent记录道琼斯工业平均指数的成分股变动,包括哪些公司被纳入或剔除、变动原因和相关日期

Indexes(指数数据)全部接口目录 →

需要稳定访问 标普500成分变动 数据?注册即可获取专属 API Key,免费体验全部接口。
免费试用 1 个月