CM

cyhzzz/market-breadth-heatmap-skill

Browser automation
51 stars Quality 40 Trend 40

Market breadth heatmap generator for A-share market

Overview

大盘云图市场宽度热力图生成工具。将 sckd.dapanyuntu.com 的一级行业 MA20 站上率数据聚合为浅色系热力图 PNG。 - :从大盘云图 API 抓取原始行业 MA20 站上率数据 - :86 个二级行业 → 26 个一级行业大类(算术平均) - :浅色系渐变(淡紫 → 浅蓝 → 浅绿 → 浅黄 → 浅橙) - :3:4 比例(690×920px @2x),PNG 格式 - :按最新交易日 MA20 站上率降序排列 - :约 6 周历史数据 - :0-100 数值映射到淡紫 → 浅蓝 → 浅绿 → 浅黄 → 浅橙 - :最强行业、最弱行业、全市场均值 - : https://sckd.dapanyuntu.com/api/api/industry_ma20_analysis_page?page=0 - :每日 16:00(收盘后) - : - :为客户生成市场宽度可视化报告 - :追踪行业轮动与市场情绪变化 - :小红书、公众号等平台的财经图表素材 - 0 值表示无数据(非真正的 0%),聚合时会自动过滤 - 色阶采用浅色系设计,适合深色/浅色背景皆可使用 - PNG 输出约 50-200 KB,适合直接嵌入文档或社交媒体

README

Market Breadth Heatmap Skill

大盘云图市场宽度热力图生成工具。将 sckd.dapanyuntu.com 的一级行业 MA20 站上率数据聚合为浅色系热力图 PNG。

功能特性

  • 数据获取:从大盘云图 API 抓取原始行业 MA20 站上率数据
  • 行业聚合:86 个二级行业 → 26 个一级行业大类(算术平均)
  • 热力图渲染:浅色系渐变(淡紫 → 浅蓝 → 浅绿 → 浅黄 → 浅橙)
  • 高清输出:3:4 比例(690×920px @2x),PNG 格式

目录结构

market-breadth-heatmap-skill/
├── SKILL.md                      # 技能定义
├── README.md                     # 本文件
├── package.json                  # Node.js 依赖(Playwright)
├── assets/
│   ├── heatmap_template.html     # 热力图 HTML 模板
│   └── capture.js                # Playwright 截图工具
├── references/
│   ├── data-fetch.md             # 数据获取指南
│   ├── industry-mapping.md       # 行业映射表
│   └── taste.md                  # 设计品味准则
└── scripts/
    └── generate.py               # Python 生成脚本

快速开始

安装依赖

cd market-breadth-heatmap-skill
pip install -r requirements.txt   # Python 依赖(如有)
npm install                       # Playwright 依赖
npx playwright install chromium   # 安装 Chromium 浏览器

一键生成热力图

cd market-breadth-heatmap-skill
python3 scripts/generate.py --mode all --output-dir ./

分步执行

# Step 1: 获取原始数据
python3 scripts/generate.py --mode fetch --output raw_data.json

# Step 2: 按一级行业聚合
python3 scripts/generate.py --mode aggregate --input raw_data.json --output aggregated_data.json

# Step 3: 生成 HTML
python3 scripts/generate.py --mode render \
    --input aggregated_data.json \
    --template assets/heatmap_template.html \
    --output heatmap.html

# Step 4: HTML → PNG 截图
python3 scripts/generate.py --mode capture --input heatmap.html --output heatmap.png

输出示例

生成的 PNG 热力图包含:

  • 26 个一级行业:按最新交易日 MA20 站上率降序排列
  • 31 个交易日:约 6 周历史数据
  • 浅色系色阶:0-100 数值映射到淡紫 → 浅蓝 → 浅绿 → 浅黄 → 浅橙
  • 底部统计:最强行业、最弱行业、全市场均值

数据说明

数据来源

  • API: https://sckd.dapanyuntu.com/api/api/industry_ma20_analysis_page?page=0
  • 更新频率:每日 16:00(收盘后)
  • Headers 要求:
    Referer: https://sckd.dapanyuntu.com/
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
    

行业聚合

二级行业数 一级行业数 聚合方法
86 26 算术平均(过滤 0 值)

色阶定义

数值范围 颜色
0-20 淡紫 #e0e7ff
20-40 浅蓝 #bae6fd
40-60 浅绿 #bbf7d0
60-80 浅黄 #fef08a
80-100 浅橙 #fdba74

技术栈

  • Python 3:数据获取与聚合
  • Node.js + Playwright:HTML → PNG 截图
  • HTML/CSS:热力图模板渲染

使用场景

  • 投顾服务:为客户生成市场宽度可视化报告
  • 交易策略:追踪行业轮动与市场情绪变化
  • 内容创作:小红书、公众号等平台的财经图表素材

注意事项

  • 0 值表示无数据(非真正的 0%),聚合时会自动过滤
  • 色阶采用浅色系设计,适合深色/浅色背景皆可使用
  • PNG 输出约 50-200 KB,适合直接嵌入文档或社交媒体

License

MIT

View this README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add cyhzzz/market-breadth-heatmap-skill