# 方法论 / Methodology

> 这是 stock-realtime-brief 的"思维内核" — 解释为什么这样做、不那样做。

## 一、设计哲学

### 1.1 散户的真正敌人是情绪，不是市场

绝大多数散户的亏损不来自"看错方向"，而来自三个情绪陷阱：

1. **该止损时舍不得**（"再等等就回本"）
2. **该落袋时贪心**（"再涨涨再卖"）
3. **盘中盯价过度反应**（"今天 -3% 我得赶紧跑"）

**解决方案**：把所有决策**前置规则化**，写成"触发条件 → 动作"的硬规则，让纪律替代情绪。

### 1.2 输出必须可执行

行业常见的分析报告通病是"建议谨慎操作 / 注意风险"——这种话**没有触发条件、没有具体动作、没有数量**。

本工具所有输出都遵循 SMART 原则：
- **S**pecific（具体）：跌破 500，不是"跌破支撑"
- **M**easurable（可量化）：减 1/3，不是"适当减仓"
- **A**ctionable（可执行）：写进券商条件单
- **R**elevant（相关）：基于你的实际持仓
- **T**ime-bound（时限）：开盘前 5 分钟内设好

---

## 二、7 步法

### Step 1：解析输入 + 模式判定

```
输入是 portfolio file？ → 模式 P
输入是 1 个 code？      → 模式 S
输入是多个 code？        → 模式 M
不清楚？                → 不要默认，主动确认
```

### Step 2：拉实时行情

降级链：**腾讯 → 新浪批量 → AKShare（带 timeout）**

为什么腾讯第一？踩过的坑：AKShare 主源 `82.push2.eastmoney.com` 在交易日早盘**经常超时 50 分钟**。

### Step 3：拉历史 K 线

降级链：**AKShare 主源（带重试） → 腾讯日 K**

历史接口走 AKShare 是稳定的（不同于实时接口）。

### Step 4：计算关键位

| 指标 | 用途 |
|------|------|
| **MA5** | 短期支撑/压力（强势股的预警线） |
| **MA10** | 短期趋势线（一般股的风控线） |
| **MA20** | 中期生命线（跌破常意味趋势反转） |
| **MA30** | 中期趋势确认 |
| **40 日涨幅** | 判断是否"已经涨过一波" |
| **近 N 日高/低** | 关键技术位 + 整数关 |
| **量能特征** | 量价共振判断 |

### Step 5：判断态势

8 种态势识别：

```
🚀 强势上攻（多头排列加速）   = 当日 +3% & MA5>MA10>MA20
📈 多头排列（趋势向上）       = MA5>MA10>MA20>MA30
🔵 中期向上                   = 现价>MA20 & MA5>MA10
⚪ 低波动震荡                 = |当日| <1% & |现价-MA20| <2%
🟡 多空交错                   = 其他混乱情况
📉 空头排列                   = MA5<MA10<MA20<MA30
⚠️ 加速下跌                   = 当日 -3% & 空头排列
```

### Step 6：生成操作位

#### 模式 P/S 通用三档止损

```
预警线 = MA5（强势）/ MA10（重仓）+ 利润保护位 取较高
风控线 = MA10（一般）/ MA20（重仓）/ max(MA20, 成本-15%)（重仓亏损）
清仓线 = MA20 / 成本-25%（亏损股）
```

**仓位调整因子**：
- 重仓股（≥25%）：所有止损位上提 5%
- 融资股：所有止损位上提 3%
- 高位涨幅股（40日 >50%）：用 MA10 而非 MA20 做风控
- 盈利股 >30%：额外提供"利润保护位"（现价回吐 25% 利润）

#### 模式 M 综合评分

```
score = 当日涨跌幅 ÷ 2
       + MA5 偏离度 × 1.5  （短期强弱）
       + MA20 偏离度 × 1   （中期趋势）
       + 量价共振分（放量涨 +2 / 放量跌 -2）

⭐ 优势更明显: score > 3
🟡 保持观察: -3 ≤ score ≤ 3
⚠️ 谨慎对待: score < -3
```

### Step 7：模式专属动作

#### 模式 P：融资体检 + 公告检测
- 担保比例五档预警
- 还款顺序建议
- 重要公告 14 天扫描（HIGH/MED 自动告警）

#### 模式 S：深度分析
- 5 档操作位（介入/加仓/止损/短线止盈/波段止盈）
- 跟踪要点

#### 模式 M：横向对比
- 综合评分排序
- 关键差异点
- ⭐/🟡/⚠️ 标签判断

---

## 三、为什么是"三档止损"而不是"一刀切"

### 反思：传统止损的问题

```
策略 A（一刀切 -10%）：
  ❌ 跌 -10% 全卖 → 容易在洗盘中被甩下车
  ❌ 重仓股容错率太低
  ❌ 盈利股也用同样标准 → 锁不住利润

策略 B（一刀切 MA20）：
  ❌ 一旦跌破立即全清 → 很多假突破被打脸
  ❌ 没有"先减半看反应"的缓冲
```

### 三档止损的优势

```
预警线 → 减 1/3：
  ✅ 提前出半仓保命
  ✅ 留 2/3 看真伪
  ✅ 心理上"已经动手"，比"看着不动"更稳定

风控线 → 再减 1/3：
  ✅ 趋势真破时减第二批
  ✅ 仓位降到 1/3，下行风险有限

清仓线 → 全清：
  ✅ 趋势彻底破坏的最后防线
  ✅ 不留活口，避免"扛单亏损"
```

---

## 四、为什么"利润保护位"很重要

### 传统问题
盈利 +50% 的股票，如果用"成本 -15%" 作为风控线：
- 风控线 = 成本 × 0.85（远低于现价）
- 距现价 15% 以上 → 实际意义为零
- 用户感觉"还有缓冲"，结果回吐 30% 利润才触发

### 利润保护位的逻辑
```
当浮盈 > 30% 时，额外计算：
profit_lock = 现价 - (现价 - 成本) × 25%

例：成本 100 / 现价 150
profit_lock = 150 - 50 × 0.25 = 137.5
```

**含义**："最多让出 25% 已实现利润"，符合"已赚的钱要锁住一部分"的心理预期。

---

## 五、公告检测的边界

### 为什么用关键词识别而非 LLM？

- **可预测性**：关键词命中规则清晰，用户能理解触发条件
- **速度**：4 个并行 query 共 ~10 秒完成 vs LLM ~30+ 秒
- **成本**：免费的搜索 API vs 收费的 LLM 调用
- **足够好**：减持、立案、业绩预减等 HIGH 关键词已覆盖 90% 利空

### 局限性
- 无法识别"软利空"（如行业政策变化）
- 时间过滤依赖搜索引擎返回的 date 字段（不总准确）
- 不做内容真实性验证

---

## 六、风险声明

详见 [DISCLAIMER.md](../DISCLAIMER.md)。
