# Stock Momentum Analysis Model (SMAM)

> **理论基础**: Asness, Moskowitz & Pedersen (2013), "Value and Momentum Everywhere", *Journal of Finance*
> **定位**: 基于学术文献的个股动量信号计算、决策框架与批量筛选工具
> **数据源**: Longbridge CLI k-line history → 计算动量信号 → 生成操作建议
> **最后更新**: 2026-05-16

---

## 一、理论核心（论文要点）

### 1.1 动量无处不在
- 动量溢价存在于股票、债券、外汇、商品等所有主要资产类别
- Value 和 Momentum 因子**负相关**（相关系数约 -0.3 至 -0.5），组合使用可显著提升夏普比率
- 动量效应在控制流动性风险、宏观经济风险后依然稳健

### 1.2 12-1 月动量信号（Gold Standard）
- **主信号**: 过去 12 个月累计收益，**排除最近 1 个月**（t-12 到 t-2）
- 排除最近月的原因：短期反转效应（Jegadeesh, 1990）会稀释中期动量信号
- 信号构建：排名法（Cross-Sectional）— 在同一市场内将个股按动量信号排序

### 1.3 信号加权因子组合
- 论文发现「信号加权因子组合」优于简单排序分组
- 信号加权 = 将持仓权重设为动量信号的线性函数，而非等权分组
- 原因：更好捕捉信号的连续信息，避免分组边界处的噪声

### 1.4 Value-Momentum 联用
- 两因子组合的 Sharpe Ratio ≈ 1.0-1.5（远高于单因子 0.4-0.6）
- 50/50 等权组合是简单有效的基准
- 流动性危机时：Value 受损 + Momentum 受益 → 天然对冲

---

## 二、动量信号计算

### 2.1 多周期信号矩阵

| 信号 | 公式 | 权重 | 含义 |
|------|------|------|------|
| **MOM_12_1** | (P_t-2 / P_t-12) - 1 | **35%** | 主信号：中期动量 |
| MOM_6 | (P_t-1 / P_t-6) - 1 | 25% | 中期确认 |
| MOM_3 | (P_t-1 / P_t-3) - 1 | 20% | 近期趋势 |
| MOM_12 | (P_t-1 / P_t-12) - 1 | 10% | 完整12月（含最近月） |
| MOM_1 | (P_t-1 / P_t-2) - 1 | 10% | 最近月（反转检测） |

> P_t-1 = 最近完整月收盘价，P_t-2 = 前月，以此类推
> 权重设计逻辑：中期动量权重最高，短期信号辅助判断反转

### 2.2 截面标准化（Cross-Sectional Z-Score）

```
Z_signal_i = (signal_i - μ_universe) / σ_universe
```

- μ_universe = 同一市场/板块内所有标的该信号的平均值
- σ_universe = 同一市场/板块内所有标的该信号的标准差
- 适用范围：单一市场（A 股 / 美股 / 港股各自计算）

### 2.3 合成动量分数（Composite Momentum Score, CMS）

```
CMS = 0.35 × Z_MOM_12_1
    + 0.25 × Z_MOM_6
    + 0.20 × Z_MOM_3
    + 0.10 × Z_MOM_12
    + 0.10 × Z_MOM_1
```

CMS 理论上服从 N(0,1) 分布。正值 = 动量优于板块均值，负值 = 弱于。

---

## 三、动量分位与操作决策

### 3.1 五档分位（Quintile Classification）

| 分位 | CMS 阈值 | 动量标签 | 含义 |
|------|---------|---------|------|
| **Q1** | CMS > +0.84 | 🟢 强动量 | 超越板块 80% 标的 |
| **Q2** | +0.25 < CMS ≤ +0.84 | 🟡 正动量 | 超越板块 60-80% |
| **Q3** | -0.25 < CMS ≤ +0.25 | ⚪ 中性 | 板块中位 ±0.25σ |
| **Q4** | -0.84 < CMS ≤ -0.25 | 🟠 负动量 | 落后板块 60-80% |
| **Q5** | CMS ≤ -0.84 | 🔴 强负动量 | 落后板块 80%+ |

### 3.2 动量稳定性分数（Stability Score）

```
Stability = count(同向信号) / 5
```

检查 MOM_12_1、MOM_6、MOM_3、MOM_12、MOM_1 五个信号的 Z-Score 是否与 CMS 同号。

| Stability | 含义 |
|-----------|------|
| ≥ 0.8 | ✅ 高度一致，趋势可靠 |
| = 0.6 | ⚠️ 多数一致，但存在分歧 |
| ≤ 0.4 | ❌ 信号互相矛盾，不决策 |

### 3.3 成交量确认（Volume-Adjusted Momentum, VAM）

```
VAM = CMS × (1 + min(0.5, V_ratio - 1))
```

- V_ratio = 近 3 月均量 / 近 12 月均量
- V_ratio > 1 → 放量，放大 CMS 信号
- V_ratio < 1 → 缩量，CMS 信号不变
- CAP: 最大放大系数 1.5x

---

## 四、操作决策框架

### 4.1 加仓（Entry / Add）

| 级别 | 条件 | 仓位建议 |
|------|------|---------|
| 🟢 **积极加仓** | CMS > +0.84 AND Stability ≥ 0.8 AND VAM > 0 | 加仓 25-30% |
| 🟡 **适度加仓** | CMS > +0.25 AND Stability ≥ 0.6 AND MOM_3 > 0 | 加仓 15-20% |
| 🔵 **试探加仓** | CMS > 0 AND MOM_12_1 > 0 AND MOM_3 > 0 | 加仓 5-10% |
| ⛔ **不加仓** | CMS < 0 或 Stability < 0.4 | 观望 |

### 4.2 减仓/清仓（Exit / Reduce）

| 级别 | 条件 | 操作 |
|------|------|------|
| 🔴 **清仓** | CMS < -0.84 AND MOM_12_1 < 0 | 全部卖出 |
| 🟠 **大幅减仓** | CMS < -0.25 AND Stability < 0.4 | 减仓 50% |
| 🟡 **小幅减仓** | CMS < 0 AND MOM_3 < 0 AND MOM_1 < 0 | 减仓 20% |
| ⚪ **持有** | CMS > 0 或 MOM_3 > 0 | 不变 |

### 4.3 反转信号（Reversal → Re-entry）

当 CMS 从负值 **上穿零轴** 且 MOM_3 > 0：
- → 动量反转确认
- → 可以考虑试探性重新建仓（仓位 < 10%）
- → 等待 CMS 进入 Q2 后再加仓

### 4.4 均值回归预警

当 CMS 极高（> 2.0）且 MOM_1 < 0（最近月开始回调）：
- → 可能短期见顶
- → 不建议在此时加仓
- → 如果 Stability 下降 + MOM_3 转负 → 减仓

---

## 五、Value-Momentum 组合信号

### 5.1 论文核心发现
- Value 和 Momentum 在不同市场条件下互为对冲
- 50/50 组合的 Sharpe Ratio 远超任一单因子
- 流动性危机时，Value 因子回撤被 Momentum 因子正收益部分抵消

### 5.2 VM 综合分数

```
VM_Score = 0.5 × Z_Momentum + 0.5 × Z_Value
```

其中：
- Z_Momentum = CMS（来自第四节）
- Z_Value = PE 分位的 Z-Score（越低越好，取反号使方向一致）

### 5.3 VM 决策矩阵

| VM_Score | Momentum | Value | 含义 | 操作 |
|----------|----------|-------|------|------|
| > +1.0 | 强 | 便宜 | 🟢 最佳买点 | 重仓 |
| +0.5 ~ +1.0 | 中强 | 合理 | 🟡 好买点 | 加仓 |
| -0.5 ~ +0.5 | 中性 | 中性 | ⚪ 中性 | 持有/观望 |
| -1.0 ~ -0.5 | 弱 | 贵 | 🟠 差 | 减仓 |
| < -1.0 | 极弱 | 极贵 | 🔴 最差 | 清仓 |

---

## 六、批量筛选流程

### 6.1 输入
- 标的列表（watchlist、thesis 标的、板块成分股）
- 市场标识（US / HK / SH / SZ）

### 6.2 步骤
1. 批量拉取每只标的的月线 K 线数据（需要 13 个月历史）
2. 计算每只标的的 5 个动量信号
3. 计算截面均值与标准差
4. 计算 CMS、Stability、VAM
5. 按 CMS 降序排列
6. 输出筛选结果

`screen_stocks.py` 在 SMAM 结果之上叠加日线技术因子层。该层使用 Longbridge 日线 OHLCV 本地计算趋势结构、B1 缩量回调、单针洗盘、MACD 相位和砖型动能确认。细节见 [technical-screener.md](technical-screener.md)。

### 6.3 筛选条件（默认）
- CMS > +0.25（正动量）
- Stability ≥ 0.6（信号一致）
- VAM > 0（量能配合）

### 6.4 输出格式

```
Rank  Symbol   Name       CMS    Stability  VAM   MOM_12_1   PE_Rank   VM_Score   Action
1     300394  天孚通信    +1.52  0.8        +1.7  +34.2%     37/102    +0.91      🟢 积极加仓
2     300502  新易盛      +0.88  0.6        +1.3  +28.1%     50/196    +0.55      🟡 适度加仓
...
```

---

## 七、与 Thesis Tracker 的集成

### 7.1 Thesis 标的动量监控
- 每日/每周对所有 thesis-tracker 中的标的计算动量信号
- 发现 CMS 进入 Q1（> +0.84）→ 标记为 "动量加仓窗口"
- 发现 CMS 跌入 Q5（< -0.84）→ 标记为 "动量止损预警"

### 7.2 操作记录格式（追加到 thesis 文件）

```markdown
## 动量追踪日志

| 日期 | 价格 | CMS | 分位 | Stability | VAM | 操作建议 |
|------|------|-----|------|-----------|-----|---------|
| 2026-05-16 | ¥69.68 | +0.62 | Q2 | 0.8 | +1.2 | 持有，回调至 ¥63-65 可加仓 |
| 2026-04-30 | ¥69.48 | +0.85 | Q1 | 1.0 | +1.5 | 强动量，不宜追高 |
```

### 7.3 与现有操作框架的协同
- 动量模型提供**时机信号**（何时做），不替代基本面判断（做什么）
- 基本面 thesis 决定方向（Long/Short），动量决定节奏（加仓/减仓/观望）
- 两者冲突时（基本面看多但 CMS < -0.84）→ 红灯警示，需复核 thesis

---

## 八、已知局限

1. **截面依赖性**：CMS 是相对排名，在普涨/普跌市场中信号可能失真
2. **小样本偏差**：板块标的 < 10 只时截面均值和标准差不稳定
3. **滞后性**：动量信号基于过去数据，不预测未来催化剂
4. **震荡市失效**：横盘整理期 CMS 可能频繁切换正负号
5. **A 股特殊性**：涨跌停限制、政策干预可能扭曲动量信号
6. **论文限制**：原始研究针对大型股（市值前 90%），小市值标的动量效应较弱

---

## 九、参考文献

- Asness, C. S., Moskowitz, T. J., & Pedersen, L. H. (2013). Value and Momentum Everywhere. *Journal of Finance*, 68(3), 929-985.
- Jegadeesh, N., & Titman, S. (1993). Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency. *Journal of Finance*, 48(1), 65-91.
- Moskowitz, T. J., Ooi, Y. H., & Pedersen, L. H. (2012). Time Series Momentum. *Journal of Financial Economics*, 104(2), 228-250.
- AQR Capital Management — Value and Momentum Everywhere Portfolios Dataset
