为什么指数涨你却亏钱?80%的人忽略的市场宽度指标揭晓,我用Python实现了(附源码)

前几天看到群里有人分享了一个不错的指标,于是试着自己用Python实现了。今天分享给大家。

在股市中,我们常常会盯着指数涨跌,比如上证指数、创业板指数。但实际操作时,很多人会发现一个尴尬的情况:指数涨得挺好,但自己手里的股票却跌得稀里哗啦 😂。这就是因为指数往往由权重股主导,而 市场真实的赚钱效应 其实要靠 市场宽度(Market Breadth) 来观察。


什么是市场宽度?

市场宽度就是 上涨股票数量在市场总数量中的比例

  • 如果 80% 以上的股票都在上涨 → 行情火热,普涨阶段;
  • 如果不到 20% 的股票上涨 → 行情低迷,普跌阶段。

市场宽度趋势图 就是把这种赚钱效应可视化。 它能直观展示市场整体的强弱,还能结合阈值和极值点,帮助我们捕捉行情的 顶部反转底部反转


为什么普通宽度曲线"忽上忽下"?

如果只看 每天的涨跌家数,宽度曲线会非常「跳跃」:今天多股票涨 → 宽度高;明天多数下跌 → 宽度低。 这种噪音很大,不适合直接用来指导交易。

解决办法 → 趋势提炼

  1. 平滑处理 :对市场宽度做 5日或10日均线,去掉短期杂波。
  2. 极值点识别 :在平滑后的曲线上,找到「局部高点 / 局部低点」,标记为 顶部反转 / 底部反转

这样得到的趋势图,就像风向标一样,能更好地揭示市场节奏。


它能帮我们做什么?

  1. 识别顶部风险

    • 当宽度处在高位(>80%)并出现顶部反转 → 市场过热,适合减仓。
  2. 捕捉底部机会

    • 当宽度处在低位(<20%)并出现底部反转 → 市场极度悲观,往往孕育反弹。
  3. 避免被指数迷惑

    • 指数涨 ≠ 大多数股票赚钱。
    • 通过宽度,可以快速判断「是普涨还是结构性行情」。

实际操作思路

  • 低吸策略:当市场宽度 <20% 且出现底部反转 → 分批布局。
  • 止盈策略:当市场宽度 >80% 且出现顶部反转 → 减仓或调仓。
  • 辅助判断:结合指数趋势、成交量、情绪指标一起使用,信号更稳。

这里展示一下截止到2025年9月4日中午市场宽度指标,方便大家更好的理解。

全A市场宽度趋势图

申万一级行业房地产市场宽度趋势图

申万二级行业白色家电市场宽度趋势图

智能家居 概念 市场宽度趋势图


Python实现

行情获取使用的是xtquant+miniQMT,当然也可以改成你自己的行情数据源,代码每个功能以函数的形式来撰写,方便大家后期加入到自己的项目或者二次开发。

行情只需要提供包含"date", "code", "close", "preClose"字段的日线行情即可,我这里写的是读取pandas的feather格式当然你也可以很容易的改成读数据库或者读csv文件等。

关于获取xtquant行情数据部分的代码我统一放到了hq_data_download.py文件里,用的时候直接import hq_data_download as hq即可。

接下来主要讲下市场宽度.py这个主函数。

想获取全A市场、申万一级行业、二级行业或者概念的市场宽度直接运行市场宽度.py即可,下面是它的主函数。

python 复制代码
if __name__ == "__main__":
    init_data() # 初始化数据,下载并保存到本地 feather 文件夹
    plot_all() # 绘制全A的市场宽度趋势图
    plot_sw1('房地产')  # 示例:绘制房地产行业的市场宽度趋势图
    plot_sw2('白色家电')  # 示例:绘制白色家电行业的市场宽度趋势图
    plot_gainian('智能家居')  # 示例:绘制智能家居概念的市场宽度趋势图
  • init_data:会把行情数据和行业、概念数据下载到本地,收盘以后运行一次即可
  • plot_all:统计全A市场宽度并绘制趋势图
  • plot_sw1:绘制申万某个一级行业对应的市场宽度趋势图,对应的行业名称从init_data生成的沪深A股申万一级行业.csv获取
  • plot_sw2:绘制申万某个二级行业对应的市场宽度趋势图,对应的行业名称从init_data生成的沪深A股申万二级行业.csv获取
  • plot_gainian:绘制某个概念对应的市场宽度趋势图,对应的行业名称从init_data生成的沪深A股所属概念.csv获取

当然,如果你的Python能力比较强,可以在这个基础上进行二次开发。例如,你可以编写策略来寻找某个概念或行业近期处于底部的标的,从而做抄底操作;或者每天筛选出处于顶部的标的,实现风险预警。

相关推荐
淼_@淼9 分钟前
python-xml
xml·python·1024程序员节
yumgpkpm36 分钟前
CMP(类ClouderaCDP7.3(404次编译) )完全支持华为鲲鹏Aarch64(ARM)POC报告
大数据·hive·hadoop·python·elasticsearch·hbase·cloudera
Lisonseekpan38 分钟前
为什么要避免使用 `SELECT *`?
java·数据库·后端·sql·mysql·oracle
前进的李工44 分钟前
LeetCode hot100:560 和为k的子数组:快速统计法
python·算法·leetcode·前缀和·哈希表
用户3721574261351 小时前
Python 高效实现 Excel 与 TXT 文本文件之间的数据转换
python
lecepin1 小时前
AI Coding 资讯 2025-10-29
前端·后端·面试
Tony Bai1 小时前
【Go模块构建与依赖管理】01 前世今生:从 GOPATH 的“混乱”到 Go Modules 的“秩序”
开发语言·后端·golang
Python私教2 小时前
从零构建 Swing 计算器:深入理解 Java GUI 开发核心机制
后端
菜鸟的迷茫2 小时前
线程池中的坑:线程数配置不当导致任务堆积与拒绝策略失效
java·后端
Moonbit2 小时前
MoonBit Pearls Vol.13:初探 MoonBit 中的 JavaScript 交互
javascript·后端