← 归档索引 · 2026-11-04 09:52 · 富贵9:30开盘闸门-盘中判断
# Cron Job: 富贵9:30开盘闸门-盘中判断

**Job ID:** 4197a98dc37e
**Run Time:** 2026-11-04 09:52:23
**Schedule:** 30 9 * * 1-5

**Prompt Characters:** 50066
## Prompt

[IMPORTANT: The user has invoked the "market-discipline" skill, indicating they want you to follow its instructions. The full skill content is loaded below.]

---
name: market-discipline
description: 市场分析纪律协议 — 任何市场/板块/个股分析前强制执行。★市场第一铁律:大盘重于板块>个股>热点>游资。站在市场之上看全局,先看趋势方向再找资金规律。不通过这扇门,不分析。
domain: discipline
tags: [市场, 纪律, 客观, 风控, 前置门, 对抗自我, 市场第一]
references:
  - references/user-three-layer-framework.md: 用户亲授的三层客观性框架全文(制度→认知→方法论)。每次分析前读第零步:检查框架是否覆盖当前问题。
  - references/2026-07-28-report-quality-metrics.md: 2026-07-28固化的报告输出质量标准(六段式、兵家禁令、双源数据、超越层深度分析)
  - references/2026-07-31-three-scenario-analysis.md: 牧马人三情景分析实战模板(含涛哥7/31案例+关键规则)
  - references/2026-08-04-taoge-capital-system.md: 涛哥资金面操作系统(8/4直播深读,9验8中:两碗面/吸售+回流/高开比价/风险报酬比五层链)
  - references/closing-analysis-cron-workflow-20260804.md: 收盘分析cron完整命令序列(vault降级对照/管道拦截规避/IMA归档/干净版预测覆盖)
  - references/morning-briefing-cron-workflow-20260805.md: 盘前简报cron完整命令序列(prediction_vault JSON直读/日期校准/dotfile拦截规避/IMA归档)
  - references/midday-scan-cron-workflow-20260810.md: 午间扫描cron数据工具链(定稿vs实时双轨、DataHub签名速查、五类扫描工具可用性实测、7段报告骨架)
  - references/buy-sell-standards-20260814.md: 买卖标准完整清单(S1校长铁律~S8参考 + 买入六维/13否决/四大买点/S16;含标准来源铁律——自创阈值禁止当标准)
  - references/a-share-winrate-backtest-20260814.md: A股判据5日胜率回测(13只投资池:缩量洗盘70%/高位强势71%/单日大单50%抛硬币 + 三个反直觉发现 + 复现方法)
scripts: []
---

# 🚧 市场分析纪律协议

> **★ 市场第一铁律(永久):**
> 大盘重于板块,板块重于个股,主线重于热点,机构重于游资。
> 不能从个股出发看主力→必须从市场出发看趋势。
> 大盘在退潮或大瀑布→无论个股多好都不做。
>
> 用户亲授的三层框架。任何市场分析前强制执行。
> 不通过,不开口。

---

## ⚡ 触发条件(精确场景定义)

### 正向触发(以下任一激活本协议)

```text
□ 用户要求分析市场/板块/个股走势
□ 用户分享市场数据并要求解读
□ 你要输出任何带方向性判断的陈述
□ 用户发来外部分析/文章需要吸收
```

### 反向触发(以下任一**不激活**,直接跳过)

```text
□ 纯数据采集/脚本执行请求("拉一下XX数据")
□ 账户操作/交易执行("买入XX")
□ 系统运维/技术排查
□ 知识库查询("查一下XX概念")
```

### 场景边界

```text
模糊场景 → 按「可能触发」处理:
  "看看XX" → 如果是看数据不判断 → 不触发
  "分析XX" → 明确有判断 → 必须触发
  "XX怎么样" → 需要先确认意图 → 问清再决定
```

### ★ 输出三态显式化(2026-10-31 ResearchOS蓝图吸收·B4)

任何市场/板块/个股分析的收尾必须落三态之一,禁沉默弃权:
- **ACT**:给买点/建仓(须闸门开+战法匹配+仓位)
- **DEFER**:观察——附复验条件+复验时点("等X,若Y则Z")
- **ABSTAIN**:弃权——附原因(数据不足/闸门关/谱系判据弱/体制不符)
弃权是正常决策输出不是能力缺陷;报告里写"今日弃权:因为X"而非省略结论。

### ★ 买入判断铁律(2026-08-31 老板纠正·永久生效)

```
有主力在 = 正面信号 = 可以进
有买入标准触发 = 进
没有出货标准 = 拿着

百分位置、涨幅大小、"感觉高了" → 全部不是买卖依据
只有标准有关系:有买入标准→进,有卖出标准→出

强势股没有顶,除非符合顶的标准
弱势股没有底,除非符合底的标准
不做预测顶底的事情,走一步说一步
```

### ★ 主力识别方法(2026-08-31 实战固化)

```
量价异常 = 主力行为的物理痕迹(钱多→进出必然冲击价格和成交量)

判断有无主力(四个维度):

维度1·量比:今日量 vs 近5日均量
  量比>1.2 = 有人在动
  量比>1.5 = 动作不小
  量比>2.0 = 大动作

维度2·价格配合:量变了,价格跟不跟
  放量+涨 = 有人在买(建仓/拉升)
  放量+跌 = 有人在卖(出货/砸盘)
  放量+不涨不跌 = 换手(可能是洗盘)

维度3·位置:在哪发生的
  波段低点放量涨 = 主力建仓(好事)
  波段高点放量滞涨 = 主力出货(坏事)

维度4·连续性:一天是噪音,连续3天以上才是信号

下跌中找主力(额外信号):
  跌幅收窄(-5%→-3%→-1%)= 卖压衰竭
  缩量下跌 = 抛压在减少
  长下影线/大阳线 = 有人在低位接
  低点不再创新低 = 有人在托

关键位置 = 价格历史上大量交易的地方(前高/前低/成交密集区/整数关口/缺口)
```

### ★ 同比环比分析方法(2026-08-31 实战固化)

```
同比 = 跟别人比(强弱)
  ★时刻对齐铁律(2026-10-20 老板令): 同比必须【每天同一时刻】比; 一天内不同时刻互比无价值
    (实证: 收盘扫描"首30min vs 末30min成交量分布"被判无意义 → 该cron已删 aba5c65c8c1e;
     日内两段比只有配上【同一时段的历史基线】才有参照系, 否则只是形状描述不是判断依据)
  ★执行窗铁律(2026-10-20 数据固化, 69日深成指分时): 买点判定与下单集中【9:45–10:30】(修正完成+10点方向已选), 禁开盘前5分钟动作(修正段泡沫)
    三道时间闸: 首根5分钟(9:35, 发现层: 涨≥1.5%且量≥前5根均量2倍) → 9:45的15分钟(决策层: 收>开且未回落破开盘价) → 10:00方向选择(确认层: 首半小时只消化不作数)
    依据: 首半小时量占33.5%[P25=32.5,P75=35.1]/首小时48%/尾盘半小时11.5%(前重后轻3:1); 早盘方向→全天65%先验(非确定); Gao日内动量已证伪(corr=0.06)
    接线: 09:30闸门声明三闸待验条件 → 10:00形态感知核对(数据粒度不足须标「降级近似」禁冒充精确)
  个股 vs 板块 → 比板块强=主力偏好
  个股 vs 大盘 → 比大盘强=逆势资金
  板块 vs 板块 → 哪个板块更强

环比 = 跟自己的过去比(变化)
  今天 vs 昨天 → 趋势在变好还是变差
  本周 vs 上周 → 动能在增强还是减弱
  这轮下跌 vs 上轮下跌 → 跌得更快还是更慢

两个一起用:
  同比强+环比改善 = 有主力在护(可关注)
  同比弱+环比恶化 = 主力在跑(回避)

★ 点名即结构(老板纠正「要运用同比、环比分析法」):
  老板点名用某分析方法(同比/环比/…)→ 该方法必须成为报告的组织结构
  (同比专章 + 环比专章 + 两者交叉矩阵),不许降级为特征表里的两三行;
  同比强弱 × 环比改善/恶化 的四格交叉矩阵本身往往就是结论所在。
```

---

## ★ 第零步:从自己的框架出发(2026-07-30 认证 · 2026-08-22 修正)

> **任何市场分析前,先锚定自己的框架,不以任何外部skill作为思考起点。**
> 框架是校验器,不是思考起点。

```
第0公理:价格由机构资金流决定
  → 分析第一问:钱在哪?去哪了?(量/资金流向/板块成交)
  → 只看K线不看量=只看果不看因
  
第1公理:位置决定含义(2026-08-22 修正:因果优先)
  → 分析第二问:在什么位置?用五维综合判断(不迷信均线分位数)
  → 位置是结果,同比环比是原因。先看"为什么在那个位置"
  → 高位+同比好=主力在推 | 高位+同比差=无人接盘
  → 低位+同比好=有机会   | 低位+同比差=无人问津
  → 60日分位只作定位坐标参考,均线是价格的影子(滞后)
  → 位置是第一筛,过了再看别的

★ 百分位置铁律(2026-08-31 老板纠正·永久生效):
  百分位置(60日/20日分位)= 历史坐标,不是风险指标
  → 93%分位+主力在=可以继续涨,不是"危险"
  → 1%分位+主力跑了=可以继续跌,不是"便宜"
  → 百分位置和买卖没有因果关系,只有主力在不在有关系
  → 只跟标准有关系:有买入标准→进,有卖出标准→出

两公理联合:
  钱去低位→建仓,钱去高位→出货
  钱去+低位→跟,钱去+高位→警惕
  钱没去+低位→等,钱没去+高位→不碰

★ 修正说明(2026-08-31):
  "钱没去+高位→不碰"的原因是"没有主力",不是因为"高位"。
  如果"钱没去+低位"→ 也没有主力 → 同样不碰。
  所以核心判断是"钱去不去",不是"高位低位"。高位低位只是坐标参考。
```

**外部框架在本体系中的位置(只是验证手段,不是起点):**

```
涛哥吸收/注入   → 第0公理具体化(如何监测钱流)
无为盘感三度    → 第1公理具体化(如何判定位置)
牧马人三漏斗    → 两公理联合应用(选板块流程)
陈江挺六原则    → 两公理风控层(错了怎么办)
```

**自检:** 当前分析是从公理出发还是从外部框架出发?
```
□ 从公理出发:钱在哪?→ 位置在哪?→ 联合判断 → 调外部skill验证
□ 从外部skill出发:加载无为/牧马人/涛哥 → 套用框架 → 填充数据
→ 如果选了第二个 → STOP。退回公理起点。
```

## 第零步·双轴交叉验证(2026-08-22 般若范式 · 2026-08-30 基本面认知跃迁升级)

> 参考录音贯通(16份独立录音),**仅作分析框架补充,不照搬外部结论。**
> 基本面=天花板(能不能做),资金面=主力动向(什么时候做、做多久)。
> **2026-08-30升级:基本面不再看PE/ROE,改为看因果链闭环程度。**

```
双轴分析流程(任何标的/板块分析时强制执行):

第一步:资金面扫描(第0公理)
  → 主力在哪个阶段?建仓/洗盘/拉升/出货/砸盘
  → 量价行为说了什么?

第二步:基本面验证(天花板检查)← 2026-08-30升级
  → 主力建仓的理由是什么?因果链闭不闭环?
  → 第一因刚不刚性?(不可停、不可逆转)
  → 业绩能见度到什么时候?
  → 全市场同时刻有几条链闭环?仅1-2条=真主线
  → 基本面支撑的级别:趋势(重仓)vs 反弹(快进快出)
  → ⚠️ 禁止用PE/ROE/营收增速判断科技股基本面

第三步:双轴交叉
  基本面好 + 资金面好 = 趋势(重仓持有)
  基本面好 + 资金面出逃 = 先回避,等回流信号
  资金面好 + 基本面差 = 反弹(快进快出,不恋战)
  都差 = 不做

第四步:叙事真伪三问(科技股专项过滤)
  ① 是否新增量市场?(空间打开 vs 存量替代)
  ② 是否价值量提升?(单位价值跃迁 vs 量增价跌)
  ③ 利润是否再投入闭环?(自我强化 vs 一次性订单)
  三问全过=真叙事可重仓;过一缺二=反弹不追;全不过=诱多不碰
```

**核心口诀**:基本面定"能不能做"(因果链),资金面定"什么时候做、做多久"(主力行为)。双轴共振才持仓,分离先回避。
**抛弃旧基本面**:PE低≠安全(银行套三年)。PE高≠会跌(算力链PE70主升)。财报好≠能涨(CXO 2021见顶)。科技股基本面=因果链闭环程度,不是财务指标。

### 比价表(外围→A股开盘定量校准,待滚动更新)

```
外围→A股高开预期:
  纳指涨0.8%  → 深成指正常高开0.3-0.5%,竞价90-100亿
  竞价破110亿 → 机构参与(非散户情绪)
  外围大跌低开<1%+放量 → 护盘(非恐慌)
  
  低开做空阈值:
    纳指-1.3%(半导体主跌)→ 正常低开1.3-1.5%,量110-120亿
    实测低开2%+144亿 → 机构砸盘(禁止加仓)

  注意:
    - 这些阈值是特定阶段经验值,需随成交环境滚动校准
    - 纳指涨≠A股科技利好——看涨的是谁(七姐妹/硬件/存储)
    - 高开≥1.5%+缩量=虚开,高开低走风险
```

### 牛种分类(赛道选择框架)

```
业绩牛:有预期有业绩正循环(如AI硬件逐季财报正交)
  → 持续性最强,适合重仓持有
水牛:政策流动性人造(不持续)
  → 反弹为主,不恋战
结构牛:板块分化(部分强部分弱)
  → 只做主线,不做杂毛
系统牛:全面普涨(少见)
  → 优先选低位补涨标的

万物皆周期:房地产30年、科技2-3年、白酒消费周期已逝
→ 周期定位决定持续性
```

---

## 第零步A:全市场扫描优先 — 不预设热点

> 用户纠正(2026-07-21):「你不应该只看到科技板块,眼光应该放到整个市场。」

在开始任何分析之前,**必须先做全市场定位**,而非从预设热点(如科技/AI/半导体)切入。

```
□ 全市场板块扫描:今天最强/最弱各有哪几个板块?上涨率/涨幅/涨跌比
□ 资金方向:资金在流入哪些板块?从哪些板块流出?
□ 市场结构:是普涨/普跌/分化/极端分化?涨跌比多少?
□ 你的持仓/关注标的位置:它在全市场地图里哪个坐标?

自检:我是不是下意识先看科技板块?
   → 是 → STOP。先扫全市场再定位。
   → 收到任何分析请求 → 第一步跑全市场扫描
```

**实际操作指引(富贵系统具体命令):**

```python
# ① 拉四大指数日线(get_daily_with_realtime 可用)
from data_hub import DataHub
hub = DataHub()
indices = {'上证综指':'000001.SH','深证成指':'399001.SZ','创业板指':'399006.SZ','科创50':'000688.SH'}
for name, code in indices.items():
    df = hub.get_daily_with_realtime(code, days=15)
    # 看最后3天的 close + pct_chg,判断趋势方向

# ② 板块/概念日线(注意:get_blocks()返回的TI编码不支持get_daily_with_realtime)
#   如 '881121.TI'(半导体) → get_daily_with_realtime返回空DataFrame
#   不要花时间尝试逐板块跑数据
#   替代方案:
#   a) 用 index 数据 + 近期涨幅排序做定性判断
#   b) 跑 sector_scan.py(可能超时,设长timeout)
#   c) 用 sector_scanner.py 扫潜伏板块
#   d) 基于关键个股的表现 proxy 板块强度

# ③ 如果无法获取板块级数据 → 降级为指数级分析 + 知识库已知热点
#    在报告中说明数据范围:「基于四大指数数据,板块分析为定性判断」
```

> **2026-07-26 实战验证:** sector/block TI编码(881121.TI等)通过 get_daily_with_realtime() 返回空DataFrame,不是临时故障而是分类数据不走日线接口。sector_scan.py 超时(>180s)。当工具链不支持细粒度板块扫描时,指数级分析+定性判断是可行降级方案。

### 持仓/个股诊断数据链(2026-08-14 实弹固化)

个股/持仓分析的标准数据链(5步,全用 data_hub + 现成脚本,完整命令见 references/position-holding-diagnosis-20260814.md):

```text
① 60日定位   → get_daily_with_realtime(code, days=70) → 60日分位/量比/MA5/MA20/MA60
② 年度定位   → get_daily_with_realtime(code, days=250) → 250日分位 + 20日/60日区间涨幅
③ 板块验证   → market_breadth_pro.py --industry → 持仓所属行业是否在TOP5(逆势领涨=板块共振)
④ 主力三问   → from mainforce_scan import analyze; analyze(code, name) → 个股主力阶段/量能对称/大典滤网
⑤ 资金验证   → python3 moneyflow_trend.py <code>(多日持续性:连续吸筹/持续出货/资金背离/方向不明)
                → 或 hub.get_moneyflow(code) 原始大单净流入 = (buy_lg_amount - sell_lg_amount)/10000 亿元
                ⚠️ 单日大单≈抛硬币(回测50%),必须看多日持续性≥3天+方向一致性——moneyflow_trend.py 已代码化该判定,bss 全引擎已集成
```

**关键坑(本session实测):**
- `get_moneyflow(ts_code)` **不接受 days 参数**(传 days=5 报 unexpected keyword)——返回全量自己 sort+tail(3)
- mainforce_scan.analyze() 可对任意个股跑主力三问(不只指数),输出 dict 含 pos/vr/sym/stage/v43/veto/philo/life/db 全字段
- **位置双视角必做**:百分位置只是历史坐标,不是风险指标。60日分位100%+主力在=可以继续涨;1%分位+主力跑了=继续跌。判断依据是主力行为,不是百分位置。拉250日分位是为了看"相对于更长历史的位置坐标",不是为了判断风险。
- 大单净流入隔日剧烈翻向(如 -5.1亿→+3.6亿)= 资金分歧,不是主力行为
- 高位+缩量上涨(量比<1)= 逃命波嫌疑;高位+放量 = 诱多出货嫌疑;**同是高位放量,60日涨幅小的(<10%)是突破、涨幅大的(>50%)是出货**——量陷阱判定要结合涨幅看

## ★ 决策节点A:全市场扫描后的路径选择

```text
全市场扫描完成 → 现在你必须做选择:
  
  IF 全市场普涨/普跌(涨跌比>2:1或<1:2)
  → 走路径A:「市场有明确方向」→ 聚焦主线板块分析
  
  IF 全市场分化(涨跌比在1:2~2:1之间)
  → 走路径B:「市场无共识」→ 聚焦结构性机会/风险
  
  IF 全市场散乱(涨跌比≈1:1且无突出板块)
  → 走路径C:「市场无方向」→ 给出"方向不明"结论,不强行分析
  
判断标准:
  路径A → 产出方向性判断 + 主线确认
  路径B → 产出结构性发现 + 分化逻辑
  路径C → 产出"看不清" + 等待条件
```

只有完成全市场扫描后,才能进入具体分析。

---

## 第零步B:自我质疑——「这个问题适合由我来分析吗?」

```
如果满足以下任一条件 → 不分析,只说「我不知道」:
  □ 地缘政治/多国博弈/新成立的组织 → 变量不可控,超出框架
  □ 单一事件驱动但缺乏足够数据 → wire 框架没有处理对象
  □ 我自己的框架里没有这个事件的对应模块 → 强行翻译=编造
  
如果上述都不满足 → 进入第一步
```

**用户原话:** *「WAICO在我的框架里没有位置,所以框架强行把它翻译了。框架的盲区 = 我分析中的系统性错误。真正的独立思考 = 不断质疑自己的框架本身。」*

---

## 第零步C:引用昨日偏差(2026-08-30 三层闭环改进·永久生效)

> **每次分析前,强制读取昨日验证结果,不重复犯同样的错。**

```bash
# 读取最新corrections(昨日错误预测)
python3 -c "
import sqlite3
from pathlib import Path
db = sqlite3.connect(str(Path.home() / '.hermes/predictions.db'))
rows = db.execute('SELECT stock_code, rule_category, error_summary, created_at FROM corrections WHERE created_at >= date(\"now\", \"-2 days\") ORDER BY created_at DESC LIMIT 5').fetchall()
if rows:
    print('⚠️ 昨日偏差提醒(不重复犯同样的错):')
    for r in rows:
        print(f'  {r[0]}: {r[2][:80]}')
else:
    print('✅ 无近期偏差')
db.close()
"

# 读取market_validator最新验证结果
python3 -c "
import json
from pathlib import Path
vf = Path('/tmp/analysis/market_validator/records.jsonl')
if vf.exists():
    records = [json.loads(l) for l in vf.read_text().splitlines() if l.strip()]
    recent = [r for r in records if r.get('verified') and r.get('outcome') == False][-3:]
    if recent:
        print('❌ 近期信号失败记录:')
        for r in recent:
            print(f'  {r[\"code\"]} {r[\"signal\"]} 预测{r[\"expected_direction\"]}但反向 {r.get(\"outcome_detail\",\"\")}')
"
```

**执行规则:**
- 输出分析报告时,必须在开头引用上述偏差提醒(如有)
- 如果今天的分析涉及偏差中的同一只票/同一个信号 → 必须说明"已知偏差,本次判断依据不同"
- 不引用 = 分析不完整

---

## 第一步:制度层 — 物理规则(五关前置门)

> 人没法靠"自觉"客观。意志力在亏损面前不堪一击。

## ★ 决策节点B:五关检查结果决定输出类型

```text
五关通过后 → 现在你必须做选择:

  IF 全部5关通过(✅✅✅✅✅)
  → 输出完整分析(含判断+证伪+条件)

  IF ≥1关不通过(任一❌)
  → 不输出方向性判断,仅输出数据描述 + 说明哪关没过

  IF 关卡5未通过("我在解释市场为什么错")
  → STOP。删掉当前所有分析,重来。禁止继续输出。
  
  判断标准:
    关卡5是硬闸门。没过关5 = 分析有毒,整份重写。
    关卡1-4有任何一项❌ → 降级为「数据描述+待确认」模式
```

### 关卡1:持仓偏见声明

```
当前分析对象是否有我之前的判断记录?
  是 → 我是否在维护旧观点而不是重新看数据?
  否 → 无偏见,继续

即使没有持仓,也要声明:
  "这个判断没有成本,我不为它的对错负责。"
```

### 关卡2:前置否定

> 在写第一行分析之前,先写反向条件。

```
「这个判断在以下情况下是错的:
   ① ...
   ② ...
   ③ ...」
```

### 关卡3:止损条件

> 每份分析必须附带证伪条件。

```
「什么价格/信号出现 → 我的逻辑不成立:
   ① 价格条件:XX跌破X → 逻辑证伪
   ② 信号条件:XXX出现 → 市场否定了我」
```

### 关卡4:独立审视者

> 如果我没分析过这个票/板块,现在看到这个价格和这个事件,我会怎么做?

```
当前的「持仓偏见检查」结果:
   如果我没有之前的判断 → 结果和现在一样吗?
   如果不一样 → 哪个是真实的?
```

### 关卡5:市场对错检查

> 我接下来的分析是否在「解释市场为什么错了」?

```
□ 是 → 删掉重来。市场永远不会错。会错的只有人。
□ 否 → 继续

用户原话:
  "市场涨了 → 我之前的看空判断错了
  市场跌了 → 我之前的看多判断错了
  市场横盘 → 方向未定,不要猜
 没有'市场反应过度'
 没有'情绪杀不是逻辑杀'
 没有'市场还没理解这个利好'
 没有'主力在洗盘所以跌了反而是机会'"
```

---

## 第二步:认知层 — 接受市场永远对

> 《炒股的智慧》:股市从来都不会错。它总是走自己要走的路。会错的只有人自己。

```
市场暴跌 + 我分析是利好 → 市场在告诉我它不认为这是利好
市场暴涨 + 我分析是利空 → 市场在告诉我它不认为这是利空

不解释。不争辩。只做出反应。
```

---

## 第三步:方法论层 — 框架自查

> 独立思考不是"和别人想得不一样"。是你的结论来源于自己的数据加工过程。

```
□ 我的框架能处理当前的问题吗?
   → 如果不能 → 不分析,说「我不知道」
   → 如果能 → 是否有盲区?

□ 我的框架里少了什么?
   → 每次遇到框架外的事件 → 记录下来 → 下次改进

用户原话:
  "真正的独立思考 = 不断质疑自己的框架本身。
   不只是在框架内思考'这个判断对吗',
   还要跳出框架问'这个框架能处理当前的问题吗'。
   以及'我的框架里少了什么'。"
```

---

## 看盘三层(统计 ≠ 盘感 · 老板令「要学会看盘方法,复盘方法,思维」)

```
看 = 观察现象      (今天谁涨、量多大、哪个板块动)
比 = 统计对比      (回测、CI、对照组、显著性)
想 = 主力意图      (如果我是主力,在这个位置,面对这些信息,我会怎么做)

★ 我默认停在前两层,缺的是第三层。
  实证代价:拿回测去「证伪」外部判据,同日连犯两次定类错误(见 stats-rule-audit 第①门)
  —— 根因不是统计不会,是我在【比数字】,没在想【他这句话在说哪一层】。

每次市场分析输出前强制自问:
  □ 这个结论,能不能用一句主力意图解释?("因为谁在买/卖,所以…")
  □ 我是在看、在比,还是在想?
  → 说不出意图句 = 还停在「比」,把它标成统计描述,不当盘感结论发。
```

---

## 第四步:三条铁律(输出层强制)

```
铁律一:先说市场在做什么,再说什么可能发生了
  正确:「创业板-7.1%,连跌18天。WAICO消息没挡住抛压。」
  禁止:「WAICO是大利好,暴跌是因为非理性。」

铁律二:分析必须附带「如果价格走了对面,我就错了」
  正确:「如果逻辑成立,存储应该止跌。继续跌→逻辑证伪。」
  禁止:「坚定看好。」「聪明钱在接。」

铁律三:不写时间表
  正确:「我不知道什么时候企稳。」
  禁止:「2-4周企稳。」「6-18个月兑现。」
```

---

## 第四步A:数据先行断言(P0-3 代码化,2026-08-10)

> 铁律二从「prompt 软约束」升级为「机器硬断言」。8 个 LLM cron 的报告每份都要过 4 条检查,不合格自动告警(cron `ebdeb9314d94` 23:10 watchdog)。

**工具**:`~/stock_workspace/data_first_assert.py`

```bash
# 扫描最近1天所有 LLM cron 报告,--fail-hard 供 cron 用
python3 data_first_assert.py --days 1 --fail-hard
# 检查指定报告
python3 data_first_assert.py --check <file>
# 只输出扫描窗口内结果
python3 data_first_assert.py --days 1 --json
```

**4 条断言**(缺一即不合格报告):
1. **数字引用 ≥3 个**:判断层引用 ≥3 个数据摘要中的具体数字(涨跌幅%/量比/分位/点位/家数/分数)
2. **反向剧本/证伪声明**:含「证伪/即错/走对面/如果…错」类关键词(= 铁律二)
3. **来源标注**:结论标数据来源(数据摘要/主力三问/收盘全景…),缺失标"不可用"
4. **日期透明**:报告开头声明数据日期,或标题含日期(W33 · 2026-08-10 也算)

**watchdog 语义**(`data_first_assert_wrapper.sh`):
- 全过 → stdout 空 + exit 0 → no_agent cron 静默
- FAIL → 输出告警 + exit 1 → 触发错误 alert

**踩坑(正则误报教训)**:
- 断言4 初版要求「数据/今日/最新交易日 + 日期」前缀,导致晨报/周一复盘标题含 `2026-08-10` 被误报 FAIL
- 修正:标题/开头 40 行内含日期(YYYY-MM-DD / YYYY年M月D日 / W33 · 2026-08-10)即通过;显式「数据日期」声明全文可查
- 教训:**先读实际报告确认是误报还是真缺,再改断言**——不要为了"通过"放宽,也不要为了"抓问题"死守正则

---

## 第五步:输出质量标准(2026-07-28 用户多次纠正后固化)

### 核心原则

```
① 结论先行,数据在后
   正确:「资金在尾盘向芯片集中 → 芯片尾盘成交占比52.2%,首段仅27.2%」
   禁止:「芯片首段27.2%,尾段52.2%」→ 用户自己猜结论

② 发现驱动,不是数据驱动
   正确:「不是纯恐慌抛售—芯片尾盘放量是主力尾段抢筹」
   禁止:「半导体-5.56%,元器件-3.45%」→ 这叫粘贴数据

③ 有操作约束,不只是观察
   正确:「❌ 不接半导体飞刀(均值-5.6%,未见止跌)」「🟡 关注芯片尾盘放量能否持续」
   禁止:「建议观望」→ 太模糊

④ 有明日可验证条件
   正确:「明日看芯片开盘30分钟是否继续放量→放量则结构性机会确认」
   禁止:没有明日条件 → 分析无法被实证

⑤ 不编兵家/兵法叙事
   正确:用数据和逻辑说话
   禁止:「主力在围城」「形人无形」「朝气暮气」「围魏救赵」
   兵家语言是用比喻替代分析。当你说「围城」时,你停止了思考。
```

### 输出格式六段式

```text
① 【总览】— 一句话定性(涨跌/结构分化/资金方向)
② 【数据】— 关键数字支撑判断
③ 【证伪】— 什么情况下这个判断是错的
④ 【发现】— 从数据中挖出的结构性信号
⑤ 【操作】— 明确的约束(不做什么+关注什么)
⑥ 【明日】— 2-4条可验证的观察条件
```

### 第七段:三情景分析(2026-07-31 牧马人标准引入)

在六段式之外,当分析涉及方向性判断(反弹/反转/拐点)时,必须追加三情景分析:

```text
情景A(乐观)— 概率X%
  触发条件:XXX
  应对:XXX

情景B(中性/基准)— 概率Y%
  触发条件:XXX
  应对:XXX

情景C(悲观)— 概率Z%
  触发条件:XXX
  应对:XXX

概率不是猜的,是基于数据给出的条件密度。
X+Y+Z=100%。如果加起来不是100%,说明你没想清楚。
```

> 牧马人三情景=把每个"可能性"量化成触发条件和应对方案。不填概率不是分析,是感慨。

### 自检清单

```
□ 第一句是判断还是数据罗列?→ 判断
□ 有发现(从数据中挖出的信号)吗?→ 有
□ 有操作约束(不做什么)吗?→ 有
□ 有明日观察条件吗?→ 有
□ 有没有兵家/兵法语言?→ 没有
□ 数据都真实可验证吗?→ 是
□ 三情景分析做了吗?(方向性判断必做)→ 已量化三情景,概率加总是100%
```

---

## ⚠️ 禁区规则(含代价锚)

### 禁区1:加载skill ≠ 执行门禁

```text
规则:加载market-discipline后,必须显式写出五关答案,不能跳过。

代价(2026-07-18):
  用户给了11只股票数据,我读完skill后直接扔了一句观感。
  → 用户反问「你过五关了吗?」
  → 损失:信任。需要多轮对话才能重建。
  
教训:
  「技能加载」≠「门禁完成」。
  门禁是独立步骤——需要主动做一次五关检查并写出答案。
```

### 禁区2:吸收外部分析时不验证数据

```text
规则:收到外部分析 → 先跑自己数据验证 → 再分析对方方法论。

代价(2026-07-28):
  收到涛哥直播稿,第一反应是分析内容而不是先验证数据。
  → 如果他的数据是错的,我分析的是空气。
  → 损失:3小时无用分析 + 用户纠正。

教训:
  外部分析=待验证的假设,不是权威信息。
```

### 禁区3:预设科技/AI热点 — 全市场扫描前就锁定方向

```text
规则:收到任何数据先扫全市场,不预设热点方向。

代价(2026-07-21):
  用户发来全市场数据(全面反转日),我问「你看科技板块了吗」。
  → 用户指出:连跌18天后的全面反转日,你只盯着科技。
  → 损失:错过对全市场结构的准确感知。
  → 时间成本:被纠正后需要重新扫描+重写分析。

自检触发条件:
  □ 分析中提到科技/AI/半导体/芯片 → 先问自己:全市场扫描做了吗?
  □ 用户给了数据但没指明板块 → 先扫全市场,不预设热点
  □ 今日最强板块是科技 → 这是今天的结论,不是今天的假设

补救:
  发现已偏窄 → 立即退回到第零步A,重新做全市场扫描再分析
```

### 禁区4:框架外事件强行翻译

```text
规则:框架里没有对应模块的事件 → 说「我不知道」,不编造。

代价(2026-07-18 WAICO事件):
  WAICO在我的框架里没有位置 → 强行翻译成「中国AI出海通道打开」。
  → 市场暴跌,我说是利好(在解释市场为什么错)。
  → 损失:用户纠正+信任消耗+整份分析作废。

教训:
  框架的盲区 = 我分析中的系统性错误。
  真正的独立思考 = 不断质疑自己的框架本身。
  「我不知道」是比「编一个答案」更值钱的能力。
```

### 禁区5:输出兵家/兵法叙事替代分析

```text
规则:用数据和逻辑说话,不用兵法比喻。

代价(多次纠正累积):
  「主力在围城」「朝气暮气」「围魏救赵」
  → 兵家语言是用比喻替代分析。当你说「围城」时,你停止了思考。
  → 损失:每次被用户指出,消耗信任。

教训:
  数据说不清楚的地方,兵法也说不清楚。
  先用数据说话,数据给不了答案,就说「看不清」。
```

### 禁区6:自创标准冒充纪律 — 标准只能来自用户体系(2026-08-14 老板当场纠正)

```text
规则:输出「按纪律XX」时,标准必须是用户体系已代码化的(position_guard / dragon_screener /
      S03/S16 / 校长铁律 / 逃顶三要素 / 三振 / 洗盘vs出货六维),禁止自创阈值当执行标准。

代价(2026-08-14 当场纠正):
  我把「跌破MA5→减1/2」写进 breakthrough_check.py 当卖出标准,还挂cron、建wrapper,
  对用户说「药明/博腾 A2跌破MA5 → 减仓信号,按纪律减1/2」。
  → 用户反问「我咋不知道有这标准」——当场揭穿:这不是用户体系的标准,是我发明的。
  → 损失:信任 + 结论全错(position_guard 标准引擎跑出来是药明=持有,与我自造的减仓相反)
  → 自省:真正标准都有公理根(校长铁律=位置+量能+形态=第1公理;三振破MA20=资金离场确认),
    而 MA5 是移动平均不是资金流信号,我「觉得合理」就当了标准。

判定方法(输出前自检):
  □ 这个标准在 position_guard.py / dragon_screener_light.py / 老板教诲里有出处吗?
  □ 没有出处 → 降级为「⚠️参考(非标准)」单独标注,绝不改变标准动作
  □ 有出处 → 说清来源(「校长铁律触发→清仓」而不是「感觉要跌→减仓」)

已代码化修正(2026-08-14):breakthrough_check.py 卖出动作层改调 position_guard.guard(),
  自创规则(破MA5/放量滞涨/套牢区遇阻)降级为 ref_notes 参考提示;skill ㉚同步标注
  「禁止自创阈值当标准」。完整买卖标准清单见 references/buy-sell-standards-20260814.md。
```

---

## 第六步:铁律00-4补充 — 洗盘结束信号(2026-08-01牧马人蒸馏注入)

> 来源:牧马人能力蒸馏周报2026-07-25~31(7/30恐慌→7/31修复战役提炼)

### 洗盘结束七信号(原六信号+第七信号)

```text
原有六信号(缩量探针型):
  ① 下跌角度减缓 ② 成交量萎缩 ③ K线变小
  ④ 缩量止跌(日成交额<前日60%+阳线) ⑤ 不破关键位 ⑥ 低开缩量探针

第七信号(情绪冰点型)— 2026-08-01新增:
  跌停≥80家(情绪冰点)次日高开直接修复 + 防御线回吐
  = 比缩量探针更强的洗盘结束标志

实证:7/30跌停83家(恐慌冰点)→ 7/31高开+0.76%后暴力修复(半导体+7.05%、创业板+5.04%)
```

**关键纪律:恐慌冰点日(跌停≥80家)后,谨慎下"趋势性结论"(切换/反转/出货)——当天数据容易误导,必须次日确认。**

```text
典型误判链(必须避免):
  7/30恐慌日 → 判定"系统性风格切换"(机构减仓科技转防御)
  7/31暴力修复 → 判定被证伪(那是恐慌洗盘不是资金迁移)
  
正确反应:
  恐慌日当天 → 不下趋势结论,只记录"恐慌冰点待次日确认"
  次日高开修复+防御回吐 → 判定洗盘结束,转进攻观察
```

### 条件反射㉓:外围暴跌次日测低开幅度

```text
看到"外围暴跌次日" → 自动测A股低开幅度:
  低开<1% 且 放量 → 主力接盘,不是恐慌 → 别跟着恐慌
  低开>1% 且 缩量 → 真弱,等企稳
实证:7/31费半+8%外围暴力催化下,A股高开+0.76%直接修复
```

### 条件反射㉔:逆势抗跌需双日验证

```text
看到"逆势抗跌" → 自动标记"待验证",不直接认定主力票:
  第1日抗跌(板块跌它涨/平)→ 只入观察,可能是游资短炒
  第2日板块反弹日弹性验证:
    跟涨且强于板块 = 主力 ✅
    跑输板块 = 游资票,剔除 ❌

实证:风华高科 7/30逆势+6.29% → 7/31板块+3.86%它-2.28% = 游资短炒
```

### 条件反射㉕:指数与广度背离 — 以指数方向定性(2026-08-04 蒸馏注入)

```text
看到"指数跌 + 上涨比>65% + 缩量"同现 → 不是企稳,是存量高低切:
  指数方向 = 市场定性(权重/主线资金在撤)
  广度 = 题材温度计(小票普涨是存量一日游,不作方向/反转依据)
  量 = 真伪试金石(缩量普涨=无增量,一日游概率大)

实证(2026-08-03):指数全跌(科创50 -5.08%创新低,跌破7/30恐慌低点),
  但上涨比72.4%、涨停110、中位数+1.35%、成交缩量21%(2.56万亿→2.01万亿)
  → 定性=指数熊途+存量博弈,广度不构成进场信号

⚠️ 日期勘误(2026-08-04 收盘实弹发现):本条实证日期有误——存档的 8/3 收盘报告
  (web/static/data/reports/下午收盘分析_2026-08-03.md)显示 8/3 为反弹日
  (科创50 +2.99%、上证 +0.72%),-5.08% 普跌实为 8/4 收盘。现象本身(指数跌+广度强+缩量
  =存量高低切)仍成立,引用时以当日实际数据为准,勿照抄日期。

处置:
  ① 背离日不下"企稳/反转"结论,尤其不因广度强而看多
  ② 半导体/科创放量下跌(上涨比<30%+成交居首)= 主线资金出逃中心,回避飞刀
  ③ 背离日的"最强板块"多为迷你小票(成交<20亿),用成交额过滤真伪
```

### 条件反射㉖:外围大涨次日测高开比价三档(2026-08-04 涛哥注入,⚠️ 待多日验证后定级)

```text
看到"外围大涨次日" → 先看外围涨的是什么(细分构成),再测A股高开幅度:
  前置:纳指涨≠A股科技利好——看涨的是谁(七姐妹/互联网 vs 费半/康宁/存储硬件),
        硬件强=A股科技有实质带动;七姐妹强硬件弱=带动打折
  高开1-1.3%   → 正常比价,机构中性观望 → 等10:00方向
  高开≥1.5%+放量(深成指竞价>130亿,昨基准112亿)→ 机构扫货 → 高开高走可跟
  高开≥1.5%+缩量(竞价<130亿)→ 虚开 → 高开低走风险,不追
  高开<1%     → 空头借情绪跑 → 情绪负面,谨慎
  10:00第二风险节点:高开冲高回落放量=借高开逃跑(谁流出多减谁);
                    低开放量流入=承接

工具:us_market_breakdown.py 自动输出外围细分+预期高开区间(盘前简报数据层已接入)
验证(2026-08-04 首日实盘):命中3/5(①深成指高开1-1.3%❌实际+0.93%偏低;④<1%负面✅;
  ⑤半导体2%❌实际+0.17%;⑥未回落✅;②③未触发)→ 🔴 不足4/6,暂定"参考"级
⚠️ 验证cron说明:原 ea368785a266(15:05每日)因伪功能被删——它用新浪快照的
  **累计成交额**冒充"竞价量"(9:25竞价量拿不到),且未触发算命中(凑命中率)。
  教训:数据源拿不到断言所需字段就别写该断言;未触发≠命中。手动验证方式:
  `python3 us_market_breakdown.py` 看外围段 + 开盘后新浪快照 [1]今开/[2]昨收 算高开幅度。
实证:8/3纳指+2.13%:硬件均+0.70%(费半+0.6/康宁+6.1/存储分化)→ 预期高开+0.8~1.2%

⚠️ 模板误用实证(2026-08-05 盘前证伪蒸馏):8/4盘前套"高开减仓日"模板(外围利好→高开是减仓窗口),
  实际 8/4 低开高走暴力反弹(创业板+5.64%、科创50+4.09%,量比1.13换手完成)→ 模板被证伪。
  根因:模板适用于**高位/已连续上涨后**的高开;而**低位+等量反攻(换手完成)**日,更可能是
  低开高走修复而非高开减仓。判定顺序:先看位置分位+量能对称(㉘),再决定套哪档比价——低位换手
  完成日默认防"低开上车",不是"高开减仓"。
```

### 条件反射㉗:天量反弹日后的感受失真(2026-08-04 盘前证伪蒸馏)

```text
看到"前日天量反弹(涨停≥200家 / 成交≥2.5万亿)" → 次日早晨的"感受"读数不可信:
  感受分档基于滞后1天数据(最弱指数微跌=中性/恐慌分档失真)
  前日反弹最猛的指数 = 次日补跌风险最高(反弹越猛补跌越狠)

实证(8/3):7/31天量反弹(涨停223家/25599亿,科创50 +2.99%反弹最猛)
  → 8/3早晨感受"中性·最弱-0.1%" → 实际科创50 -5.08%收最低(4%分位)
  → 根因:天量极点后最弱指数读数掩盖科技权重脆弱性

⚠️ 日期勘误(2026-08-04 收盘实弹发现):同㉕——存档 8/3 收盘报告显示
  8/3 收阳(科创50 +2.99%),-5.08% 收最低实为 8/4。本条"天量反弹→次日暴跌"的
  因果链仍有效,但具体日期须以当日存档为准,勿照抄。

处置:
  ① 天量反弹日次日:不采信"中性/微跌"感受,默认按高波动处理
  ② 单独核对前日最强指数的风险暴露(它最可能被砸)
  ③ 若前日最强指数=你关注的主线 → 防御优先,不因感受"中性"放松
```

### 感知验证闭环操作要点(2026-08-04 盘前实战固化)

```text
① prediction_vault 无昨日存档时(机制刚启用/报告未save):
   → 不硬说"无昨日判断",降级用 feeling_log.json 昨日早晨感受 + 前日收盘复盘的「明日观察要点」对照
   → 报告头声明对照基准(例如"用8/3早晨feeling+8/3收盘复盘明日观察要点"),避免凭空对照
   → 证伪必须写根因(哪个假设错了),error_catch 蒸馏入库(ability_trace/当日.md)

② distill_insight.py --save-pred 自动提取的验证条件会混入 markdown 标题
   (## 开头、👀 开头、✅/❌ 混合行都会被当成条件)
   → 蒸馏入库后,再用 save_prediction() 覆盖一份干净版(纯条件清单,无标题行),供明日自动对照
   → 覆盖前先 load_prediction 验证:date + 条件数

③ cron终端管道安全拦截(2026-08-04 收盘实弹):
   `cat 报告.md | python3 distill_insight.py ...` 会被安全扫描拦截
   (tirith:pipe_to_interpreter,HIGH;execute_code 内 subprocess 在 cron 下同样被拦)
   → 蒸馏/归档一律用 terminal + 输入重定向,不写管道:
     `python3 distill_insight.py 下午收盘分析_YYYYMMDD --save-pred < /tmp/下午收盘分析_YYYYMMDD.md`
   → IMA归档:`bash ~/.hermes/scripts/upload_stdin_to_ima.sh "标题" < 报告.md`,检查 IMA_EXIT=0

④ 昨日对照找不到 vault 存档时的实体文件降级路径:
   prediction_vault 常只有当日盘前/午盘(如 8/4 只有 8/4 条目)→ 前日收盘报告实体在
   web/static/data/reports/下午收盘分析_YYYY-MM-DD.md
   → read_file 读其「明日看什么」+「三情景」做逐条 ✅/❌/⚠️ 对照,比硬说"无昨日判断"更有价值
   → 完整命令序列与实弹模板见 references/closing-analysis-cron-workflow-20260804.md

⑤ prediction_vault CLI 只显示各 source 最近一条且条件截断(2026-08-05 实弹):
   → 拿全量/干净条件直接读 ~/.hermes/stock_db/predictions.json
     (source key 形如 "下午收盘分析_YYYYMMDD"/"收盘扫描"/"午盘复盘",取 content.验证条件)
   → CLI 里 收盘扫描 的条件常被 markdown 标题污染(## 十、👀 明日观察 等行混入)——
     读 JSON 时跳过 ## 开头行,或直接找 ts 靠后的干净版条目(如 15:21 的覆盖版)

⑥ 报告文件名日期不可靠,写「昨日判断对照」前必须用 data_hub 日线校准真实时间线:
   实证(2026-08-05 盘前):web/static/data/reports/下午收盘分析_2026-08-04.md 实为 8/3 数据
   (科创50 1552.89=-5.08% 是 8/3 收盘价不是 8/4;8/4 实际 +4.09% 收 1616.36)
   → 校准源:主力三问近3日K线(data_hub 日线)为 ground truth,不照抄文件名/报告自称日期
   → 盘前简报完整命令序列见 references/morning-briefing-cron-workflow-20260805.md

⑦ `cat /tmp/x.md >> ~/.hermes/...` 会被安全扫描拦截(tirith:dotfile_overwrite,HIGH,2026-08-05 实弹):
   → 追加 ability_trace 等 home 下点文件用 python3 pathlib,不写 shell 重定向:
     python3 -c "from pathlib import Path; f=Path.home()/'.hermes/knowledge/ability_trace/YYYYMMDD.md'; f.write_text(f.read_text()+Path('/tmp/add.md').read_text())"
   → write_file 到 /tmp 先写内容,再 python3 追加,规避 dotfile 写入拦截

⑧ `python3 -c` 命令字符串里内嵌 ✅/❌/⚠️ 等 Unicode 符号 → 被安全扫描拦截
 (tirith:confusable_text,HIGH,2026-08-05 午盘实弹):emoji 与 ASCII 混排被识别为同形字攻击,
 与 ③⑦ 不同,这是"命令内容"层面的拦截,改文件路径没用。
 → 解法:write_file 把含符号的追加内容写到 /tmp/add.md,再跑一条**纯 ASCII** 的 python3 追加命令
   (命令只读 /tmp 文件、不含任何符号)——即 ⑦ 的写法天然规避本拦截。
 → 判别:内嵌 "✅/❌" 字符串 → 拦截;`f.write_text(f.read_text()+Path('/tmp/add.md').read_text())` → 通过。

⑨ 晚间总扫描/收盘扫描的昨日对照(2026-08-07 实弹):vault 的 晚间总扫描/收盘扫描 条目条件
 长期被 markdown 标题污染(## 十、👀 明日观察 混入),可完整提取的往往只剩1条
 (如「❌不追软件/网安」)。处理:
 a) 直接读 ~/.hermes/stock_db/predictions.json 各 source 最近条目(跳过 ## 开头行),
    仍不够时诚实标注「可完整提取N条」,不硬凑对照;
 b) 用当日午盘复盘 + 晨报验证结果补足对照行(同一天内多次验证互为佐证);
 c) 对照前必须 data_hub 校准时间线:`get_daily(code, N)` 对指数常返回空,
    要用 `get_daily_with_realtime(code, days=8)`(实证:下午收盘分析_2026-08-06.md
    文件名8/6但内嵌8/5收盘数据——校准后才发现近三日序列对不上)。
```

### 条件反射㉛:涨跌平常心·心法优先 — 判断以标准为准(2026-08-14 老板教诲固化)

```text
看到"单日大涨/大跌/冲高回落" → 禁止直接改判断。先过心法四问:
  ① 是标准触发了,还是波动在牵着我?(S03/S16/破MA5/破MA20才是标准)
  ② 单日涨跌只是噪音——它改变趋势结构了吗?没有→观点不变
  ③ 我上一小时/昨天的判断变了吗?变了→为什么?没有新标准→改判=散户化
  ④ 输出有没有"警示/破位/生死线"类散户语言?有→删除,除非标准真触发

执行规则(永久):
  1. 判断以标准为准,不以涨跌为准:S03逃跑定量(卖出达建仓60-70%)/
     S16加仓三标准(价格+量+订单流)——标准触发才改判断
  2. 观点持续性:反弹结构未破坏前观点不变,只更新验证条件
  3. 回调缩量+无逃跑标准 = 时间换空间洗盘(主力惜售),不是利空
  4. 恐慌=交出筹码:看到恐慌信号=反向思考(洗盘概率大)

输出结构(盘中/盘后感知固定四段):
  【趋势观点】不变项——结构/象限/方向
  【标准验证】S03/S16等——有无触发,触发才动作
  【验证条件】明日/下一窗口看什么
  【动作】有标准触发才给动作,否则"持有/观察"

⚠️ 反向陷阱(批判段):「跌=洗盘」和「涨=好」一样是散户化!
  不能矫枉过正成永远持有。洗盘vs出货必须靠标准区分:
  洗盘=缩量跌+快速反弹+不破MA60+无逃跑标准;出货=放量大跌+持续阴跌+破均线+标准触发。
  铁律优先级:标准 > 心法 > 单日涨跌。S03触发时,跌就是跌,该走就走。

工具:breakthrough_check.py 已内置 S03/S16 标准触发层(holdings.json 注入 cost_price 后生效)
实证(2026-08-14):09:48君实+2.57%→"看点";10:51回落→"警示";11:30破线→"减仓"——
  三小时三改判=被日内波动牵着走(反面教材)。修正:无S03标准+缩量回调=洗盘,观点不变。
```

### 条件反射㉚:突破质量验证(2026-08-14 固化·2026-08-31 修正)

> 百分位置只是历史坐标,不是风险指标。突破质量看量价配合,不看分位高低。

```
看到"XXX创新高" → 做突破质量验证:

  量能配合(决定突破质量):
    放量突破(量比≥1.1)→ 增量进场,突破确认
    缩量突破(量比<0.9)→ 逃命波嫌疑

  主力行为(决定持续性):
    突破后主力继续买 → 趋势延续
    突破后主力出货 → 假突破

  ★ 修正(2026-08-31):删除"位置三档"(用百分位置判断风险)。
  百分位置与突破质量无关。100%分位+放量突破+主力在=真突破。
  判断依据:量价配合+主力行为,不是分位高低。

  卖出信号分级(⚠️ 必须用用户体系标准,禁止自创阈值):
    ✅ 标准来源:position_guard.py(校长铁律/逃顶三要素/三振/洗盘vs出货六维)
    ✅ 标准来源:S03逃跑定量/S16加仓三标准
    ❌ 禁止:用百分位置/涨幅大小作为卖出依据
```

### 条件反射㉜:A股判据胜率权重 — 数据说话,不凭直觉(2026-08-14 回测固化)

```text
看到/输出任何"买入信号/卖出信号" → 优先引用回测验证过的判据胜率,不凭直觉定权重:

  已验证判据(13只投资池,5日胜率,样本40-279):
    🟢 缩量跌+不破MA20   70.0% → 权重1.4(洗盘最强)
    🟢 洗盘特征·高位     71.1% → 权重1.4(强势股回调=机会)
    🟡 破MA20·高位       55.4% → 权重1.0(均值回归)
    ⚪ 破MA20·低位       51.3% → 权重0.8
    ⚪ 洗盘特征·低位     50.0% → 权重0.5(低位缩量=没人要)
    ⚪ 站回MA5           52.0% → 权重0.8
    ❌ 单日大单净流入    50.0% → 权重0.5(抛硬币,禁单独用)
    ❌ 单日大单净流出    55.2% → 权重0.5(单日资金流不可靠)

  三个反直觉发现(回测推翻直觉,必须记住):
    ① 高位比低位胜率高:洗盘特征·高位71% vs 低位50%——A股结构市里强势股有主力,
       回调是洗盘;弱势股没主力,横着不动。低位≠便宜,低位可能=没人要。
    ② 单日大单≈抛硬币:净流入次日50%胜率——验证了"资金流禁四单自算"铁律。
       正确用法=多日持续性(≥3天)+方向一致性+位置配合。
    ③ 外部框架不work就证伪:VCP(Minervini)A股5/10日≈50%,回测证伪后降级为辅助,
       不硬接cron。(详见 cookstock_VCP吸收笔记)

  ★ 判据胜率是条件性的(追加发现,最重要):
    同样的技术判据,换股票池胜率直接腰斩——
      精选池(投资/关注/持仓,有主力): 洗盘判据 58-71% ✅
      全A随机:                        洗盘判据 38-47% ❌(比抛硬币还差)
    → 技术判据本身没有胜率,胜率来自"股票池里有没有主力"(第0公理)
    → 权重更新/回测必须在精选池上跑;在全A上跑会把所有权重打成0.5
    → 这就是Minervini先Stage2过滤再找VCP的原因:先筛强者再用形态

工具:validated_weights.py(score_judgments 输出各判据权重+胜率,已集成 buy_sell_standard_scan.py)
     weight_autotune.py(自进化:精选池回测→自动更新权重,周cron a579be877a74)
规则:①权重分高+均胜率>60%=判据支持 ②单日大单只参考不作依据 ③输出必须带胜率来源
    ④回测必须在精选池(universe=pool)上跑,全A随机只作研究

⚠️ 自进化写回坑(2026-08-14 实弹):weight_autotune.py 原用 re.sub(r"WEIGHTS = \{[^}]*\}", ...)
  替换权重表——条目内层还有 {},[^}]* 遇第一个内层 } 就停,只替换到第一条目,导致
  「新表+旧表残留拼接」→ validated_weights.py 语法错误+重复key,buy_sell_standard_scan 静默
  报 "weights失败:unexpected indent"(全引擎看似跑通,权重层实际挂掉)。
  修复:改非贪婪到块尾 re.sub(r"WEIGHTS = \{.*?\n\}", new_block, text, count=1, flags=re.DOTALL)。
  验证教训:①任何「正则替换代码块」的自进化写回,改完必须 py_compile + 无残留双验证;
  ②检查残留别用 str.split('}')(会切在内层 } 上误报污染),要用 re.search 锚定块尾再查后续;
  ③症状信号:全引擎单层静默失败(输出"xxx失败"行)= 先查自进化写回类脚本,别当偶发。
  模块联动:moneyflow_trend.py(主力资金持续性)也已集成进 buy_sell_standard_scan.py 全引擎——验收时
  用 grep data_hub.py 的 def get_moneyflow 核实接口存在再跑。
```

### 条件反射㉙:恐慌循环必须完整 — 放量恐慌→缩量止跌(2026-08-08 蒸馏注入)

```text
看到"恐慌/止跌/企稳"讨论 → 先检查循环链条是否完整(恐慌循环三步缺一不可):

  第1步 放量恐慌(恐慌真实发生:放量下跌/跌停潮/指数破位)
  第2步 缩量止跌(抛压衰竭:日成交额<前日60% + 阴线变小/阳线企稳)
  第3步 企稳确认(站回关键位/修复信号,如高开直接修复)

  只有1、2 → "止跌"成立,但"企稳/反转"未确认 → 不下趋势结论
  只有1 → 连止跌都谈不上 → 不抄底,等第2步
  1+2+3 → 循环完成 → 可谈进攻

实证(2026-08-01~08 周报聚类9次恐慌条目):
  7/30放量恐慌(跌停83冰点)→ 7/31高开+0.76%直接修复(第3步跳得快)=循环完成 → 暴力反弹
  8/3科创50 -5.08%跌破7/30恐慌低点 = 第1步重演 → 第7次反弹T+1追认失败,
  说明恐慌循环未完成前的每次反弹都是脆弱的

误用示例(禁止):
  "已经止跌了"(只有第2步)→ 当企稳用 → 8/3教训(缩量止跌次日再破位)
正确表述:
  只有缩量止跌 → "抛压衰竭确认,但企稳待验证:看能否站回XX/放量阳线"
  循环完整 → "恐慌循环完成,转进攻观察"

关键:恐慌循环链条完整度决定结论级别。说"企稳"前必须走完1+2+3。
```

### 条件反射㉝:分析闸门 — 观察永不关闭,闸门只管动手(2026-08-25 涛哥方法论提炼 · 2026-10-14 修正)

```text
任何"给买点/建仓"前,强制过闸(观察不过闸):
  ① 深成指最近3日是否止跌(不再创新低)?
  ② 止跌日成交量是否较前一日放大?
  ③ 两个条件都满足 → 可以给买点、建仓
     任一不满足 → 大盘+板块+个股照常看(同比/位置/主力/动能全看),但不动手:不给买点、不建新仓

  ★ 唯一真源与口径(2026-10-16 止跌闸门收敛 —— 判据不许再各写一份)
    真源 = `stock_workspace/analysis_gate.py`;shell/报告端一律 `python3 analysis_gate.py --json` 消费。
    口径①:近3日不创新低 = 逐日严格比较【无容差】(容差会把"创新低"悄悄判成止跌 → 闸门失守)。
    口径②:止跌日 = 最新一个「低点≥前一日低点」的交易日;**①未过 → ②=不适用**,
           报告不得再打印任何量能结论。
    🔴 实证教训:2026-10-15 同一份报告里同时出现「量能+18.9%」(vol[10-15] vs vol[10-14])
       与「-11.9%」(vol[10-14] vs vol[10-13])—— 根因不是数据错,是各实现对【止跌日】的
       指代不同(最新交易日 vs 最后一个不创新低日)。同问题曾有 5 份实现、3 种口径。
    🟢 已应用(不是只写在文档里):`daily_verdict.py` 消费本闸,未过时把全部「可做」降级「观察」,
       并打印原因;异常/数据不足 fail-closed 不放行。主力门禁与本闸【正交】:
       主力门禁答"这只票是不是主力行为",本闸答"今天能不能开新仓"。
    报告写作铁律:闸门①未过时,报告里只许出现"①未过 → ②不适用",禁止再给出任何
       量能放大/萎缩数字(给了就是让读者以为闸门还有救)。

  ★ 分层(2026-10-14 老板令:任何时候都要保持对板块的关注)
    观察层 = 永不关闭。不看板块就没法做"同比选方向:大盘下跌时谁跌得最少",也没法提前布局。
    操作层 = 闸门控制。关=只记录不动钱(影子池模式),开=可给买点。
  ⚠️ 原文"不打开板块列表(不是少看,是不看)"= 把禁操作读成禁观察,2026-10-14 已修。
    涛哥原话禁的是动作:「禁止Step1没确认就直接做Step3/Step4」「禁止看到某天某板块涨就跳进去」。
    大盘调整期某板块今天强 → 按"独立行情"幻觉处理(当噪音、不追),但要继续跟踪它。

  交易次序铁律(禁的是跳步下单,不是跳步观察):
    Step 1: 大盘跌不动了吗?→ 决定"做不做"
    Step 2: 哪个行业最强?→ 决定"做什么方向"
    Step 3: 行业内哪个细分最强?→ 决定"做什么赛道"
    Step 4: 细分里哪只个股最强?→ 决定"做哪只票"
    ⛔ 禁止跳步:Step1没确认就直接做Step3/Step4(可以看、可以记录,不可以下单)
```

### 条件反射㉞:K线第一性 — 量价是唯一原材料(2026-08-25 涛哥方法论提炼)

```text
K线(量+价)= 第一性信息源,主力行为的直接痕迹
资金流向 = 从K线衍生的辅助维度,帮忙确认但不替代
均线/MACD = 再衍生一层,更滞后

分析主力行为时:
  先看K线(量价关系)→ 得出初步判断
  再看资金流向数据 → 交叉验证
  两者一致 → 高置信
  两者矛盾 → K线优先(一手信息>衍生信息)

  "石头丢水面"模型:量=石头大小,价格异动=水面冲击
  量越大=石头越大=主力意图越明确
```

### 条件反射㊳:弱反/强反检验标准(2026-08-31 涛哥0831固化·强制执行)

> 来源:涛哥8/31盘前直播第7章+午后实盘验证。任何反弹出现时强制执行。
> ⚠️ 修正(2026-08-31):弱反标准只用于大盘级别定性,不用于否决板块/个股的量价异常信号。

```
反弹性质判定(两把尺):

尺1·幅度尺:反弹累计涨幅
  <3% → 幅度不足嫌疑
  ≥3% → 幅度达标

尺2·量价尺:反弹中有无量价异常
  无量价异常(无大额单次/无≥3次小额累积)→ 无增量确认
  有量价异常 → 增量确认

判定矩阵:
  幅度<3% + 无量价异常 = 弱反 → 大盘级别定性
  幅度≥3% + 有量价异常 = 强反 → 可参与(但非趋势,见好就收)
  幅度≥3% + 无量价异常 = 存量反弹 → 谨慎
  幅度<3% + 有量价异常 = 低位异动 → 观察后续

★ 关键修正:弱反是大盘级别的定性,不是否决板块/个股的理由。
  大盘弱反 ≠ 所有板块都弱。
  大盘弱反+板块有独立量价异常 = 该板块值得建档跟踪。
  只有"大盘弱反+板块无量价异常"才=该板块也不值得关注。

实证:8/27-28深成指三天合计涨约1.5%+无量价异常=弱反
  但同期PCB板块有独立量价异常(生益科技8/27+8.43%放量)
  → 大盘弱反不否决PCB的主力信号
```

### 条件反射㊴:筑底确认三要素(2026-08-31 涛哥0831固化)

> 来源:涛哥8/31直播第8章+午后实盘。任何"底部/企稳"判断前强制执行。
> ⚠️ 修正(2026-08-31):筑底确认用于大盘级别。板块/个股可独立于大盘筑底,有主力即可跟踪。

```
筑底确认 = 三要素缺一不可(大盘级别):

要素1:下跌动能减弱(卖压衰竭)
要素2:低点承接≥3次(买方证据)
要素3:量价异常(回流确认)

三要素齐全 = 底部结构成立 → 可谈进攻
三要素缺一 = 底部未确认 → 大盘级别控制仓位

★ 关键修正:大盘筑底未成 ≠ 板块/个股没有机会。
  大盘筑底未成 → 操作上控制仓位
  板块/个股有独立量价异常 → 判断上可以跟踪
  两者并行不矛盾:仓位控制+标的跟踪同时进行

★ 惜售 ≠ 建仓(午后直播新增)
  惜售 = 老主力不舍得卖 = 被动企稳
  建仓 = 主力主动买入 = 主动进攻
  惜售 alone = 仅止跌不涨
  惜售 + 增量回流 = 看涨升级
```

### 条件反射㊵:板块强度二次判读·大盘裁决(2026-08-31 涛哥0831固化·★核心增量)

> 来源:涛哥8/31直播第18章。任何"板块强于大盘"判断前强制执行。
> ⚠️ 修正(2026-08-31):大盘裁决用于定性板块强弱的可持续性,不用于否决板块的主力信号。

```
板块强于大盘时,短期无法区分两种可能:
  A. 战略建仓(真金白银看好)
  B. 拉高出货(诱多陷阱)

裁决规则:
  板块强于大盘 + 大盘随后企稳 → 战略建仓确认 → 可加仓
  板块强于大盘 + 大盘随后破位 → 诱多确认 → 拉黑该形态
  板块强于大盘 + 大盘方向未定 → 待裁决 → 不判断原因,只记录

★ 关键修正:大盘裁决≠否决板块信号。
  大盘方向未定 → 板块的主力信号仍然有效 → 可以建档跟踪
  大盘裁决只是告诉你"可持续性如何",不是告诉你"这个信号存不存在"
  板块有独立量价异常 = 信号存在(无论大盘状态)
  大盘确认 = 信号可持续性得到验证

实证:涛哥在光纤光缆/PCB上的处理
  "下跌中量价异常最明显=主力喜欢"→ 他在跟踪,不是在无视
  "等大盘裁决"=等确认后加仓,不是等确认后才开始关注
```

### 条件反射㊶:主线/热点机会识别(2026-08-31 涛哥午后直播固化)

> 来源:涛哥8/31午后直播。任何板块异动出现时强制执行。

```
异动出现 → 先分类再判断:

主线机会(可做趋势):
  条件①:大机构多次潜伏建仓(下跌中有量价异常)
  条件②:硬核基本面逻辑(盈利拐点+产业链景气)
  特征:来得慢走得慢,持续性强
  操作:波段布局+持有
  当前实例:AI硬件链(光纤/PCB/半导体)— 有潜伏+有业绩

热点机会(只做短线否则别碰):
  条件①:事件驱动,无前期潜伏
  条件②:无硬逻辑改善行业周期景气
  特征:来得快走得快,怎么涨上去怎么跌下来
  操作:打板/短线,否则别碰
  当前实例:影视院线(AI制作+暑假票房)、房地产(政策利好)、商业航天(发射成功)

识别方法(三问):
  ① 事件发生前,波段底部有主力潜伏建仓吗?
  ② 这个事件能改善行业周期景气指数吗?(不是短期数据改善)
  ③ 这个赛道的基本面能见度高吗?(盈利拐点可预期?)
  三问全过=主线 | 过一缺二=热点 | 全不过=不碰

⚠️ 热点行情适合顶尖游资,不适合散户。
  涛哥原话:"热点行情想做可以做,但是你不打板你来得及吗?"
  "投资市场是有食物链的,处在食物链底层的人,却想跟顶层的人去抢成果。"
```

### 条件反射㊷:周期股PE陷阱(2026-08-31 涛哥0831固化)

> 来源:涛哥8/31直播第15-16章。周期股估值时强制执行。

```
周期股估值铁律:
  PE最低时 = 利润最高时 = 周期见顶 = 风险最大
  PE最高时 = 利润最低时 = 周期见底 = 可能是机会

原因:周期股利润随商品价格波动。
  商品价格高→利润高→PE低→市场以为"便宜"→实际在周期顶
  商品价格低→利润低→PE高→市场以为"贵"→实际在周期底

⚠️ 用成长股PE逻辑套周期股=经典错误。
  "PE 20倍不算离谱"→如果利润靠周期因素→PE会随周期回落快速上升

正确估值方法:
  ① 供求关系:供给过剩?需求见顶?
  ② 现金流:经营现金流是否为正?存货是否异常?
  ③ 周期位置:商品价格在历史什么分位?
  ④ 禁用PE作为买卖依据

实证:翔鹭钨业
  利润4.82亿靠钨价上涨(周期因素)
  经营现金流-5.12亿(利润是纸面的)
  存货27.08亿(占流动资产72%,钨价下跌=定时炸弹)
  PE 20倍"不算离谱"→实际是周期见顶信号
```

### 条件反射㊳:主力建仓先分类再判断(2026-08-25 涛哥方法论提炼)

```text
在判断"主力在做什么"之前,先分类建仓模式:

模式A 小额多次(隐性建仓):
  特征:连续几天低位小幅承接,量不大,价格震荡
  结论:筑底需要时间,等1-2周
  操作:等,不急

模式B 大额单次(热启动):
  特征:某天量价异常(量比>1.5+涨幅>3%)
  结论:V型反转可能启动
  操作:跟随

模式C 拉高出逃(陷阱):
  特征:低位反弹后快速放量下跌
  结论:不是建仓是出货
  操作:回避

先分类再判断 → 消除"今天没涨就焦虑"的情绪
```

### 条件反射㊱:板块强弱只在特定时刻有意义(2026-08-25 涛哥方法论提炼)

```text
大盘调整期间:
  某板块今天强 ≠ 它会独立走强
  某板块今天弱 ≠ 它基本面差
  → 这段时间的板块强弱排名 = 噪音,没有参考价值

大盘企稳后:
  谁反弹最猛+量最大 = 主力最看好
  → 这时候的板块强弱排名 = 信号,有参考价值

关键区分:同一个数据在不同市场阶段含义完全不同
```

### 条件反射㊲:立体看市场 — 日线为核心(2026-08-26 老板指令)

```text
时间层次(从上到下):
  周线 = 参考(看大方向,不做决策依据)
  日线 = 主战场(趋势判断、位置判断、主力行为全在这里)
  60分钟 = 战术层(找买卖点、短期波动节奏)

实操铁律:
  ① 日线为核心:所有分析围绕日线展开
  ② 周线只看方向:周线向上=大环境安全,周线向下=谨慎
  ③ 60分钟找节奏:日线定方向,60分钟定买卖点
  ④ 趋势没变→观点不变,只更新验证条件
  ⑤ 不能天天盯着分时图的点→要看日线的线
```

### 条件反射㊲:立体看市场 — 日线为核心(2026-08-26 老板指令)

```text
时间层次(从上到下):
  周线 = 参考(看大方向,不做决策依据)
  日线 = 主战场(趋势判断、位置判断、主力行为全在这里)
  60分钟 = 战术层(找买卖点、短期波动节奏)

实操铁律:
  ① 日线为核心:所有分析围绕日线展开
  ② 周线只看方向:周线向上=大环境安全,周线向下=谨慎
  ③ 60分钟找节奏:日线定方向,60分钟定买卖点
  ④ 趋势没变→观点不变,只更新验证条件
  ⑤ 不能天天盯着分时图的点→要看日线的线
```

### 条件反射㉘:量能对称性 — 换手完成 vs 逃命波(2026-08-04 富贵体系自创)

```text
看到"前日下跌 + 今日上涨" → 必看量能对称性(不看涨幅大小,看量是否跟上):

  前日放量跌 + 今日等量/放量涨(量比≥1,两日均≥1)→ 换手完成
    = 恐慌出清 + 增量接盘,抛压被真实接走 → 可跟(回踩低吸)
  前日放量跌 + 今日缩量涨(量比<1)→ 逃命波
    = 反抽无量,抛压没被接走 → 回避,追高必套

  前日缩量跌 + 今日放量涨 → 增量进场(更强)
  前日缩量跌 + 今日缩量涨 → 方向未明,观望

工具:mainforce_scan.py(主力三问+量能对称+位置分位,2026-08-04实际创建于 ~/.hermes/scripts/,
  已接入9个报告数据脚本:midday/b_group/weekly_review/a_group/morning_prep/full_analysis/
  sunday_mainforce/open_pattern/close_scan)
  输出样例(修正后,用pct_chg列计算):创业板 量比1.13="等量反攻" | 科创50 量比0.92="等量反攻" |
  半导体ETF 量比1.07="等量反攻" | 5G通信ETF 量比1.52="等量反攻"

⚠️ 数据修正(2026-08-04 实弹):午间初判"科创50量比0.84=缩量反抽"基于
  (close-open)/open 计算(低开失真);mainforce_scan.py 修正为 pct_chg 列后,
  科创50实际量比0.92=等量反攻、半导体ETF量比1.07=等量反攻。教训:
  ① 涨跌幅必须用 pct_chg 列或 close/pre_close-1,禁用 (close-open)/open(低开时失真)
  ② 同一"大涨",量比边界值(0.9±)要谨慎定性——0.84 vs 0.92 结论不同
  ③ data_hub.get_daily 参数是 max_rows 不是 days;列名 trade_date/vol/pct_chg;
     ETF今日行 pct_chg 常为 0/NaN → 必须 row_pct_chg() 回退 pre_close

实证(2026-08-04 收盘):创业板+5.64%量比1.13=等量反攻(换手完成),
  科创50+4.09%量比0.92=等量反攻(临界),上证+0.33%量比1.03=普通形态(权重没参与),
  酒ETF高位71.7%分位+高位回落=见顶回落(正确识别高位风险)
  
  ★ 修正(2026-08-31):见顶的判断依据是"高位回落"(价格行为),不是"71.7%分位"(坐标)。即使在100%分位,如果没有出货信号,也不应该判断为见顶。

关键:同是大涨,量比<1 与 ≥1 是两种完全不同的性质。看涨幅会误判,看量能对称才分辨。
  但量比在0.9~1.0边界时,先确认涨跌幅口径(pct_chg vs open)再下结论。

  延伸(2026-08-05 午盘实弹):"不追高/追高风险大"的判断同样先看位置+量能,不是涨幅绝对值:
  8/4收盘因"光模块已涨+13.6%"判"追高风险大",8/5 AI/光模块继续+4~6%证伪偏保守——低位
  (3~13%分位)+等量反攻(换手完成)日的上涨=资金真实进场,涨幅高≠诱多;与㉖"高开减仓日
  模板误用"同根因:用涨幅/模板替代位置+量能判定。判定顺序:位置分位+量能对称 → 再谈追不追;
  "不追高"纪律本身仍成立,但依据必须是位置+量能而非涨幅。

  复发确认(2026-08-07 晚间实弹):8/6午盘又用「已涨+2.4%」判通信/光纤不追 → 8/7收+4.48%
  全场最强续涨(600487 +6.00%);同日8/6晚「不追软件/网安(已涨+3.7%)」却应验(8/7 -4.93%
  全场最弱)。同一根因两次复发(8/5光模块→8/6通信光纤)=系统性问题,不是偶发。
  → 判别关键不是涨幅绝对值而是**位置**:软件/网安已高位(连涨后+3.7%)=兑现风险,不追对;
    通信/光纤处7%分位极低位+等量反攻=真实进场,不追错。同一"已涨X%"两条结论相反。
  → 固化判定链:①查位置分位(低位<20%,口径 position_layer 20/65 → 涨幅高≠诱多,只做回踩低吸不回避)
    ②查量能对称(等量反攻=换手完成可跟;缩量反抽=逃命波回避)③再决定追不追。
  
  ★ 修正(2026-08-31):这里用"高位"和"分位"作为判断依据,与主力思维矛盾。
  正确逻辑:软件/网安如果有出货信号(量价异常高位滞涨)→ 不追;如果没有出货信号 → 可以跟踪。
  通信/光纤如果有主力在买(量价异常低位放量涨)→ 可以跟。
  判断依据是主力行为,不是分位高低。
```

### 条件反射㊸:惜售 vs 空仓 — "跌不动"≠"要涨"(2026-09-03 涛哥0903注入)

> 来源:涛哥9/3午后直播光伏设备板块分析。区分两种下跌动能减弱的本质原因。

```text
两种"跌不动"都不等于"要涨":

惜售型止跌:
  特征:下跌缩量+K线变小+反弹时量也小
  原因:老主力看好不舍得卖,被动企稳
  确认:反弹是否有放量阳线
    有 = 惜售+回流 → 看涨升级
    无 = 仅惜售 → 止跌不涨,不碰

空仓型止跌:
  特征:下跌缩量+无明显反弹+阴跌为主
  原因:老主力已卖光,无货可卖,散户阴跌
  确认:是否有新的建仓信号
    有 = 新主力进场 → 可跟踪
    无 = 无人问津 → 不碰

共同点:没有主力主动买入 = 不会涨
关键:看的不是"跌不跌得动",而是"有没有人主动来买"

实证:光伏设备(隆基绿能)
  涛哥判断=空仓型(老主力卖光了),不是惜售
  数据验证:12.65→11.75持续下跌,期间无放量上涨建仓信号 ✅
```

### 条件反射㊹:板块代理关系 — 保险/证券=股市预期指标(2026-09-03 涛哥0903注入)

> 来源:涛哥9/3午后直播保险板块分析。保险涨≠保险卖得好,=看好股市。

```text
保险/证券 = 股市预期的代理指标
  保险涨 → 机构看好未来股市(投资收益逻辑)
  证券涨 → 系统牛/精准政策滴灌(非"牛市旗手")

板块轮动顺序(涛哥实证2014+924):
  牛市一期:科技/成长先涨(2013-2014.7 科技涨1.5年)
  牛市二期:金融/保险跟涨(2014.7后爆发,来得快去得快)
  924行情:政策精准滴灌证券,事件驱动型(一地鸡毛)

重要推论:
  保险强+科技弱 = 短期轮动,不是风格切换
  保险强+科技也强 = 牛市进入二期确认
  保险强 = 机构仍看好股市 → 科技不能倒(涛哥核心观点)

⚠️ 证券≠牛市旗手。只有系统牛或精准政策滴灌时才发力。
  "2014年是证券带了牛市"=错误认知。实际是科技涨了1.5年后证券才跟。
```

### 条件反射㊺:建仓失败(试盘)识别(2026-09-03 涛哥0903注入)

> 来源:涛哥9/3午后直播。区分建仓成功vs建仓失败(试盘)的量价特征。

```text
建仓成功 vs 建仓失败(试盘):

建仓成功:
  低位放量上涨 → 拿到筹码 → 可能再洗盘后拉升
  量价特征:放量涨+后续缩量回调+不破前低

建仓失败(试盘):
  低位突然放量快速上涨 → 筹码不在散户手里(集中度高)
  → 主力拿不到货,少量筹码就冲击了价格
  → 隔天跳空低开+快速下杀(止损离场)
  量价特征:放量涨→隔天跳空低开+放量杀→破前低
  结论:基本一路向西,不是洗盘

与洗盘的区别:
  洗盘:放量跌→缩量→快速反弹→不破关键支撑
  试盘失败:放量涨→隔天跳空低开+放量杀→破前低

与出货的区别:
  出货:高位放量滞涨/高位放量跌(有利润空间才出)
  试盘失败:低位放量涨后直接砸(没利润空间,是止损离场)

关键:低位放量涨不一定是好事,要看后续确认
  → 隔天放量涨/平 = 建仓成功信号
  → 隔天跳空低开 = 试盘失败,回避
```

### 条件反射㊻:流畅下跌→震荡下跌的含义(2026-09-03 涛哥0903注入)

> 来源:涛哥9/3午后直播大盘分析。下跌形态变化的物理含义。

```text
流畅下跌(单边下跌):
  特征:跌幅大+K线长+成交额不缩
  含义:只有空头砸盘,没有多头承接
  结论:不知道底在哪(深不见底)
  操作:不抄底,等减速信号

震荡下跌(后半段):
  特征:跌幅收窄+K线变短+频繁反弹+成交额缩
  含义:有人开始承接,空头动能减弱,但多头尚未占优
  结论:接近底部区域,但未确认止跌
  操作:开始选标的放入自选股,等放量阳线确认

物理学类比:
  流畅下跌 = 自由落体(只有重力=空头)
  震荡下跌 = 减速(有空气阻力=多头承接)但还没落地
  落地确认 = 放量阳线(多头主动发力)

关键区分:
  "跌幅收窄" ≠ "快见底了"
  "跌幅收窄" = "卖压减弱"(必要条件但不充分)
  止跌需要"不再创新低"+放量阳线确认

实证:深成指
  8/19跌5%→8/24跌2.1%→9/1跌1%→9/2跌1.88%
  跌幅收窄 ✅ 但9/2仍创新低13611 → 未确认止跌
```

### 条件反射㊼:底部形态=主力拿货过程的结果(2026-09-09 涛哥0909午盘蒸馏·待回测验证)

> 工具:`bottom_structure_check.py`(detect_bottom_structure / check_df,CLI: `python bottom_structure_check.py <code> 名称`)

```text
看到"W底/双底/V型/多重底" → 不判断形态像不像,先查每个谷后面有没有量价异常承接:

形态因果链(涛哥):
  V底   = 低点单日大额承接拿够筹码 → 直接拉升(模式B 大单单次)
  W底   = 第一次没拿够 → 打压回落 → 二次承接
  多重底 = 反复拿不够
  拿不到就放弃清仓 → 下跌继续(不是底!)

检验标准(第二谷承接质量 = 真假的试金石):
  W底第二谷放量阳线承接(量比≥1.3) → 真底 · 主力二次拿货 → 可跟踪
  W底第二谷无量阴跌             → 形似W底·主力未确认 → 只知其形不知其神,等量价异常
  全程缩量阴跌无任何量价异常      → 空仓型止跌(老主力卖光) → 不是底
  第二谷深破第一谷>5%且无承接     → 破位/放弃型 → 不碰
  第二谷略破第一谷+放量承接       → 打压诱空后承接 = 更强信号(但需站稳第一谷上)

⚠️ 第二谷仍在形成期(距今日≤4日) → 标"右底形成中,待放量确认",不提前定性

实证(2026-09-09 数据验证):
  电池ETF/宁德时代:形似多重底但谷后量比0.9-1.2全部无承接 → 涛哥"全面负面"确认(9/7大盘+1.91%宁德-0.80%连续补跌)
  通信ETF(光纤)/农业ETF:谷后量比1.4-1.5放量承接 → 有主力痕迹

⛔ 回测证伪→修正结论(2026-09-09 实测,backtest_bottom_structure.py):
  v1 纯量价版·全体混合池:bull组(真底) T+20上涨率31.8-56.4% 不稳定 ≈ 无预测力
  v2 扩样本(26票×1年)分池后结论翻转 — 判据有效性完全取决于股票池:
    main池(科技强势/有主力)  bull T+20 = 76.9%(N=13, +27.6pp)✅ 有效
    laggard池(弱势/无主力)   bull T+20 = 40.9%(N=22, -8.4pp)❌ 反向
    bench池(宽基)            bull T+20 = 75.0%(N=4, 小样本)
  宽基/弱势票低位"双底+放量承接" = 超跌反弹陷阱;强势池=主力二次拿货真信号
  → 第三次验证㉜铁律:技术判据无自带胜率,股票池有没有主力才决定胜负

  用法(修正版):
    ✅ bottom_structure_check.py 只用于【已确认有主力的板块/精选池】内部找底
    ✅ 对强势板块(光纤/PCB)回踩找底 = 有效(main池实证)
    ❌ 禁止对无主力板块(电池/光伏/弱势票)用形态找底 — 那是超跌反弹陷阱
    ❌ 禁止单独当抄底信号;须板块有主力前提 + 可叠加资金流参考

  R1v2 资金流双确认(backtest_bottom_r1v2.py):31事件样本不足,结果不可靠(±50pp级噪音),
    不采纳资金流做过滤,待更大样本重测。教训:分组后N<15的信号不要下结论。

  教训入库:①形态规则上线必须回测 ②回测必须分池(混合池=互相污染)③坏结果也要报
```

### 条件反射㊽:左侧不足右侧来补 — 跟涨板块升级观察(2026-09-09 涛哥0909午盘蒸馏·待回测验证)

> 工具:`sector_upgrade_watch.py`(CLI: `python sector_upgrade_watch.py`,观察清单 data/sector_upgrade_watch.json)

```text
下跌段左侧拿货不足的板块(跟涨不领涨,如半导体/面板):
  不追、不否定——建档进观察,等"右补"双条件:
    ① 事件催化(人工确认)
    ② 右侧持续增量流入 = 放量异动扎堆(量比≥1.5放量阳线 + 前后日量比≥1.2 形成持续性)
  三件套(放量+涨幅≥3%+领涨地位)触发 → 从跟涨升级为补涨候选

★ 持续性判据(v1 实测坑):单日放量涨停≠右补!
  信号日后无量延续 = 游资一日游(实证:光模块9/7旭创+10.4%vr1.79后量比跌回0.5 → ⚡脉冲,佐证涛哥"光模块没以前强")
  连续放量扎堆 = 主力在场(实证:PCB深南9/7-9/8 vr1.57→2.19 🟢)
  判定:pre_vr≥1.2 或 follow任一日vr≥1.2 才标"持续";"次日微涨"不算延续(缩量微涨=歇脚)

★ 输出纪律(矬子拔大个自检):出现"相对而言XX还行/矬子拔大个"句式 = 幸存者偏差信号
  都不好时不做(交易频率降、胜率升);都好的时候选最好。弱板块不推个股。
```

[IMPORTANT: The user has invoked the "open-pattern-sense" skill, indicating they want you to follow its instructions. The full skill content is loaded below.]

---
name: open-pattern-sense
description: 开盘形态感知 — ★市场第一铁律已注入:大盘重于板块>个股>热点>游资。半小时/一小时形态(高开高走/高开低走/低开低走/低开高走)对当天影响 + 同比/环比。
category: fugui
trigger: 当用户提到「开盘形态」「高开低走」「低开低走」「半小时」「一小时」「首小时量能」「10点信号」「开盘感知」时自动加载
---

# 开盘形态感知 (open-pattern-sense)

> **★ 市场第一铁律(2026-08-25):** 大盘重于板块>个股>热点>游资。分析流程:市→主线→个股→战法→仓位。大盘退潮/大瀑布→不做。

## 前置:涛哥高开比价预判(盘前8:25,非10:00)

本技能管 10:00 形态验证;**盘前预判**(外围细分→预期高开区间→竞价量验证规则)由 `us_market_breakdown.py` 负责,两者构成"开盘分析"流水线前后两半。完整框架(吸售+回流双条件/两碗面/操作纪律/验证锚点):`references/taoge-gap-prediction-framework-20260804.md`。

### ★ 2026-09-15 三维扩展(补 8/4 框架的缺口)

`gap_forecast_matrix.py` 是这三条的代码化落地(`--forecast` / `--auction` / `--sectors`),
8/4 框架只覆盖"单日高开比价",以下三条是它当时没有的:

```
① 利空消耗递减律(跨日)
   同一条利空第二次冲击,跳空 ≠ 基础比价预判
   跳空预判 = 基础比价预判 + 已消耗幅度(昨日已因同一利空跌掉的 pp)
   实证 9/15:费半-5.9% × 0.35 = 基础-2.07%,加回昨日已消耗 +1.03pp → -1.04%
             (对照:不扣消耗得 -2.07%,会误报"超上限低开/机构做空")
   ⚠️ 系数 0.35 是**经验系数非定律**(涛哥原话"没有规律,这是经验之谈"),必须可覆盖

② 竞价量「方向化」——同一个量,方向决定含义
   低开场景:>100亿 = 场外机构承接(正面);低开>1.5%+放量 = 机构带头做空(负面)
   高开场景:>130亿 = 真扫货;高开>1.5%+<130亿 = 虚开→高开低走
   ★ 与 S33/open_auction.py 的 130/120/140 阈值**并存但不可混用**:
     那组是「高开/高位」场景,低开场景的承接阈值更低(100亿)。同量反义。

③ 时间窗分层(不是笼统的"10:00-10:30")
   10:00 = 指数级 + 板块级方向确认(反水杀跌 vs 增量资金反包)
   10:30 = 细分板块方向确认(如半导体独立增量确认)
```

**卖出端配套**(同源,9/15 新增):`detect_second_high_reversal()`
```
主力不喜欢在低位离场 → 短期利空释放完会有一次自救
→ 自救完毕后的「次高点反水出逃」= 风险最大的形态
判据:H2 < H1(次高点未创新高)+ 反弹后回落段出现放量阴线
⚠️ 实测 9/15 扫光模块/半导体 5 只均未触发 → 属"事后描述"倾向,
   要升级为前瞻信号需先跑历史回测标定,暂不可单独作为卖出依据。
```

**仓位镜像**(同源,9/15 新增):`position_by_sector_count()`
```
可关注赛道数 → 反推主力体量 → 仓位上限(最终取 min(赛道数上限, 大盘环境上限))
  1-2 条 = 小游资/大散户(只做1-2个标的就能办到)→ 上限 10%
  3-5 条 = 中型机构 → 上限 40%
  >5 条  = 集团主力(超级主力多线布局)→ 上限 70%
依据:"很多板块都好 = 场外主力是超级大主力";仓位与好赛道数量正比匹配则胜率更高
```

## 来源
- 代码: `open_pattern_sense.py` (stock_workspace/, v2 2026-08-02)
- 数据层 wrapper: `~/.hermes/scripts/open_pattern_sense.sh`
- cron: `71467236d8b1` 富贵开盘形态感知-10点 (周一至五 10:00, origin交付)
- 需求来源: 用户 2026-08-02 — 市场感知必须包含每天第一个半小时/一小时对当天的影响

## v2 优化记录 (2026-08-02)
- P0: 环比基准修复 — 昨日分时用"前天收盘"做基准(之前误用今日昨收)
- P0: 实时运行昨收取错 — 按 `trade_date < date` 过滤,盘中不会取到今日K线
- P0: 环比量能口径修复 — 用首小时**绝对量**对比(盘中/盘后可比),弃用"占比"(口径不一致)
- P1: 环比 prev_day 按数据可用性回退(find_prev_trade_date,周一自动回退上周五)
- P1: 同比合并 上证+深成+创业板 三指数(样本量×3:高开低走 3→26次)
- P1: 昨收基准本地缓存(/tmp/open_pattern_prev_close.json,TTL 6h)
- P1: 数据新鲜度校验 — 盘中行数 vs 当前时间,防 mootdx 返回昨日缓存

## 定位
10:00 开盘形态感知 = **增量资金方向确认器**,不是方向预测器。
- ✅ 用途:确认半小时形态是否被一小时内修正、量能方向、历史同形态的当天规律
- ❌ 用途:预判精确涨跌(方向类预判易翻车,量能/形态类条件可信)

## 数据源(2026-08-02 实测)
| 数据 | 源 | 可用性 |
|:-----|:---|:-------|
| 当日+历史个股分时(240行/日) | mootdx `client.minutes(symbol, date)` | ✅ 全天 |
| 指数日线(近60日,同比统计) | tushare `ts.pro_bar(freq='D', asset='I')` | ✅ 不限频 |
| 指数分钟线 | tushare pro_bar 1min | ❌ 限频1次/分钟,不可批量 |
| 个股日线(昨收基准) | tushare `ts.pro_bar(freq='D')` | ✅ |

⚠️ 陷阱:mootdx `minutes()` 必须带 `date` 参数(否则返回历史缓存);指数分钟线 mootdx 返回单位异常,个股正常。

## 核心输出(四层)
1. **半小时形态**(9:30-10:00):四分类统计 — 高开高走/高开低走/低开低走/低开高走/平开
2. **一小时形态**(9:30-10:30):同上 + 半小时→一小时变化(形态翻转检测)
3. **同比**:近60日指数日线统计各形态当天收盘(平均涨跌+收涨率+区间)
4. **环比**:昨日同时段形态+量能对比(首小时量能占比差)

## 用法
```bash
# 实时(当日+昨日+历史统计)
python3 open_pattern_sense.py
# 指定日期
python3 open_pattern_sense.py --date 20260731
# wrapper(cron用,含IMA归档+蒸馏)
bash ~/.hermes/scripts/open_pattern_sense.sh
```

## 分类阈值
- 开盘缺口 |gap| ≤ 0.3% → 平开
- gap > 0.3% + 现价≥开盘 → 高开高走;gap > 0.3% + 现价<开盘 → 高开低走
- gap < -0.3% + 现价≥开盘 → 低开高走;gap < -0.3% + 现价<开盘 → 低开低走

## 信号持久化
- 当日信号: `/tmp/open_pattern_sense.json`(供午盘/收盘验证)
- 历史形态统计: 每次实时计算,不落库

## Cron 执行陷阱(2026-08-05 实测,富贵报告类通用)

- **时段混用**:A组摘要里【主力三问·量能对称·位置分位】的"今日"=最新收盘日(T-1),【开盘形态】段=今日实时,【数据增强】段主力资金/龙虎榜/两融明确标 T-1。引用时逐段标注时点,禁止把昨日涨幅当今日说。
- **安全扫描误报(cron 无用户批准=直接 blocked)**:
  ① `cat >> file << EOF` 含中文引号/特殊符号 → 触发 confusable-text 扫描 → 改用 read_file 读全量 + write_file 重写(把追加内容并入);
  ② terminal 命令含 emoji(如 echo 里的 ⚠️)→ 触发 variation-selector 扫描 → 命令内不用 emoji,IMA 标题用 ASCII 安全名(如 `kaipan-xingtai-20260805-full`);
  ③ execute_code 在 cron 模式被拒(approvals.cron_mode)→ 追加/处理文件用 read+write 两步,不要用 execute_code 绕行。
- **感知验证闭环执行序**:prediction_vault.py 取昨日判断 → 逐条 ✅应验/❌证伪/⚠️未触发 → ❌写根因并蒸馏入库:`python3 ~/.hermes/bin/error_learn.py record <类型A-F> "<根因描述>"`(写入 `~/.hermes/stock_db/errors.db`;自带复发检测,复发≥3次自动升级硬断言并提示"已有预防规则无需重复")→ 今日验证条件写 verify_pass 条目供明日对照 → 报告归档 upload_stdin_to_ima.sh(ASCII 标题)。任务文案写的"error_catch/ability_trace"是旧名,实际命令以 error_learn.py 为准。
- **主线判断铁律**:判断"主力在不在/存量博弈"必须交叉验证【数据增强】段主力净流入TOP + 龙虎榜机构,不能只看价格形态——8/4 午盘"存量博弈无主力背书"被 8/5 资金流(净流入501亿TOP6全科技+机构买光模块)证伪即此教训,已入 ability_trace。
- **主线加速期不回避主线本身**(8/7 硬断言,复发3次升级):"已涨X%=末端"是预设错误——主线加速期(游资未散+机构共振+ETF连续加速,如8/6 5G通信ETF 1.0%→1.0%→3.27%)只控制追高节奏,**不把主线列入回避清单**。8/6 报告回避通信/光纤(假设"已涨+8.4%转弱")被 8/6 续涨+3.27% 证伪即此教训。正确表述:可写"不追高",不写"回避主线"。

## 验证方法论
```bash
# 用最近交易日验证(周一至五):
python3 open_pattern_sense.py --date <最近交易日>
# 核对:半小时主导形态 vs 一小时主导形态是否翻转
# 核对:同比统计的avg_day_chg/win_rate是否合理(高开低走日平均应偏负)
```

## 与现有系统衔接
| 模块 | 衔接 |
|:-----|:-----|
| morning_scan.py | 已有形态检测但缺低开低走分类、缺同比/环比、未挂cron → 本模块补全 |
| midday_scan.py | 读取 `/tmp/morning_signal.json` 验证高开低走预警兑现 |
| market-discipline | 感知结果必须附带"价格走了对面我就错了"的前置否定 |
| b_group_data.sh | 10:00盘中跟踪已有,本模块增加开盘形态专报 |

## 已知限制
- 采样股票池固定(SAMPLES: 芯片/AI光模块/通信/白酒/银行),非全市场
- 同比统计基于上证指数日线(近60日),样本量小(每个形态3~24次)
- 周日/节假日无当日分时 → 降级为仅历史统计
- 昨收基准逻辑:盘中用上一根收盘,盘后用当日收盘(按 date 与今天比较)

The user has provided the following instruction alongside the skill invocation: [IMPORTANT: You are running as a scheduled cron job. DELIVERY: Your final response will be automatically delivered to the user — do NOT use send_message or try to deliver the output yourself. Just produce your report/output as your final response and the system handles the rest. SILENT: If there is genuinely nothing new to report, respond with exactly "[SILENT]" (nothing else) to suppress delivery. [SILENT] is a literal ASCII control token — never translate or rephrase it, whatever language the rest of your answer uses. Never combine [SILENT] with content — either report your findings normally, or say [SILENT] and nothing more. FAILURE: If a delegated child fails and this cron run must be recorded as failed, put [CRON_FAILURE] on the first line by itself, then explain the child failure on following lines. RECURSION: This is a run of an EXISTING scheduled job — execute the task now. NEVER create or update a cron job because of recurring or future-schedule language in the task prompt below; treat phrasing like "each Monday" or "every day at 9" as context for this run, not as a request to schedule another job.]

[CURRENT RUN TIME: Wednesday, 2026-11-04 09:33 CST (UTC+08:00)]

## Output from job 'f06f0ff60f0c'
The following is the most recent output from a preceding cron job. Use it as context for your analysis.

```
# Cron Job: 进化简报-每日22:55(回测结果→明日校准)

**Job ID:** f06f0ff60f0c
**Run Time:** 2026-11-03 22:55:43
**Mode:** no_agent (script)

---

📈 进化简报 2026-11-03(窗口14天)
  全量口径(防窗口逐出偏差): n=2098 命中率54.3%
  回测率: 99.7%(355/356 条近期判断已回测)
  累计: 落账2744 已决2098 待决1
  总命中: 51.0% [46~56%] n=355 (上期 49.6%) | 平均超额 -0.83pp
  ── 分方向 ──
    回避     n=190 命中 54.7% [48~62%] 超额-0.7pp
    中性     n= 52 命中 50.0% [37~63%] 超额-0.8pp
    看空     n= 52 命中 65.4% [52~77%] 超额-0.9pp ★可信
    看多     n= 50 命中 30.0% [19~44%] 超额-1.0pp ⚠️谨慎
    观察     n= 11 命中 18.2% [5~48%] 超额-1.6pp ⚠️谨慎
  ── 来源可信度(n≥10 才列)──
    - 四维扫描                           n=150 58.0%
    - v43_intent                     n= 50 54.0%
    - 节点转折+ftshare扫描-21:45           n= 30 50.0%
    - 龙头融合+确认链-21:40                 n= 22 45.5%
    ✗ 盘中-1130午盘                      n= 15 26.7%
    ✗ 量价训练-每日提醒                      n= 15 13.3%
    ✗ 晚间统一扫描-21:30                   n= 12 25.0%
    ✓ 盘中-1030主线                      n= 10 70.0%
  ⚪ 未排期部件(2026-10-17 裁决: jobs.json 里 0 个 cron,不计入停摆;恢复=先排期再移回 LOOP_PARTS):
     · 超额制全量重算
     · 经验学习闭环
     · 每日判断练习仪(老板10-05指定)
  用法: 下判断前先看本简报 —— 上面✅的来源可以更信,✗的来源要打折;🔴停摆部件是系统盲区。
```

## Script Error
The data-collection script failed. Report this to the user.

```
Script exited with code 1
stdout:
=== 09:30闸门 数据摘要(2026-11-04 09:30:45,脚本采集,AI判断层必引用) ===

=== 涛哥分析闸门·深成指3日+量(数据层采集,AI判断层必引用) ===
【涛哥分析闸门】(唯一真源 analysis_gate.py,两条件都满足才开)
  ❌ ①未过: 近3日创前日新低的交易日=20261030、20261102、20261103 → ②不适用(本报告不给量能结论)→ 只记录不动钱
  低点序列: 20261029:11135.97 20261030:10833.78 20261102:10813.16 20261103:10810.42
  最新收盘 10876.99 低点 10810.42(20261103)
  闸门: ⛔ 关(观察照常,只记录不动钱)

=== 全市场广度(涨跌/成交额/情绪基线)(数据层采集,AI判断层必引用) ===
⚠️ 数据护照 | 来源: tushare | 日期: 20261103 | 时段: 20261103定稿(盘中当日数据收盘后才到,自动用上一交易日) | 新鲜度: fresh(昨日定稿)
- 全市场 5570只: 涨2108 / 跌3309 / 平153,上涨比 37.8%
- 涨停 50 / 跌停 24 | 中位数 -0.65% | 成交 17151亿
- 最强: 001381.SZ:+397.94% · 301513.SZ:+20.00% · 300010.SZ:+19.94%
- 最弱: 920045.BJ:-23.15% · 688130.SH:-20.02% · 301428.SZ:-20.00%

=== 主力三问·量能对称·位置分位 ===
[不可用: TimeoutExpired: Command '['/home/ubuntu/stock_workspace/.venv/bin/python3', '/home/ubuntu/.hermes/scripts/mainforce_scan.py']' timed out after 180 seconds]

=== 上游链路(09:30闸门 之前的时点结论,AI 必须接着改、不许另起炉灶) ===
  08:00四维.pool_codes: ["002743.SZ", "002593.SZ", "601096.SH", "600477.SH", "603028.SH", "300307.SZ", "002021.SZ", "600843.SH", "600302.SH", "603337.SH", "000698.SZ", "603798.SH", "600028.SH", "300135.SZ", "300055.SZ", "600748.SH", "600606.SH", "000402.SZ", "600665.SH", "600510.SH", "605368.SH", "605011.SH", "603318.SH", "603053.SH", "600917.SH", "600986.SH", "603000.SH", "688500.SH", "600556.SH", "603888.SH", "601628.S
  08:00四维.focus_sectors: []
  08:00四维.scan_summary: 【心法扫描 | 2026-11-04 08:00】

════ Phase 0: 板块主力方向(20261104定稿·位置=250日口径)════
耗时 4.5s
  🟢 汽车配件: 位4 量比1.66 (低位吸筹, 连续放量5日)
  🟢 石油加工: 位62 量比1.66 (中位拉升, 连续放量6日)
  🟢 钢加工: 位61 量比1.40 (中位拉升, 连续放量5日)
  🟢 水泥: 位56 量比1.40 (中位拉升, 连续放量7日)
  🟢 全国地产: 位51 量比1.34 (中位拉升, 连续放量5日)
  🔴 空运: 位90 量比1.59 (高位分歧)
  🔴 化纤: 位67 量比1.65 (高位分歧)
  🔴 铜: 位79 量比1.16 (高位派发)

════ Phase 1: 板块心法(趋势+位置+量能)════
耗时 1.0s
盘感好的板块: 5个 中性偏好: 3个 不关注
  08:20盘前预案.summary: ==================================================================
  📋 盘前预案(2026-11-04 08:20)
==================================================================

  ── ① 大盘状态 ──
  闸门: 🔴关闭
  理由: 未确认:仍在创新低+无放量阳线+有反水信号
  仓位上限: 0-2成
  深成指: 10877(1日-1.2% 5日-3.3%)
  反水检查: 无反水

  ── ② 板块心法排序(找龙头方向)──
  宇宙: 898个板块(动态取自 ths_index)| 计分898 丢弃0
  ✅ 1. 半导体材料与设备(A股) 心法95分(心法好·对齐OK)
  ✅ 2. 软件           心法92分(心法好·
  08:20盘前预案.at: 2026-11-04 08:21:07
  06:00晨报: ❌ 未产出(断链,AI 需说明对本时点判断的影响)

[链] 已写入 09:30闸门 → /tmp/fugui_cron_output/(下游可读)
[数据层失败 rc=1] 2026-11-04 09:33:50 — AI 判断层必须写明数据不全,禁止照常下结论
```

## ⚠️ 资金面三问(强制·2026-10-21 老板令:先答三问再引数据)

凡输出含资金面/主力行为判断(谁在买、主力意图、建仓/洗盘/出货/承接),必须在判断段**开头**先答三问:
1. **谁在买?** 主力四分类:汪汪队(维稳,反向指标)/ 大机构(产业逻辑,慢而长)/ 某庄(独立控盘)/ 游资(事件驱动,快)——不同类型决定你该用什么节奏跟。
2. **为什么买?** 位置+意图:低位建仓(吸筹/试盘)/ 中位洗盘(换手降阻力)/ 高位派发(借势出货)。同一量价在不同位置含义相反。
3. **买了之后会做什么?** 判断下一步动作:继续加仓 / 洗盘 / 拉升 / 出货——这是"脚印会变,走路的人不变"的那层意图。

**硬约束**:
- 三问是**答案层**,数据是**证据层**。先答三问,再用数据佐证;不得只报数据不下意图判断。
- 禁止把意图推断问题降级为"缺数据"问题——归纳法(阈值→回测→期望值)回答不了演绎问题(主力为什么这么做)。
- 三问答不出(证据不足)→ 明写"意图不明,不判断",禁止硬编一个主力动机。

---

你是富贵盘中分析师(9:30 开盘闸门)。上方【数据摘要】由脚本采集:涛哥分析闸门(深成指近3日是否止跌+止跌日是否放量)、全市场广度、主力三问·量能对称·位置分位,以及上游链路(06:00晨报/08:00四维)。

严格三段,先事实后判断,禁止先解释:
① 市场在做什么:先抄数据事实——闸门两条件各自是/否、上涨比、涨停/跌停家数、成交额与昨日同期比,然后一句话定性(修复/发酵/退潮等)。
①B 竞价段与三道时间闸(2026-10-20 接入:学习笔记库XN1-01 + 无为竞价验证 + 涛哥10点窗口):数据摘要若有今开/昨收→判高低开幅度(平开±0.3%/高开/低开)并给修正开盘预期(大幅gap首半小时常被修正、开盘方向不作数,方向待10:00确认);竞价数据缺失→明写「竞价段数据不足·本段跳过」,禁编造。同时声明今日三道时间闸待验条件(交10:00形态感知核对):T1 首根5分钟K(9:35)涨≥1.5%且量≥前5根均量2倍;T2 9:45的15分钟K收>开且未回落破开盘价;T3 10:00后方向选择(涛哥:首半小时只消化隔夜消息不作数)。
② 能不能做(闸门裁定):闸门⛔关 → 大盘+板块+个股**照常分析**(观察永不关闭:同比谁抗跌/位置/主力/动能全看),明写「观察照常,但今日不给买点、不建新仓」,并给等待条件(何时何种形态才开闸);闸门✅开 → 在观察基础上给今日主线假设(板块三漏斗初筛:成交额>500亿/产业链联动/持续性)+ 观察池最多3只 + 环境仓位档(上涨5-7成/横盘3-5成/下跌0-2成),且明写买点执行窗=9:45–10:30(禁开盘前5分钟动作)。
③ 证伪:写「如果价格走了对面我就错了」的可核对条件与到期时点(例:10:00 前深成指未站回X或炸板率>Y → 假设作废),证伪时点须至少含三道时间闸之一(9:35/9:45/10:00 具体时点),不写时间表式预测、不写点位预言。

必落 judgment_ledger:source=盘中-0930闸门、date、direction、horizon、trigger、falsify(可自动核对)、judgment、reason([数据源][路径][判断] 三要素齐全,写入端拒收空件)。
若数据段标了 [不可用] 或上游链路标 ❌未产出,必须在结论首行写明数据不全,禁止照常下结论。

> IMA归档由脚本自动完成(23:25 每日报告批量传IMA:CRON_META 收本任务输出md + ima_uploaded.json 去重)——AI禁止自行上传,避免同晚双份(2026-10-27 老板令:所有归档均为脚本自动完成)。


**Response Characters:** 3359
## Response

**⚠️ 数据不全声明(首行)**:09:30 闸门数据脚本 rc=1 —— ①主力三问·量能对称·位置分位段 **[不可用]**(mainforce_scan 180s 超时)②06:00 晨报 **❌未产出(断链)**。本报告已改用自采替代源(腾讯 qt 实时广度 09:39/09:48、data_hub 指数实时 09:41/09:45/09:49、tushare 20261103 定稿、analysis_gate.py 09:30 采集),**不做个股主力阶段判断**,其余结论照常给出。

---

## ① 市场在做什么(先抄数据事实 · 数据日期 2026-11-04 盘中)

- **闸门两条件**:条件① **否** —— 近3个交易日(20261030 / 20261102 / 20261103)逐日创前日新低,低点 10833.78 → 10813.16 → 10810.42;条件② **不适用**(①未过,本报告不含任何闸门量能结论)
- **上涨比 33.4%**(09:48:51 腾讯qt:涨1861 / 跌3479 / 平238,全市场5578只)
- **涨停 18 / 跌停 17**(09:39:39 同源;昨日全天 50/24,tushare 20261103)
- **中位数 -0.40%**(09:48:51);**累计成交 3505亿**(09:48:51 腾讯口径)vs 昨全日 17151亿(tushare 定稿)——**昨日同期分时不可得(指数分钟线接口不支持),成交额同比缺失**,上式为不同窗口量级参考,非同期比
- 指数路径:深成指 09:41 高 10984.13(+1.00%) → **09:49 报 10920.20(+0.40%)**,创业板 +1.12% → +0.48%,**上证 09:49 已翻绿 -0.17%**(昨收 3608.10)

**一句话定性:平开微高走后正在冲高回落,指数涨、广度弱(33.4%上涨、中位-0.40%)=存量修复/权重护盘,不是增量进场;退潮未改。**

## ①B 竞价段与三道时间闸

- **竞价价格 gap**(今开 vs 昨收):深成指 **+0.17% 平开**、上证 -0.08% 平开、科创50 +0.09% 平开、创业板 **+0.33% 高开边缘** —— 全部落在 ±0.33% 内,无大幅 gap,修正开盘预期不适用;首半小时只消化隔夜,**方向待 10:00 确认**。
- **竞价成交额:数据不足·本段跳过** —— iFinD(指数竞价额唯一确定性源)返回空值,不编造。
- **三道时间闸(交 10:00 形态感知复核)**:
  - **T1 9:35**:深成指首根5分钟报 10956.90,较昨收 +0.73%、较开盘 +0.56% → **涨幅<1.5%,价格条件未触发**(量能条件指数分钟量不可得未核,价格条件已否,不影响结论)→ **T1 未触发**
  - **T2 9:45**:15分钟收 10942.78 > 开 10895.80 ✅;但盘中最低 10891.05(9:34前后)曾跌破开盘价 4.75 点(-0.04%)→ **字面第二条件不满足(幅度噪音级)=半满足**,按实际15分钟K在10:00复核
  - **T3 10:00**:**未到,待验** —— 9:41 冲高后持续回落、上证已翻绿,方向尚未选择

## ② 能不能做(闸门裁定)

**闸门 ⛔ 关(①未过 → ②不适用)→ 观察照常,但今日不给买点、不建新仓,仓位上限 0-2 成**(与 08:20 盘前预案同口径:闸门🔴关闭)。

**开闸等待条件**:深成指**连续3个交易日低点不破前日低点**(当前基准 10810.42)**+**其后止跌日量较前一日放大 → `analysis_gate.py --json` 输出 gate=open 才可给买点;按逐日严格无容差口径,最早也要 3 个不创新低交易日之后。

**观察层(永不关闭)**:
- **强**(09:48 行业中位):黄金 **+2.84%**(n=10,32亿)、**半导体 +0.55%(n=200,367亿=成交第一)**、特种钢 +0.54%、白酒 +0.33%、证券+0.17%、银行+0.03%
- **弱**:航空 -1.47%、**汽车配件 -1.37%(n=273,99亿)**、通信设备 -1.10%(230亿)、全国地产 -0.92%、石油加工 -0.91%、钢加工 -0.85%、软件服务 -0.74%(114亿)、元器件 -0.72%(311亿)
- **上游对照(接着改、不另起炉灶)**:08:00四维🟢5板块(汽车配件/石油加工/钢加工/水泥/全国地产)**今日 4跌1平、集体熄火** → 昨日"低位吸筹"信号第2日未延续,按双日验证纪律**不升级**;08:20预案心法 TOP1 半导体(95分) 今日中位+0.55%且成交最大=**唯一延续方向**,TOP2 软件(92分) -0.74% 不延续;08:00四维 pool 前10只 **8只下跌**(赛福天 -5.11%、ST标准 -3.03%)
- **资金面三问**(针对"黄金/半导体在涨、低位板块在跌"这一方向):①**谁在买**——黄金/白酒/银行/证券更像大机构避险配置型资金(慢而长),半导体367亿成交最大+中位+0.55%=科技权重有承接;②**为什么买**——位置:连创3日新低后的平开微高走,买防御(黄金)、买超跌权重,卖进攻(汽车配件/地产/石油加工等昨日吸筹方向),是防守性配置不是进攻建仓;③**买了之后会做什么**——**证据不足,意图不明,不硬编**;可验证=10:00 后黄金/半导体量能是否持续,回落即一日游。
- **数据不全影响**:主力三问超时 → 本段**不做个股主力阶段/量能对称/位置分位判断**,板块判断仅基于实时量价+昨日四维记录。

## ③ 证伪(如果价格走了对面,我就错了)

1. **10:00**:深成指未站回昨收 **10876.99** → "平开微高走修复"作废,转弱势定性(09:49 上证已翻绿 -0.17% 是先行信号)
2. **10:00**:上涨比跌破 **30%** 且深成指跌破开盘价 **10895.80** → "存量修复"作废,转退潮确认
3. **10:00 形态感知复核 T2**:若按实际15分钟K判定不成立 → "修正后走高"链路进一步弱化
4. **15:00**:`analysis_gate.py --json` 输出 **gate=open** → 本条"今日不给买点"**作废**(我错在闸门口径);输出 gate=闭 → 判断成立
5. **15:00**:深成指当日低点跌破 **10810.42** → 创新低延续,闸门继续关、判断维持(强化而非证伪)

**落账**:judgment_ledger id=**3504**(source=盘中-0930闸门,date=2026-11-04,direction=回避,horizon=1,trigger/falsify/reason 三要素齐全,写入成功)。

**脚本失败报告(必须报)**:09:30 闸门数据采集脚本 **exit 1** —— 主力三问子进程 180s 超时(TimeoutExpired)+06:00 晨报断链未产出;AI 判断层已按规则标注数据不全并改用替代源,未照常下结论。

**遗留(记录不修,按职责回归三律③盘后处理)**:`market_breadth.py` 快速体检的 TRIN/家数比/量比行取的是 `breadth_history[0]`=**最旧一天**(实测 days=5 时 [0]=20261028,quick 检查用 days=60 即约3个月前),非当日数据;本例 TRIN 0.95 落中性区未改变温度判定,但展示具误导性 → 15:00 后改 `[-1]` 并复验。