东方财富板块行情数据源
数据

东方财富板块行情数据源

Use when the user asks about A 股 market sectors, industry/concept boards, gainers/losers ranking, market heatmap or overall market breadth (keywords:板块、行业板块、概念板块、地域板块、涨幅榜、跌幅榜、热力图、风云图、哪些板块涨了、市场概览、板块排行). Provides aggregated board-level and market-level quotes via 东方财富 push2 接口. Do NOT use for single-stock prices, K-line, minute or tick data — those go to the stock-market datasource. Do NOT use for US stocks, crypto, or fund NAV.

interstellarmt
interstellarmt
浏览3.9万
使用26

Skill 文件

SKILL.md
name
eastmoney-datasource
title
东方财富板块行情数据源
description
Use when the user asks about A 股 market sectors, industry/concept boards, gainers/losers ranking, market heatmap or overall market breadth (keywords:板块、行业板块、概念板块、地域板块、涨幅榜、跌幅榜、热力图、风云图、哪些板块涨了、市场概览、板块排行). Provides aggregated board-level and market-level quotes via 东方财富 push2 接口. Do NOT use for single-stock prices, K-line, minute or tick data — those go to the stock-market datasource. Do NOT use for US stocks, crypto, or fund NAV.
tools
curl

东方财富板块行情数据源

通过 curl tool 调用东方财富行情接口,获取 A 股板块级市场级的聚合行情:板块涨跌排行、个股涨跌幅榜、板块热力图原料。

职责边界:本数据源负责「整体/板块/榜单」这类聚合视图。单只股票的具体数值、K 线、分时、逐笔,请用 stock-market-datasource 数据源,不要用本源查个股明细。

鉴权

东方财富行情接口无需鉴权,直接发请求即可,不要传任何 token 或 API key。

通用约定

  • Base URLhttps://push2.eastmoney.com/api/qt/clist/get
    • 全市场个股榜可能 302 跳转到 https://push2delay.eastmoney.com/...(行情延迟约 15 分钟)。如主域请求失败,可直接改用 push2delay 域名。
  • 请求方法GET
  • 响应格式:JSON,结构为 { "rc": 0, "data": { "total": 总数, "diff": [ {字段...}, ... ] } }
  • 建议带 Referer 头提升稳定性:Referer: https://quote.eastmoney.com/
  • 数值约定:所有请求都带 fltt=2,返回的数值已经是最终小数,无需再做单位换算:
    • f3(涨跌幅):10.0 表示 +10.00%-3.21 表示 -3.21%
    • f2(最新价 / 板块指数):直接是元 / 点位
    • f20(总市值)、f21(流通市值):单位是,展示为「亿」需 ÷ 1e8
  • 分页pn = 页码(从 1 开始),pz = 每页条数(最大约 100)。响应里的 data.total 是总条数。
  • 排序fid = 排序字段(涨跌幅用 f3),po = 排序方向(1 降序=涨幅榜,0 升序=跌幅榜)
  • ⚠️ 响应体积上限:curl 工具单次响应最多约 50KB,超出会被截断导致 JSON 不完整、无法解析。因此:(1) fields 只取需要的字段;(2) pz 不要超过 30~40;需要更多数据时分页串行取,每页同样 ≤ 40 条。

通用查询参数

参数取值说明
pn1, 2, ...页码
pz≤ 100每页条数
po1 / 01=降序(涨幅榜),0=升序(跌幅榜)
fidf3排序字段,涨跌幅
fltt2固定,返回最终小数
invt2固定
fs见下表市场/板块选择器
fields逗号分隔需要返回的字段

fs 市场选择器

目标fs 取值
行业板块m:90+t:2+f:!50
概念板块m:90+t:3+f:!50
地域板块m:90+t:1+f:!50
沪深 A 股(全市场个股)m:0+t:6,m:0+t:80,m:1+t:2,m:1+t:23
指定板块的成分股b:板块代码+f:!50(如 b:BK1623+f:!50

注意:fs 里的 + 是接口要求的分隔符,请原样保留,不要替换成空格或编码。

常用字段(fields)

字段含义
f12代码(板块为 BKxxxx,个股为 6 位代码)
f14名称
f3涨跌幅 %(已是小数)
f2最新价 / 板块指数
f13市场:1=上海,0=深圳(用于拼前缀 sh/sz)
f20总市值(元)
f21流通市值(元)
f104板块内上涨家数
f105板块内下跌家数
f128领涨股名称
f140领涨股代码
f136领涨股涨跌幅 %

⚠️ 速率限制策略(必须遵守)

东方财富接口有反爬限制,请控制请求频率:

  1. 串行请求:同一时间只发 1 个 curl 请求,等返回后再发下一个。严禁并行发送多个请求
  2. 请求间隔:每两个请求之间至少间隔 1 秒
  3. 控制单页大小:受 10KB 响应上限约束,pz 取 30~40、fields 只取必要字段;想看「涨了哪些 / 跌了哪些」用涨幅榜(po=1)+ 跌幅榜(po=0)两次小请求即可,不要一次拉全部板块
  4. 个股全市场分页要克制:沪深 A 股有 5000+ 只,需要榜单时取前 3040 名即可;做热力图最多串行翻 35 页(每页 ≤40),不要试图拉完整 5000 只
  5. 429 / 空响应重试:收到 429 或空结果后等待 30 秒再重试,严禁立即重试
  6. 数据复用:同一轮对话里已取到的板块列表、榜单结果应缓存复用,不要重复请求

常用接口

本数据源只有一个 endpoint(clist/get),通过不同 fs / 排序参数实现不同查询。

1. 行业板块涨跌排行(含热力图原料)

GET https://push2.eastmoney.com/api/qt/clist/get?pn=1&pz=30&po=1&np=1&fltt=2&invt=2&fid=f3&fs=m:90+t:2+f:!50&fields=f12,f14,f3,f104,f105,f128,f136

参数

参数名位置必填说明
fsquerym:90+t:2+f:!50=行业板块;概念用 t:3,地域用 t:1
poquery1=涨幅榜,0=跌幅榜
pzquery受 10KB 上限约束,取 30~40;要涨跌两头就发两次(po=1 / po=0)

关键返回字段

JSON Path类型说明
data.totalnumber板块总数
data.diff[].f12string板块代码(BKxxxx)
data.diff[].f14string板块名称
data.diff[].f3number涨跌幅 %(已是小数)
data.diff[].f104number上涨家数
data.diff[].f105number下跌家数
data.diff[].f128string领涨股名称
data.diff[].f136number领涨股涨跌幅 %

2. 沪深个股涨幅 / 跌幅榜(含市值)

GET https://push2.eastmoney.com/api/qt/clist/get?pn=1&pz=20&po=1&np=1&fltt=2&invt=2&fid=f3&fs=m:0+t:6,m:0+t:80,m:1+t:2,m:1+t:23&fields=f12,f13,f14,f2,f3,f20,f21

参数

参数名位置必填说明
fsquery沪深 A 股全市场选择器
poquery1=涨幅榜,0=跌幅榜
pzquery榜单一般取 10~50;做全市场热力图时 ≤100 串行翻页

关键返回字段

JSON Path类型说明
data.totalnumber个股总数(约 5500)
data.diff[].f12string6 位股票代码
data.diff[].f13number市场:1=上海,0=深圳
data.diff[].f14string股票名称
data.diff[].f2number最新价(元)
data.diff[].f3number涨跌幅 %(已是小数)
data.diff[].f20number总市值(元,÷1e8 为亿)
data.diff[].f21number流通市值(元)

拼完整代码:f13=1sh{f12}f13=0sz{f12}。需要查某只票的明细时,把代码交给 stock-market-datasource 数据源。

3. 指定板块的成分股

GET https://push2.eastmoney.com/api/qt/clist/get?pn=1&pz=50&po=1&np=1&fltt=2&invt=2&fid=f3&fs=b:BK1623+f:!50&fields=f12,f13,f14,f2,f3

参数

参数名位置必填说明
fsqueryb:板块代码+f:!50,板块代码来自接口 1 的 f12

关键返回字段:同接口 2 的个股字段(f12 f13 f14 f2 f3)。

调用示例

场景:"今天有哪些板块涨了,哪些跌了?"

  1. 查涨幅榜前几名:
curl(url = "https://push2.eastmoney.com/api/qt/clist/get?pn=1&pz=15&po=1&np=1&fltt=2&invt=2&fid=f3&fs=m:90+t:2+f:!50&fields=f12,f14,f3,f128,f136", X = "GET", H = ["Referer: https://quote.eastmoney.com/"])
  1. 再发一次跌幅榜(把 po=1 改为 po=0),合并得到「领涨板块」和「领跌板块」。每个板块展示:名称 f14、涨跌幅 f3%、领涨股 f128

场景:"今日涨幅榜前 10"

curl(url = "https://push2.eastmoney.com/api/qt/clist/get?pn=1&pz=10&po=1&np=1&fltt=2&invt=2&fid=f3&fs=m:0+t:6,m:0+t:80,m:1+t:2,m:1+t:23&fields=f12,f13,f14,f2,f3", X = "GET", H = ["Referer: https://quote.eastmoney.com/"])

跌幅榜把 po=1 改为 po=0 即可。

场景:"今日股市热力图 / 风云图"

推荐板块级热力图(轻量):用接口 1 取行业板块的 f14 + f3,用 treemap 渲染——每个方块=一个板块,颜色按 f3 涨跌幅(红涨绿跌)。受 10KB 上限约束,单次取 30~40 个板块;要覆盖更多就按 po=1 取涨幅前 N、再按 po=0 取跌幅前 N 合并,足够呈现市场冷热。

如需个股级热力图,用接口 2 的 f20(市值)做方块大小、f3 做颜色,按 pz=40 串行翻 3~5 页取主要个股(遵守速率与体积限制,不要拉满全市场)。

错误处理

现象含义应对方式
HTTP 302 跳转主域转延迟域改用 https://push2delay.eastmoney.com/... 重发
HTTP 429触发限频等待 30 秒后重试,不要立即重试
data.diffnull 或空fs/参数无数据检查 fs 选择器是否正确(+ 是否被错误编码)
返回非 JSON / HTML被反爬拦截加上 Referer 头后重试;仍失败则告知用户暂时取不到

注意事项

  • 接口为非官方公开行情接口,字段和可用性可能随东方财富调整而变化;遇到字段缺失时如实告知用户。
  • 非交易时间返回的是最近收盘 / 延迟数据。
  • 涨跌停板:主板 ±10%、创业板/科创板 ±20%、ST ±5%,f3 已反映真实涨跌幅。
  • 再次强调职责边界:板块/榜单/热力图走本源;个股的实时价、盘口、K 线、分时、逐笔走 stock-market-datasource 数据源。
Ln 1, Col 1MarkdownSpaces: 2
No errors