九层框架选股体检 Skill
概述
本技能对A股个股及ETF执行标准化的九层框架体检,输出结构化的投资分析报告。适用于任何需要快速判断一只股票或ETF是否值得持有/买入的场景。
⚙️ 环境准备(首次使用前)
本技能依赖 westock-data CLI 获取行情数据。首次使用请先安装:
# 方式一:全局安装(推荐)
npm install -g westock-data-clawhub@latest
# 方式二:npx临时使用(无需安装)
npx -y westock-data-clawhub@latest <命令>
安装完成后,在终端输入 westock-data --version 验证是否成功。
若无法安装 westock-data:本技能内置 WebSearch 降级策略,无数据时自动切换网络搜索,不影响分析流程。
触发条件
当用户发出以下类型请求时,使用本技能:
- 提供股票或ETF代码/名称,要求分析/体检/评估
- 询问某只股票或ETF"值得买吗"、"能不能买"、"什么时候买"
- 要求用"九层框架"或"λ状态"分析个股或ETF
- 需要判断持仓去留、止损止盈位
- 触发词示例:
- "分析一下北方华创" / "看看通信ETF"
- "515880值得买吗" / "机器人ETF现在能买吗"
- "帮我看看宏发股份" / "用九层框架跑一下中际旭创"
- "XXX止损位在哪里" / "XXX体检报告"
执行流程
第零步:股票名称→代码解析(若用户输入为名称)
若用户输入的是股票/ETF名称(非代码),先用 search 解析为代码:
C:/Users/user/.workbuddy/binaries/node/versions/22.22.2/node.exe npx -y westock-data-clawhub@1.0.4 search <名称>
- 返回多条结果时,取第一条匹配(代码前缀
sh/sz对应沪深) - 若
search失败,改用 WebSearch 搜索"<名称> 股票代码" - 解析完成后,记录标准代码(如
sh515880),后续所有命令使用此代码
第一步:获取股票基础数据
使用 westock-data(npx方式)获取目标股票/ETF的核心数据。
⚠️ 重要:quote 命令在当前环境不可用,改用以下方式获取最新价格:
- 最新收盘价:kline <代码> --period day --limit 1(取 last 列)
- 盘中实时价:minute <代码>(取最后一行 price 列)
代码前缀规则:
- 沪市个股/ETF:sh + 6位数字(如 sh600000、sh515880)
- 深市个股/ETF:sz + 6位数字(如 sz000001、sz159915)
- 港股:hk + 5位数字(如 hk00700)
- 美股:us + 代码(如 usAAPL)
必须获取的数据(按优先级执行):
# 前提:已安装 westock-data(见上方"环境准备")
# 若未安装,在命令前加 npx -y westock-data-clawhub@latest 替代 westock-data
# 1. 最新价格(收盘价,用于所有层分析)
westock-data kline <代码> --period day --limit 1
# 2. K线60日(用于L2趋势/L4指标/L7大周期)
westock-data kline <代码> --period day --limit 60
# 3. 技术指标(用于L4过滤)
westock-data technical <代码> --group all
# 4. 资金流向(用于L3资金行为)
westock-data asfund <代码>
# 5. 股东结构(用于L6 λ量化锚点:股东户数变化)
westock-data shareholder <代码>
# 6. 财务报表(用于L1供需/L7大周期)
westock-data finance <代码> --num 4
# 7. ETF持仓明细(仅ETF需要,用于L1净值驱动因素分析)
westock-data etf-holdings <ETF代码>
⚠️ 重要:若未全局安装 westock-data,将每条命令中的 westock-data 替换为 npx -y westock-data-clawhub@latest 即可。
asfund 列名对照说明(表头与数据列顺序一致,解析时按位置取数):
| 关键列名 | 含义 | 正值=多/负值=空 |
|---------|------|----------------|
| MainNetFlow | 当日主力净流入(大单+/中单-/小单-) | >0=当日主力净买入 |
| MainNetFlow5D | 5日主力净流入 | >0=5日净买入 |
| MainNetFlow10D | 10日主力净流入 | >0=10日净买入 |
| MainNetFlow20D | 20日主力净流入 | >0=20日净买入 |
| JumboNetFlow | 当日超大单净流入(机构/游资) | >0=机构净买入 |
| BlockNetFlow | 当日大宗交易净流入 | >0=大宗买入 |
| MidNetFlow | 当日中单净流入 | <0=公募出货(常见) |
| SmallNetFlow | 当日小单净流入 | >0=散户买入 |
⚠️ 解读技巧:主力净流入+超大单净流入齐正=最强买入信号;主力净流入+散户净流入齐正=机构散户共振;价涨但5日/10日主力净流出=量价背离(🚨警告)
数据获取策略:
- 优先执行命令1-4(基础四层数据),耗时约30-60秒
- 若npx命令超时或失败,按以下WebSearch模板降级获取关键数据(每缺失一项搜一次):
| 缺失数据 | WebSearch搜索关键词模板 | 提炼目标 |
|---|---|---|
| 最新价格/涨跌幅 | "<股票名>" + "最新价" + YYYY-MM-DD |
当前价、今日涨跌幅 |
| PE/PB估值 | "<股票名>" + "市盈率" + "市净率" |
PE(TTM)、PB(MRQ) |
| 近期涨跌幅 | "<股票名>" + "近1月涨幅" + "近6月涨幅" |
20日/60日涨跌幅 |
| 主力资金 | "<股票名>" + "主力资金流向" + "近5日" |
5日主力净流入额 |
| 股东户数 | "<股票名>" + "股东户数" + "最新" |
股东户数环比变化 |
| 财报摘要 | "<股票名>" + "2026年一季报" + "营收+净利润" |
营收增速、利润增速 |
- 不因为没有某一层数据而终止整体分析,在对应层标注"数据不足"
第二步:逐层执行九层框架分析
按以下九层顺序执行分析,每层给出结论(✅通过 / ⚠️观察 / ❌不通过)和一句话理由。
⚠️ 量化判断标准:执行每层分析前,必须先读取 references/judgment-standards.md,对照该层的量化标准后给出结论。禁止凭感觉判断。
第1层:价格 = 供需
判断当前价格由什么驱动。
个股:查询近期是否出现供不应求的信号(订单饱满、产能利用率提升、缺货涨价、行业产能缺口)。结论:价格是否反映真实供需,还是纯粹资金博弈。
ETF适配:ETF价格由净值驱动,需分析底层资产和板块供需:
- 查 etf-holdings 获取前十大持仓
- 判断主要持仓所处行业的供需状态(如通信ETF→光模块订单是否饱满)
- 查板块整体资金流向(板块K线、板块涨跌排行)
- 结论:净值是否反映底层资产真实供需,还是溢价/折价异常
第2层:趋势/震荡结构
识别价格所处的技术结构。
- 查询:当前是趋势行情还是震荡行情;关键支撑/阻力位在哪里
- 结论:结构是否完整,是否处于可操作区间
第3层:资金行为
分析是谁在买卖。解析 asfund 输出时参照上方的列名对照表。
核心判断逻辑:
- 主力净流入 + 超大单净流入齐正 → 最强买入信号 ✅
- 5日主力净流入 > 0 → 中期资金向好 ✅
- 价格创新高但 5日/10日主力净流出 → 量价背离 🚨 ❌
- 散户净流入正向且超大单净流出 → 散户接盘机构出货 ❌
- 成交量温和放大 → 健康;成交量异常放大但价格滞涨 → 出货信号 ❌
查询:主力资金近5-10日流向;北向/机构持仓变化;成交量是否异常放大
结论:资金行为是否支持当前价格方向
第4层:指标过滤
用技术指标过滤假信号。
- 查询:MA20/MA60位置;RSI是否超买超卖;MACD金叉/死叉状态
- 结论:指标是否发出同向确认或背离警告
第5层:盈亏 = 优势概率 + 风控
计算风险回报比。
- 查询:当前价位入场,止损设在哪里;目标位在哪里;风险回报比是否≥1:3
- 结论:这笔交易是否具备正期望值
第6层:人性市场(含反身性四阶段)
用λ状态判断市场处于反身性哪个阶段。
参考 references/reflexivity-model.md 获取完整的反身性四阶段定义和λ量化方法。
- 阶段0(冷门)→ λ≈0,等
- 阶段1(萌芽)→ λ↑上升,等证据
- 阶段2(强化)→ λ>>0 + 证据临界,动手
- 阶段3(蜂拥)→ λ过热,撤
- 阶段4(反转)→ λ骤降,跑
结论:当前λ状态,是否适合操作。
第7层:大周期定方向
判断更大的时间周期方向。
- 查询:月线/季线趋势;行业所处周期位置;政策周期匹配度
- 结论:大周期是否支持操作方向
第8层:风控一票否决
检查是否触碰风控红线。
- 查询:若已持仓,当前浮亏是否超过-15%;总仓位是否超90%;单只持仓是否超25%
- 结论:风控是否否决本次操作
第9层:博弈底层
分析市场参与者的行为博弈。
- 查询:当前市场一致预期是什么;是否有预期差;谁是对手盘
- 结论:博弈结构是否有利于操作
第三步:λ×Payoff四象限定位
将标的填入四象限,给出仓位建议:
| 象限 | 定义 | 建议仓位 |
|---|---|---|
| ①高λ+高payoff | 核心仓 | ≤25% |
| ②高λ+低payoff | 交易/观望 | 小仓 |
| ③低λ+高payoff | 赌权小仓 | 5-10% |
| ④低λ+低payoff | 删除 | 不入池 |
第四步:输出标准化体检报告
按以下模板输出(Markdown格式),并保存至 .workbuddy/memory/ 目录。
保存路径规则:
- 文件路径:.workbuddy/memory/<代码>-体检-<YYYYMMDD>.md
- 示例:515880-体检-20260620.md
- 若当日已有同名文件,追加内容而非覆盖(用 ## 复查-<HHMM> 作为二级标题)
输出模板:
## 九层框架体检报告:[股票名称]([代码])
**体检时间**:YYYY-MM-DD
**当前价格**:¥XXX(较前一收盘±X%)
**λ状态**:[阶段X / 描述]
---
### 逐层结论
| 层级 | 结论 | 理由 |
|------|------|------|
| L1 供需 | ✅/⚠️/❌ | 一句话理由 |
| L2 趋势 | ✅/⚠️/❌ | 一句话理由 |
| L3 资金 | ✅/⚠️/❌ | 一句话理由 |
| L4 指标 | ✅/⚠️/❌ | 一句话理由 |
| L5 盈亏 | ✅/⚠️/❌ | 风险回报比X:X |
| L6 反身性 | ✅/⚠️/❌ | λ状态+阶段 |
| L7 大周期 | ✅/⚠️/❌ | 一句话理由 |
| L8 风控 | ✅/⚠️/❌ | 是否触碰红线 |
| L9 博弈 | ✅/⚠️/❌ | 一句话理由 |
### 综合评分
**通过层数**:X/9
**λ×Payoff象限**:第X象限
**建议操作**:[买入/观望/减仓/清仓/已持有-继续持有]
**建议仓位**:≤XX%(如适用)
**止损位**:¥XXX
**第一目标位**:¥XXX
### 核心风险
- 风险1
- 风险2
### 核心催化
- 催化1
- 催化2
资源
references/reflexivity-model.md
反身性模型的完整定义,包括λ四阶段详细描述、λ量化锚点、数据锚点、泊松复盘方法。执行第6层分析时必须读取此文件。
references/risk-rules.md
风控红线的完整定义,包括单只-15%全出、单月-10%减半、总-20%清仓、连3止损停仓等规则。执行第8层分析时必须读取此文件。
注意事项
- 本技能只做分析,不替代用户决策。最终操作由用户自行判断。
- 数据源:
westock-data(npx方式)。quote命令不可用,最新收盘价用kline --limit 1,盘中实时价用minute。 - npx命令若超时或失败,按"数据获取策略"中的WebSearch模板降级获取,不终止分析。
- 体检报告保存路径:
.workbuddy/memory/<代码>-体检-<YYYYMMDD>.md。若当日已有报告,以## 复查-<HHMM>追加,不覆盖。 - 对所有A股有效,对ETF需在L1层调整分析逻辑(见L1的ETF适配说明)。
- 执行每层分析前,必须先读取
references/judgment-standards.md对照量化标准,禁止凭感觉判断。 - 若某层数据不足,在该层标注"数据不足",不终止整体分析。