> Source: https://ashareapi.com/docs/guides/market-breadth/  ·  Markdown version for LLMs / AI agents

教程

# 用涨跌分布判断市场温度
 市场广度（涨跌家数）是判断"今天市场是普涨还是分化"最直接的指标——它比单个指数更能反映全市场的真实情绪。本文用免费端点拿数据，讲清怎么读温度、怎么连续看几天、怎么发现拐点。

## 一、为什么看涨跌分布（30 秒）
 指数（如上证）会被少数权重股带着走，**涨跌分布**则反映全市场：

-
 **普涨**：上涨家数远多下跌 → 市场情绪偏暖（赚钱效应好）

-
 **普跌**：下跌家数远多上涨 → 偏冷（亏钱效应）

-
 **分化**：涨跌相近 → 结构性行情（选对板块比选对市场更重要）

-
 **涨停数**：极端情绪指标 —— 涨停很多 = 题材活跃/资金亢奋

## 二、拿数据（免费端点）
 `/v1/changedist` 是**免费端点（无需 Key）**。返回**两段**：涨跌总览 + 涨跌幅区间分布，且带 `structured` 供程序化用。

 Python：拿市场广度（structured）
```
import requests

r = requests.get("https://api.ashareapi.com/v1/changedist", timeout=30)
j = r.json()
s = j.get("structured") # 程序化用这个
print(s) # [{"上涨": "3006", "上涨占比": "53%", "下跌": "2303", ...}]

# data 是 Markdown（给人看）；structured 是二维数组（给代码用）
tables = j.get("tables") # [总览行, 区间分布行...]
for t in tables:
 print(t)
```

-
 **免费端点**：无需 Key，直接调

-
 **`structured` 是条件字段** —— 只有 data 是 Markdown 时才附（changedist 满足此条件）

-
 **程序化处理用 `structured` / `tables`**，别解析 Markdown

## 三、字段怎么读
 |
| | 字段 | 含义 | 怎么用

| | 上涨/下跌 | 涨/跌家数 | 快速看普涨普跌

| | 上涨占比 | 上涨家数 / 总家数 | > 60% 偏暖 /

| | 涨停/跌停 | 极端情绪 | 涨停多 = 题材活跃（注意过热）

| | 停牌/平盘 | 非涨跌 | 占比小，忽略

| | 两市成交额 | 资金活跃度 | 放量上涨 = 健康 / 缩量下跌 = 弱势

 上涨/下跌
 涨/跌家数
 快速看普涨普跌

 上涨占比
 上涨家数 / 总家数
 > 60% 偏暖 / 涨停/跌停
 极端情绪
 涨停多 = 题材活跃（注意过热）

 停牌/平盘
 非涨跌
 占比小，忽略

 两市成交额
 资金活跃度
 放量上涨 = 健康 / 缩量下跌 = 弱势

 **区间分布**（>7% / 7~5% / 5~2% / 2~0% 等）能看出**涨跌的强度**——同样是"上涨 3000 家"，"涨 5% 以上很多"和"只涨 1% 左右"的含金量完全不同。

## 四、怎么读"市场温度"

-
 **不能只看一天** —— 市场情绪有惯性，要**连续看几天**才能判断拐点

-
 **过热信号**：上涨占比高 + 涨停很多 + 成交额放大 → 可能情绪顶点（次日容易回落）

-
 **冰点信号**：上涨占比极低 + 跌停多 → 往往对应**情绪底部**（超跌反弹概率增加，但需结合其它）

 |
| | 上涨占比 | 涨停数 | 判断

| | > 60% | 多（>=40） | 偏暖 / 亢奋（注意过热）

| | 50~60% | 中等 | 中性偏暖

| | 40~50% | 少 | 中性偏冷

| | | 极少 | 偏冷 / 弱势

| | | 接近 0 | 冰点（极端，警惕）

 > 60%
 多（>=40）
 偏暖 / 亢奋（注意过热）

 50~60%
 中等
 中性偏暖

 40~50%
 少
 中性偏冷

 < 40%
 极少
 偏冷 / 弱势

 < 30%
 接近 0
 冰点（极端，警惕）

## 五、真实数据（2026-09-29 实跑）
 |
| | 指标 | 值 | 解读

| | 上涨 / 下跌 | 3006 / 2303 | 普涨（上涨家数明显更多）

| | 上涨占比 | 53% | 中性偏暖

| | 涨停 / 跌停 | 42 / 9 | 涨停 40+，题材有一定活跃度

| | 两市成交额 | 约 6180 亿 | （这一档数据来自历史某个时点，实际以当日为准）

 上涨 / 下跌
 3006 / 2303
 普涨（上涨家数明显更多）

 上涨占比
 53%
 中性偏暖

 涨停 / 跌停
 42 / 9
 涨停 40+，题材有一定活跃度

 两市成交额
 约 6180 亿
 （这一档数据来自历史某个时点，实际以当日为准）

 **读法**：53% 上涨占比 + 42 家涨停 = "中性偏暖、题材有热度" —— 不是冰点也不是过热。**这类"温吞"状态**最需要结合连续几天趋势（见下节）。

## 六、怎么连续看 + 判断拐点

 Python：连续记录几天，找情绪拐点
```
import requests, time

def breadth():
 j = requests.get("https://api.ashareapi.com/v1/changedist", timeout=30).json()
 s = j["structured"][0]
 return int(s.get("上涨", 0)), int(s.get("下跌", 0)), int(s.get("涨停", 0))

# 模拟连续记录（实战中落在任务里，每天存一次）
history = []
for day in range(5): # 这里演示，实际用当日 + 历史快照
 up, down, zt = breadth()
 history.append((up, down, zt))
 time.sleep(1)

# 判断：最近 3 天上涨占比趋势
for i, (up, down, zt) in enumerate(history):
 ratio = up / (up + down) if (up + down) else 0
 print("day%d 上涨占比 %.0f%% 涨停 %d" % (i + 1, ratio * 100, zt))
```

-
 **趋势**：若上涨占比**连续走高** → 情绪回暖；**连续走低** → 转冷

-
 **突变**：某天占比突然跳到 70% 以上（且涨停很多）→ 警惕过热；突然跌到 30% 以下 → 警惕冰点

-
 **纪律**：市场广度是**温度计**（描述状态），不是**预测器**（不保证次日反转/延续）。用它当"环境判断"，再决定策略偏好（而非直接买卖）

## 七、常见误判（重要）

-
 **① 数据口径**：`/v1/changedist` 是**当期**口径。要历史某天的广度，另找指标（本文只讲当期判断）

-
 **② 只看指数不看广度**：指数可能因权重股涨而"看着不错"，但实际**普跌**（分化）—— 广度能戳穿这个假象

-
 **③ 涨停多 ≠ 一定亢奋**：要看涨停的**持续性**和**题材集中度**（到处乱涨 vs 一个板块抱团，含义不同）

## 常见问题
 这是付费端点吗？
 不是。changedist 是 5 个免费端点之一（quote / kline / hot / market-overview / changedist），无需 Key。

 structured 怎么用？
 structured 是条件字段——只有 data 是 Markdown 时才附。changedist 满足，所以用 j.get("structured") 拿结构化数组，或 j.get("tables") 拿全部表（总览 + 区间分布），别解析 Markdown。

 能查历史某天的涨跌分布吗？
 当前 changedist 返回当期。历史某天的广度需要其他指标/端点，本文只聚焦"当天怎么读"。

 上涨占比多少算过热？
 没有绝对阈值。一般 >70% 且涨停很多 + 成交额放大，可视为偏亢奋（次日回落概率增加）； 最后更新: 2026-09-29
 数据取自 ashareapi /v1/changedist 线上真实返回（2026-09-29 实测：上涨 3006 / 下跌 2303 / 涨停 42 / 跌停 9 / 上涨占比 53%）；字段与 structured/tables 结构为线上实测。

 相关

-
[端点参考（changedist）](/docs/endpoints/changedist)

-
[K 线数据怎么算技术指标](/docs/guides/kline-technical-indicators)

-
[因子选股入门（含数据体检）](/docs/guides/factor-screening)

-
[错误码与限流](/docs/errors)

 [← 全部教程](/docs/guides)
