# 技术指标说明

## 概述

本脚本支持计算常用的技术分析指标，指标会自动请求足够的历史数据以确保计算准确。

## 指标组详解

### MA - 移动平均线

移动平均线是最基础的趋势指标，通过计算一定周期内的平均价格来平滑价格波动。

| 指标 | 周期 | 说明 |
|------|------|------|
| ma5 | 5日 | 短期均线，反映近期趋势 |
| ma10 | 10日 | 短期均线 |
| ma20 | 20日 | 中期均线，月线 |
| ma60 | 60日 | 中期均线，季线 |
| ma250 | 250日 | 长期均线，年线（需单独请求） |

**使用建议**：
- 金叉（短期上穿长期）→ 可能上涨
- 死叉（短期下穿长期）→ 可能下跌
- 多头排列（ma5 > ma10 > ma20）→ 强势上涨
- 空头排列（ma5 < ma10 < ma20）→ 弱势下跌

```bash
node kline.js --symbol=600036.SH --with=ma
```

---

### MACD - 指数平滑异同移动平均线

MACD 由 DIF（差离值）、DEA（信号线）和柱状图组成，是判断趋势强弱和转折的重要指标。

| 指标 | 说明 |
|------|------|
| macd_dif | DIF = EMA(12) - EMA(26) |
| macd_dea | DEA = EMA(DIF, 9) |
| macd_hist | 柱状图 = (DIF - DEA) × 2 |

**使用建议**：
- DIF 上穿 DEA（金叉）→ 买入信号
- DIF 下穿 DEA（死叉）→ 卖出信号
- 柱状图由负转正 → 做多
- 柱状图由正转负 → 做空
- DIF/DEA 在零轴上方 → 多头市场
- DIF/DEA 在零轴下方 → 空头市场

```bash
node kline.js --symbol=600036.SH --with=macd
```

---

### KDJ - 随机指标

KDJ 指标通过最高价、最低价和收盘价计算，用于判断超买超卖。

| 指标 | 说明 |
|------|------|
| kdj_k | K 值（快线） |
| kdj_d | D 值（慢线） |
| kdj_j | J 值 = 3K - 2D |

**取值范围**：0 ~ 100（J 值可能超出）

**使用建议**：
- K > 80, D > 80 → 超买，可能回调
- K < 20, D < 20 → 超卖，可能反弹
- K 上穿 D（金叉）→ 买入信号
- K 下穿 D（死叉）→ 卖出信号
- J 值极端（>100 或 <0）→ 强烈信号

```bash
node kline.js --symbol=600036.SH --with=kdj
```

---

### BOLL - 布林带

布林带由中轨（MA20）和上下轨（±2倍标准差）组成，用于判断价格波动区间。

| 指标 | 说明 |
|------|------|
| boll_upper | 上轨 = MA20 + 2×标准差 |
| boll_mid | 中轨 = MA20 |
| boll_lower | 下轨 = MA20 - 2×标准差 |

**使用建议**：
- 价格触及上轨 → 可能超买
- 价格触及下轨 → 可能超卖
- 带宽收窄 → 变盘在即
- 带宽扩大 → 趋势延续
- 价格沿上轨运行 → 强势上涨
- 价格沿下轨运行 → 弱势下跌

```bash
node kline.js --symbol=600036.SH --with=boll
```

---

### RSI - 相对强弱指标

RSI 通过比较平均涨幅和平均跌幅来衡量价格变动的速度和幅度。

| 指标 | 周期 | 说明 |
|------|------|------|
| rsi6 | 6日 | 短期 RSI，灵敏度高 |
| rsi12 | 12日 | 中期 RSI |
| rsi24 | 24日 | 长期 RSI，平滑 |

**取值范围**：0 ~ 100

**使用建议**：
- RSI > 70 → 超买
- RSI < 30 → 超卖
- RSI > 80 → 强烈超买，可能见顶
- RSI < 20 → 强烈超卖，可能见底
- RSI 背离（价格新高但 RSI 未新高）→ 趋势可能反转

```bash
node kline.js --symbol=600036.SH --with=rsi
```

---

### WR - 威廉指标

威廉指标与 KDJ 类似，用于判断超买超卖，但取值范围为负数。

| 指标 | 周期 | 说明 |
|------|------|------|
| wr14 | 14日 | 威廉指标 |

**取值范围**：-100 ~ 0

**使用建议**：
- WR > -20 → 超买（接近 0）
- WR < -80 → 超卖（接近 -100）

```bash
node kline.js --symbol=600036.SH --with=wr
```

---

### OBV - 能量潮

OBV 通过累加或累减成交量来衡量资金流向。

| 指标 | 说明 |
|------|------|
| obv | 能量潮值（股） |
| obv_ma20 | OBV 的 20 日均线 |

**使用建议**：
- OBV 上升 + 价格上涨 → 量价配合，趋势健康
- OBV 下降 + 价格上涨 → 量价背离，可能见顶
- OBV 上升 + 价格下跌 → 资金吸筹，可能见底
- OBV 突破前高 → 买入信号
- OBV 跌破前低 → 卖出信号

```bash
node kline.js --symbol=600036.SH --with=obv
```

---

### ATR - 真实波幅

ATR 衡量价格的波动程度，用于设置止损和判断波动率。

| 指标 | 说明 |
|------|------|
| atr | 14 日平均真实波幅 |
| atr_ma14 | ATR 的 14 日均线 |

**使用建议**：
- ATR 扩大 → 波动加剧
- ATR 收窄 → 波动减小
- 止损设置：买入价 - 2×ATR
- 止盈设置：买入价 + 3×ATR

```bash
node kline.js --symbol=600036.SH --with=atr
```

---

### VOL - 成交量均线

成交量均线用于判断量能变化。

| 指标 | 说明 |
|------|------|
| vol_ma5 | 5 日成交量均线 |
| vol_ma10 | 10 日成交量均线 |

**使用建议**：
- 成交量 > vol_ma5 → 放量
- 成交量 < vol_ma5 → 缩量
- 放量上涨 → 多头强势
- 缩量上涨 → 可能见顶
- 放量下跌 → 空头强势
- 缩量下跌 → 可能见底

```bash
node kline.js --symbol=600036.SH --with=vol
```

---

### CCI - 顺势指标

CCI 衡量价格偏离统计平均的程度。

| 指标 | 说明 |
|------|------|
| cci | 20 日 CCI |

**取值范围**：无限制，通常在 -200 ~ +200 之间

**使用建议**：
- CCI > +100 → 超买
- CCI < -100 → 超卖
- CCI 从下向上穿越 +100 → 买入
- CCI 从上向下穿越 -100 → 卖出

```bash
node kline.js --symbol=600036.SH --with=cci
```

---

### ROC - 变动率

ROC 衡量当前价格与 N 日前价格的变化比率。

| 指标 | 说明 |
|------|------|
| roc | 12 日变动率（%） |

**使用建议**：
- ROC > 0 → 价格上涨
- ROC < 0 → 价格下跌
- ROC 创新高 → 上涨动能强
- ROC 背离 → 趋势可能反转

```bash
node kline.js --symbol=600036.SH --with=roc
```

---

## 常用组合

### 趋势分析

```bash
# 均线 + MACD
node kline.js --symbol=600036.SH --with=ma,macd --limit=60
```

### 超买超卖判断

```bash
# KDJ + RSI
node kline.js --symbol=600036.SH --with=kdj,rsi --limit=30
```

### 波动性分析

```bash
# 布林带 + ATR
node kline.js --symbol=600036.SH --with=boll,atr --limit=60
```

### 量价分析

```bash
# 成交量 + OBV
node kline.js --symbol=600036.SH --with=vol,obv --limit=60
```

### 综合分析

```bash
# 全面分析
node kline.js --symbol=600036.SH --with=ma,macd,kdj,boll,rsi,vol --limit=60 --format=markdown
```

---

## 注意事项

1. **预热期**：部分指标需要一定数量的历史数据才能计算（如 MA60 需要 60 根 K 线），脚本会自动请求额外数据保证准确性。

2. **复权选择**：
   - 计算技术指标建议使用前复权（`--adjust=qfq`），保证价格连续
   - 查看实际成交价使用不复权（`--adjust=none`）

3. **周期选择**：
   - 目前 API 只支持日K线
   - 可通过调整 `--limit` 参数获取不同时间跨度的数据

4. **指标局限性**：
   - 技术指标是历史数据的统计，不能预测未来
   - 建议结合基本面、市场情绪等多维度分析
   - 不同市场环境下，指标有效性不同
