Market Valuation logo

Market Valuation

Community
belos-street
market-valuation

判断A股市场估值高低,通过万得全A、沪深300、上证指数的历史分位数对比分析市场位置。Invoke when user asks about market valuation, A股高低判断, market position, or asking if market is high/low.

Overview

Publisherbelos-street
Repositorystock-analytics-agent
Skill namemarket-valuation
Stars
57
Forks
9
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by belos-street on GitHub. Read the source before you install it.

Installation

Install the Market Valuation AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/belos-street/stock-analytics-agent/tree/main/.agents/skills/market-valuation
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/belos-street/stock-analytics-agent.git /tmp/stock-analytics-agent
mkdir -p .claude/skills
cp -r /tmp/stock-analytics-agent/.agents/skills/market-valuation .claude/skills/market-valuation
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Market Valuation in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Market Valuation on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Market Valuation is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

A股市场估值高低判断

核心定位

核心目标

通过对比万得全A、沪深300、上证指数的历史估值分位数,帮助用户判断A股市场的整体高低位置,为加仓减仓时机提供参考依据。

市场估值逻辑

核心原理:

  • 万得全A(Wind All A):代表A股全市场,涵盖所有上市公司,是最全面的市场指标
  • 沪深300:代表A股大盘蓝筹,反映核心资产估值
  • 上证指数:仅代表上海交易所上市公司,反映上海市场表现

估值关系:

  • 万得全A > 沪深300:说明小盘股、成长股估值更高,市场偏向成长风格
  • 沪深300 >> 上证指数:说明沪深300成分股表现优于上证指数,大盘蓝筹强于上海整体
  • 当万得全A估值处于历史低位时,通常是较好的布局时机

数据获取

优先使用CLI获取A股指数数据:

bash
# 查询A股主要指数
cd {{PROJECT_PATH}}

# 沪深300指数(指数代码:sh000300)
# 上证指数(指数代码:sh000001)
bun run main.ts -s sh000001,sh000300

万得全A数据获取: 访问 Wind官网 可以获取万得全A的实时估值数据:

  • 网址:https://www.wind.com.cn/portal/zh/WindIndex/detail.html?id=2&v=1
  • 该页面提供万得全A的PE、PB历史分位数等关键数据

备选方案:如无法访问Wind官网,使用WebSearch搜索各指数的PE、PB历史分位数


估值分析指标

分位口径(统一)

  • 估值分位 = 近 10 年月频收盘(PE-TTM 整体法,负 PE 剔除)分位,PB/股息率分位同窗口同算法
  • 所有分位数值须标注数据基准日;跨期对比须同一基准日
  • 下文各分位档位(<20%、20-50%、50-80%、>80% 等)为对照指数自身历史的研判区间,非全市场统一绝对阈值,须附校准注释(窗口+算法+基准日)

主要估值指标

1. 市盈率(PE)

定义:市盈率是股票价格与每股收益的比率,反映投资者为获得1元利润愿意支付的价格。

历史分位数判断:

  • PE历史分位数 < 20%:历史低位,市场低估(配置参考:权益敞口可分批提升)
  • PE历史分位数 20-50%:历史较低,市场偏低(配置参考:可维持现有敞口)
  • PE历史分位数 50-80%:历史较高,市场偏高(配置参考:增配谨慎)
  • PE历史分位数 > 80%:历史高位,市场高估(配置参考:权益敞口可逐步下降)
2. 市净率(PB)

定义:市净率是股票价格与每股净资产的比率,反映投资者为获得1元净资产愿意支付的价格。

历史分位数判断:

  • PB历史分位数 < 20%:历史低位,市场低估
  • PB历史分位数 20-50%:历史较低,市场偏低
  • PB历史分位数 50-80%:历史较高,市场偏高
  • PB历史分位数 > 80%:历史高位,市场高估
3. 股息率

定义:股息率是股息与股票价格的比率,股息率越高说明市场估值越低。

yield_basis 口径:默认 = 近 12 个月 DPS 年度化;若单期×4 须显式注明;优先券商实际到账/交易所公告 DPS,警惕第三方单期分红失真。

历史分位数判断:

  • 股息率历史分位数 > 80%:历史高位,市场低估(高股息吸引资金)
  • 股息率历史分位数 50-80%:历史较高,市场偏低
  • 股息率历史分位数 20-50%:历史较低,市场偏高
  • 股息率历史分位数 < 20%:历史低位,市场高估

市场高低判断标准

综合判断逻辑

第一步:获取三个指数的估值数据

指数代码代表意义
万得全A881001全市场估值
沪深300sh000300大盘蓝筹估值
上证指数sh000001上海市场估值

第二步:计算各指数的历史分位数

指数PE所处历史分位数PB所处历史分位数股息率所处历史分位数
万得全A待查询待查询待查询
沪深300待查询待查询待查询
上证指数待查询待查询待查询

第三步:综合判断市场位置

市场位置判断标准配置参考(非买卖指令)
极度低估万得全A PE分位数 < 15% 且 沪深300 PE分位数 < 15%权益敞口可分批提升至区间上限
低估万得全A PE分位数 < 30% 且 沪深300 PE分位数 < 30%权益敞口逐步提升
合理偏低万得全A PE分位数 30-50%维持现有配置,可延续定投
合理偏高万得全A PE分位数 50-70%维持现有配置,定投放缓
高估万得全A PE分位数 > 70% 且 沪深300 PE分位数 > 70%权益敞口逐步下降
极度高估万得全A PE分位数 > 85% 且 沪深300 PE分位数 > 85%权益敞口显著下降

校准注释:上表分位档位为对照各指数自身历史的研判区间(近 10 年月频、PE-TTM 整体法、负 PE 剔除),非全市场一刀切绝对阈值;使用时须标注数据基准日与窗口,档位调整(如分位划分变动、DPS/盈利口径变化)须记录调整原因。

仓位口径:单只个股 ≤ 总资金 10%;单只高风险/行业 ETF ≤ 总资金 5%(hard constraint);高弹性组合避免同一成长风格重复暴露。三者是不同层级约束(个股上限 / 高风险ETF上限 / 组合风格去重),非同一口径,须分别校验。

风格判断

根据估值关系判断市场风格:

估值关系市场风格含义
万得全A PE >> 沪深300 PE成长风格小盘股、成长股表现强于大盘蓝筹
万得全A PE ≈ 沪深300 PE均衡风格大小盘表现均衡
万得全A PE << 沪深300 PE价值风格大盘蓝筹表现强于小盘股

使用方法

基本查询

用户:"现在A股市场估值怎么样?" Agent:

  1. 使用CLI获取指数数据
  2. 查询各指数的PE、PB历史分位数
  3. 综合分析给出判断

具体场景

场景1:判断是否可以加仓

用户:"现在可以加仓吗?" Agent:

  1. 查询万得全A、沪深300的PE分位数
  2. 判断市场是否处于低估区间
  3. 结合持仓情况给出配置参考与空方论点/证伪条件

场景2:判断是否需要减仓

用户:"市场是不是太高了,要减仓吗?" Agent:

  1. 查询各指数的PE分位数
  2. 判断市场是否处于高估区间
  3. 结合持仓结构给出配置参考与空方论点/证伪条件

场景3:判断市场风格

用户:"现在市场是什么风格?" Agent:

  1. 对比万得全A和沪深300的估值
  2. 判断市场偏向成长还是价值
  3. 给出风格判断与配置参考

数据获取与口径

  • 获取方式:优先本地 CLI bun run main.ts(实时行情/净值/股息率/K线);估值分位、宏观/行业/财报数据用 WebSearch 补充
  • 官方口径优先:券商实际到账、交易所/公司公告 > 第三方平台;数据冲突以官方为准
  • 禁止编造:取不到的数据标「不可得」,不得臆测填充;预测值须标来源或「作者假设」
  • 数据基准日:所有数值标注取数日期;跨期对比须同一基准日

CLI指数代码

指数名称CLI代码说明
上证指数sh000001上海证券综合指数
沪深300sh000300沪深300指数
深证成指sz399001深圳证券综合指数
创业板指sz399006创业板综合指数
科创50sh000688科创板50指数

万得全A数据

访问 Wind官网 获取万得全A实时估值数据:

  • 网址:https://www.wind.com.cn/portal/zh/WindIndex/detail.html?id=2&v=1

WebSearch备选查询

如无法访问Wind官网,可通过WebSearch查询:

  • "万得全A PE历史分位数"
  • "沪深300 PE历史分位数"
  • "上证指数 PE历史分位数"
  • "A股市场估值高低判断"

重要提示

  1. 估值仅供参考:历史分位数不能完全预测未来表现
  2. 长期视角:应结合宏观经济和企业盈利综合判断
  3. 分散风险:不要将所有资金集中在单一时机
  4. 定期检视:建议每季度评估一次市场估值
  5. 因人而异:根据个人风险承受能力和投资目标调整

空方论点与证伪条件(必填)

凡输出市场估值「分析/结论/配置参考」,须同时给出以下三段,不得以单行「风险提示」替代:

口径:结论统一输出「预期差方向 + 正反双方论点 + 配置参考」;配置参考为分析参考,非买卖指令。

  • 空方论点:与多方论点并列呈现。至少覆盖:低分位可能源于盈利顶部或盈利下修(分母恶化使"低估"失真);分位窗口/算法选择会改变结论;低分位可长期钝化,不必然均值回归。
  • 可证伪的看空情景:如盈利增速下修快于价格下跌(低分位实为高估)、无风险利率/风险溢价抬升压制估值中枢、情绪未出清导致低分位后继续探底、政策或流动性环境变化使历史分位锚失效。
  • 触发证伪的观察指标:盈利预测修正方向、无风险利率与风险溢价变化、盈利更新后分位数重算结果、成交量/换手与资金流向。

估值陷阱检查项(输出估值判断时必查):

  • 低 PE ≠ 低估:周期/金融盈利处于顶部时 PE 反而最低(盈利顶部陷阱)
  • 回撤大 ≠ 估值低:跌幅深不构成低估依据,须回算盈利与估值锚
  • 高股息须核可持续性:分红是否有盈利与现金流支撑(按 yield_basis 口径)
  • 增长质量:盈利含量/现金含量是否支撑当前分位的合理性
  • 反向情景必写:预期已定价、利好出尽时,"低估"结论可能已被市场交易过

示例输出

示例:市场估值报告

## A股市场估值分析报告

### 指数估值数据
| 指数 | PE | PE历史分位数 | PB | PB历史分位数 | 股息率 |
|------|-----|-------------|-----|-------------|--------|
| 万得全A | 18.5 | 35% | 1.8 | 42% | 2.1% |
| 沪深300 | 12.3 | 28% | 1.5 | 35% | 2.5% |
| 上证指数 | 14.2 | 40% | 1.6 | 45% | 2.2% |

### 市场位置判断
- **综合判断**:市场处于【合理偏低】位置
- **万得全A PE分位数**:35%(历史较低)
- **沪深300 PE分位数**:28%(历史较低)

### 风格判断
- **当前风格**:价值风格偏强
- **万得全A PE > 沪深300 PE**:说明小盘股相对大盘蓝筹有一定溢价

### 配置参考(非买卖指令)
- 对于定投投资者:定投节奏可维持
- 对于存量资金:市场偏低估,权益敞口可分批提升
- 对于高仓位投资者:维持现有配置,不做单边加仓

### 空方论点与证伪条件(必填)
- 空方论点:低分位或因盈利下修/盈利顶部造成,"低估"可能失真;低分位可长期钝化
- 看空情景:盈利预测下修快于价格下跌;无风险利率/风险溢价抬升压制估值中枢;预期已定价、利好出尽后继续探底
- 触发证伪的观察指标:盈利预测修正方向、风险溢价变化、盈利更新后分位数重算、成交量与资金流向

### 边界声明
- 以上分析仅供参考,不构成投资建议
- 市场有风险,投资需谨慎

Frequently asked questions

What does the Market Valuation AI skill do?

判断A股市场估值高低,通过万得全A、沪深300、上证指数的历史分位数对比分析市场位置。Invoke when user asks about market valuation, A股高低判断, market position, or asking if market is high/low.

Why use Market Valuation on TypingMind?

Because you install it once and use it with any model. Market Valuation is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Market Valuation in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/belos-street/stock-analytics-agent/tree/main/.agents/skills/market-valuation. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Market Valuation?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Market Valuation?

As many as you like. As long as a model supports skills, you can use Market Valuation with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Market Valuation AI skill free?

Yes. It is published on GitHub by belos-street under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇