# 技术指标计算口径(与代码一致) 本文档与 `backend_api_python/app/services/market_data_collector.py` 中 `_calculate_indicators` 及子函数实现**严格对应**。 | 指标 | 实现要点 | |------|-----------| | **RSI(14)** | **Wilder RSI**:前 14 期涨跌分别取简单算术平均作为初始均幅;自第 15 期起 `avg = (avg_prev×13 + 当期) / 14`。RS = 均涨幅/均跌幅,RSI = 100 − 100/(1+RS)。 | | **MACD(12,26,9)** | 收盘 **EMA12、EMA26**(首值=各自前 N 根 **SMA**,再按 α=2/(N+1) 递推)。**DIF** 从第 26 根 K 起有定义;对 DIF 子序列再算 **EMA9** 得 **DEA**;柱 = DIF − DEA。至少需要 **34** 根收盘才能稳定给出信号线(子序列长度≥9)。 | | **MA5/10/20** | 最近 N 根收盘价的 **SMA**。 | | **枢轴 Pivot** | **上一根 K** 的高、低、收:P=(H+L+C)/3,R1/S1/R2/S2 标准式。 | | **摆动高/低** | 最近 **20 根 K** 的 `max(high)`、`min(low)`。 | | **布林(20,2)** | 中轨 = 最近 20 收盘 **SMA**;方差 = Σ(x−μ)²/**20**(总体方差);σ=√方差;上下轨 = 中轨 ± 2σ;带宽% = (上轨−下轨)/中轨×100。合成支撑/阻力使用 **`BB_upper` / `BB_lower`** 字段。 | | **ATR(14)** | **Wilder ATR**:TR 定义同经典;首 ATR = 前 14 个 TR 的简单平均;之后 `ATR_t = (ATR_{t-1}×13 + TR_t) / 14`,递推至**最后一根 K**(全序列,非仅尾窗)。 | | **量比** | 当前根成交量 / 近 **20** 根成交量算术平均。 | | **区间位置 %** | (当前收盘 − 近20低) / (近20高 − 近20低) × 100;高=低 时为 50。 | | **合成支撑/阻力** | `(R1 + swing_high + BB_upper) / 3` 与 `(S1 + swing_low + BB_lower) / 3`,见 `levels.method`。 | 前端说明文案键:`fastAnalysis.indicatorsProSubtitle`(应与上表同步维护)。