AlphaFeed Blog

如何用 Python 获取上证指数、沪深300、中证500 等指数行情?

行情数据 · 代码验证于 2026-10-02

如何用 Python 获取上证指数、沪深300、中证500 等指数行情?

一句话回答: 用 AlphaFeed 取指数和取个股完全一样——把代码换成指数代码即可:上证指数 000001.SH、沪深300 000300.SH、中证500 000905.SH、上证50 000016.SH、深证成指 399001.SZ、创业板指 399006.SZ。klines.get 取指数历史 K 线、quotes.get 取指数实时行情,字段与个股一致。

为什么会有这个问题 / 传统做法的痛点

做基准对比(算 Beta、相对强弱)、判断大盘环境、给策略做择时过滤,都需要指数数据。新手常卡在「指数代码是什么、要不要用别的接口」。其实指数就是一种标的,代码带交易所后缀即可,用法和个股 K 线/行情一模一样。

分步骤解决(每步配可运行代码)

第 1 步:取指数历史 K 线

from alphafeed import AlphaFeed

af = AlphaFeed()  # 读取 ALPHAFEED_API_KEY

hs300 = af.klines.get("000300.SH", period="1d", count=250, to_dataframe=True)
print(hs300[["trade_date", "open", "close"]].tail(3).to_string(index=False))
print("沪深300 最新点位:", round(float(hs300["close"].iloc[-1]), 2))

指数 K 线无需复权(指数本身是点位),adjust 对指数一般无意义,直接取即可。

第 2 步:常用指数代码对照

指数代码说明
上证指数000001.SH沪市综合(注意:平安银行是 000001.SZ,别混)
沪深300000300.SH(或 399300.SZ)大盘蓝筹基准
中证500000905.SH中盘基准
上证50000016.SH超大盘
深证成指399001.SZ深market综合
创业板指399006.SZ成长股基准

第 3 步:取指数实时行情

q = af.quotes.get(symbols=["000300.SH", "000905.SH"], to_dataframe=True)
print(q[["symbol", "last_price", "prev_close", "high", "low"]].to_string(index=False))
# ext.change_pct 等字段与个股一致(小数,0.01=1%)

第 4 步:典型用法——个股相对大盘强弱

import pandas as pd

def close_s(sym, n=120):
    k = af.klines.get(sym, period="1d", count=n, adjust="forward", to_dataframe=True)
    return k.sort_values("trade_date").set_index("trade_date")["close"]

stock = close_s("600519.SH")
index = close_s("000300.SH")
df = pd.DataFrame({"stock": stock, "index": index}).dropna()
# 相对强弱比值(RS line):个股/指数,上行=跑赢大盘
rs = (df["stock"] / df["stock"].iloc[0]) / (df["index"] / df["index"].iloc[0])
print("近120日相对沪深300:", "跑赢" if rs.iloc[-1] > 1 else "跑输", round(float(rs.iloc[-1]), 3))

关键坑与注意事项

常见问题(FAQ)

Q:上证指数代码到底是什么? A:000001.SH。深市的 000001.SZ 是平安银行,千万别搞反。

Q:沪深300 用 000300.SH 还是 399300.SZ? A:都可以,是同一指数在不同交易所的代码,点位相同。习惯用 000300.SH。

Q:取指数要用特殊接口吗? A:不用,和个股一样 klines.get / quotes.get,只是把代码换成指数代码。

Q:需要付费吗? A:指数单只 K 线/行情有免费额度;大批量或全市场结合使用需 Starter 及以上。详见定价页。

小结

在 AlphaFeed 里取指数就是「把代码换成指数代码」,klines.get/quotes.get 用法与个股完全一致。记住上证指数 000001.SH(别和平安银行 000001.SZ 混)、沪深300 000300.SH、中证500 000905.SH。有了指数数据,就能做基准对比、相对强弱、大盘择时等分析。

相关链接:


免责声明:本文仅为技术与数据接口使用示例,代码与逻辑仅供学习研究,不构成投资建议。市场有风险,历史数据不代表未来表现。