---
name: aifinlab/a-share-volatility
source: https://app.decimal.ai/s/aifinlab-a-share-volatility@1/SKILL.md
source_sha256: 05f759a8306a
---

### 数据源
```bash
SCRIPTS="$SKILLS_ROOT/cn-stock-data/scripts"
VOL_SCRIPTS="$SKILLS_ROOT/a-share-volatility/scripts"

# 日线 K 线（近 2 年，用于波动率锥和 GARCH 拟合）
python "$SCRIPTS/cn_stock_data.py" kline --code [CODE] --freq daily --start [2年前日期]

# 实时行情
python "$SCRIPTS/cn_stock_data.py" quote --code [CODE]

# 波动率一键分析（HV多窗口 + 波动率锥 + GARCH预测 + EWMA）
python "$VOL_SCRIPTS/volatility_analyzer.py" --code [CODE] --start [2年前日期]

# 期权隐含波动率（仅限有期权的标的：50ETF/300ETF/个股期权）
# 通过 akshare 获取期权数据
python -c "import akshare as ak; df=ak.option_sse_greeks_sina(symbol='510050'); print(df[['IV']].describe())"
```

### Workflow (5 steps):

**Step 1: 数据获取与预处理**
1. 获取近 2 年日线 K 线数据（OHLCV）
2. 计算对数收益率：r_t = ln(Close_t / Close_{t-1})
3. 获取实时行情确认最新价格
4. 运行 `volatility_analyzer.py` 获取完整波动率分析结果

**Step 2: 历史波动率计算（多窗口）**
计算 5 个滚动窗口的年化历史波动率：

| 窗口 | 用途 | 说明 |
|------|------|------|
| HV5 | 超短期波动 | 反映近一周波动 |
| HV10 | 短期波动 | 反映近两周波动 |
| HV20 | 月度波动 | 最常用，对应期权月到期 |
| HV60 | 季度波动 | 中期波动水平 |
| HV120 | 半年波动 | 长期波动基准 |

计算方法（Close-to-Close）：
- HV_N = std(r_t, window=N) * sqrt(252) * 100（百分比形式）

补充方法（如果有高开低收数据）：
- **Parkinson 波动率**：利用最高价/最低价，HV_park = sqrt(1/(4N*ln2) * sum(ln(H/L)^2)) * sqrt(252)
- **Yang-Zhang 波动率**：综合开盘跳空 + 日内波动，更准确

**Step 3: 波动率锥构建**
对每个窗口，计算历史上所有滚动 HV 值的分位数分布：

| 分位数 | 含义 |
|--------|------|
| P95 | 极高波动（历史 95% 分位） |
| P75 | 偏高波动 |
| P50 | 中位数（典型水平） |
| P25 | 偏低波动 |
| P05 | 极低波动（历史 5% 分位） |

**当前 HV 在锥中的位置**：
- 高于 P75 → 波动率偏高，可能回归
- P25-P75 → 正常区间
- 低于 P25 → 波动率偏低，可能扩张

波动率锥呈现方式：以窗口为横轴、波动率为纵轴，各分位线形成"锥形"，当前值标注在对应位置。

**Step 4: GARCH(1,1) 拟合与预测**
使用 `arch` 库拟合 GARCH(1,1) 模型（不可用时 fallback 到 EWMA）：

**GARCH(1,1) 模型**：
- sigma_t^2 = omega + alpha * r_{t-1}^2 + beta * sigma_{t-1}^2
- 长期方差 = omega / (1 - alpha - beta)
- alpha：短期冲击敏感度（越大越受近期波动影响）
- beta：波动率持续性（越大波动聚集越强）
- alpha + beta → 1：波动率持续性极强

**GARCH 预测输出**：
- 未来 5/10/20 日波动率预测值
- 向长期均值收敛的速度
- 参数解读（alpha/beta/omega）

**EWMA 备选**（lambda=0.94, RiskMetrics 标准）：
- sigma_t^2 = lambda * sigma_{t-1}^2 + (1-lambda) * r_{t-1}^2

**Step 5: HV vs IV 对比（如有期权数据）**
仅限有期权的标的（50ETF/300ETF 等）：
- 如果 IV > HV：期权定价偏贵，适合卖方策略
- 如果 IV < HV：期权定价偏低，适合买方策略
- IV-HV 差值的历史分位数

### 风格说明
| 维度 | formal（波动率研究报告） | brief（快速波动率查看） |
|------|----------------------|----------------------|
| 篇幅 | 2-4 页 | 半页 |
| HV 多窗口 | 5 个窗口全部列出 + 趋势判断 | HV20 + HV60 两个关键窗口 |
| 波动率锥 | 完整分位数表 + 文字描述锥形 | 当前 HV20 所处分位 |
| GARCH | 完整参数 + 预测 + 模型诊断 | 一句话预测方向 |
| IV 对比 | 详细 HV-IV 分析 + 策略建议 | IV vs HV 一句话 |
| 波动率特征 | 聚集性/均值回归/非对称性分析 | 省略 |
| 结论 | 多维度总结 + 波动率交易建议 | 高/正常/低 + 趋势 |
| 免责声明 | 需要 | 不需要 |

### 关键规则
1. **年化处理**：所有波动率统一年化（*sqrt(252)），以百分比形式呈现
2. **波动率锥判断**：核心输出是"当前波动率在历史中的位置"，必须给出分位数
3. **均值回归**：波动率具有均值回归特性，极端值倾向回归到长期均值
4. **波动率聚集**：高波动之后往往跟随高波动，低波动之后往往跟随低波动
5. **GARCH 可选**：如果 arch 库未安装，使用 EWMA 替代，结果标注为"EWMA 估计"
6. **IV 数据有限**：仅部分 ETF 和个股有期权，无期权标的跳过 IV 对比环节
7. **A 股特色**：注意涨跌停板对波动率计算的影响（涨跌停日波动率被低估），T+1 交易制度，新股上市初期波动率异常
8. **数据量要求**：GARCH 拟合建议至少 250 个交易日数据，波动率锥建议 2 年以上数据