代码改变世界

技术指标详细计算公式1

2026-01-10 12:50  l_v_y_forever  阅读(41)  评论(0)    收藏  举报

技术指标计算公式完全指南

概述

本文档整理了量化交易中常用的12个技术指标的详细计算公式、核心逻辑和应用方法。这些指标涵盖了趋势跟踪、动量振荡、成交量分析和波动率测量等多个维度,是构建交易系统的基础工具。

1. 平均真实波幅

基本概念

ATR衡量价格的波动剧烈程度,是风险管理的重要工具。

计算公式

1.1 真实波幅

对于周期t:
[ TR_t = \max(High_t - Low_t, |High_t - Close_{t-1}|, |Low_t - Close_{t-1}|) ]

1.2 平均真实波幅

使用递推平滑法(默认周期N=14):

  1. 初始值:前N个周期的TR简单平均值
    [ ATR_N = \frac{1}{N} \sum_{i=1}^{N} TR_i ]

  2. 后续值:
    [ ATR_t = \frac{ATR_{t-1} \times (N-1) + TR_t}{N} ]

应用要点

  • 风险管理:止损距离 = N倍 × ATR
  • 仓位计算:仓位大小 = 风险金额 / (止损倍数 × ATR)
  • 波动率判断:ATR上升表示波动加大,下降表示市场平静

2. 抛物线转向指标

基本概念

SAR是趋势跟踪指标,提供动态的止损反转信号。

计算公式

2.1 参数设置

  • 加速因子AF初始值:0.02
  • 加速因子极值:0.20
  • EP:当前趋势开始以来的极点价格(上涨为最高价,下跌为最低价)

2.2 上涨趋势SAR

[ SAR_t = SAR_{t-1} + AF \times (EP - SAR_{t-1}) ]

限制条件:计算出的SAR_t ≤ 前两期最低价的最小值

2.3 下跌趋势SAR

[ SAR_t = SAR_{t-1} + AF \times (EP - SAR_{t-1}) ]

限制条件:计算出的SAR_t ≥ 前两期最高价的最大值

2.4 AF更新规则

  • 上涨趋势:当价格创出新高时,AF = min(AF + 0.02, 0.20)
  • 下跌趋势:当价格创出新低时,AF = min(AF + 0.02, 0.20)

应用要点

  • 趋势判断:SAR在价格下方为上涨趋势,上方为下跌趋势
  • 买卖信号:价格上穿SAR做多,下穿SAR做空
  • 最佳环境:单边趋势行情,震荡市中效果差

3. 平均趋向指数

基本概念

ADX衡量趋势强度,不指示方向。

计算公式(N=14)

3.1 计算趋向移动

[ +DM_t = \max(High_t - High_{t-1}, 0) \quad (\text{仅当} +DM_t > -DM_t) ]
[ -DM_t = \max(Low_{t-1} - Low_t, 0) \quad (\text{仅当} -DM_t > +DM_t) ]

3.2 平滑TR、+DM、-DM

使用与ATR相同的递推平滑:
[ Smoothed_TR_t = \frac{Smoothed_TR_{t-1} \times 13 + TR_t}{14} ]
[ Smoothed_+DM_t = \frac{Smoothed_+DM_{t-1} \times 13 + +DM_t}{14} ]
[ Smoothed_-DM_t = \frac{Smoothed_-DM_{t-1} \times 13 + -DM_t}{14} ]

3.3 计算方向指标

[ +DI_t = \frac{Smoothed_+DM_t}{Smoothed_TR_t} \times 100 ]
[ -DI_t = \frac{Smoothed_-DM_t}{Smoothed_TR_t} \times 100 ]

3.4 计算趋向指数和ADX

[ DX_t = \frac{|+DI_t - -DI_t|}{|+DI_t + -DI_t|} \times 100 ]
[ ADX_t = \frac{ADX_{t-1} \times 13 + DX_t}{14} ]

应用要点

  • 趋势强度:ADX > 25表示存在有效趋势
  • 方向判断:+DI > -DI为多头,反之为空头
  • 过滤功能:与趋势跟踪策略结合,过滤震荡行情

4. 成交量加权平均价

基本概念

VWAP代表日内成交的平均成本,是机构交易的执行基准。

计算公式

4.1 典型价格

[ TP_t = \frac{High_t + Low_t + Close_t}{3} ]

[ TP_t = \frac{High_t + Low_t}{2} ]

4.2 VWAP计算(累计方式)

对于第k个周期:
[ VWAP_k = \frac{\sum_{i=1}^{k} (TP_i \times Volume_i)}{\sum_{i=1}^{k} Volume_i} ]

应用要点

  • 执行质量评估:成交均价低于VWAP为执行良好
  • 动态支撑阻力:价格在VWAP之上为强势,之下为弱势
  • 日内特性:每天重新计算,日线图VWAP意义不大

5. 布林带

基本概念

BOLL是基于统计学的价格通道,反映波动率和趋势。

计算公式(默认N=20, k=2)

5.1 中轨(中线)

[ MB_t = SMA(20)t = \frac{1}{20} \sum^{t} Close_i ]

5.2 标准差

[ \sigma_t = \sqrt{\frac{\sum_{i=t-19}^{t} (Close_i - MB_t)^2}{19}} ]

5.3 上轨和下轨

[ UP_t = MB_t + 2 \times \sigma_t ]
[ DN_t = MB_t - 2 \times \sigma_t ]

应用要点

  • 波动率判断:通道收窄预示突破,扩张表示趋势运行
  • 支撑阻力:在震荡市中,上下轨作为动态支撑阻力
  • 趋势判断:价格沿上轨运行为强势上涨,沿下轨运行为强势下跌

6. 资金流量指数

基本概念

MFI是带成交量的RSI,衡量资金流入流出强度。

计算公式(N=14)

6.1 典型价格和原始资金流

[ TP_t = \frac{High_t + Low_t + Close_t}{3} ]
[ RawMF_t = TP_t \times Volume_t ]

6.2 区分正负资金流

  • 如果TP_t > TP_{t-1},计入正资金流
  • 如果TP_t < TP_{t-1},计入负资金流

6.3 计算N期总和

[ PositiveMF = \sum_{i=t-N+1}^{t} RawMF_i \quad (当TP_i > TP_{i-1}) ]
[ NegativeMF = \sum_{i=t-N+1}^{t} RawMF_i \quad (当TP_i < TP_{i-1}) ]

6.4 计算MFI

[ MFR = \frac{PositiveMF}{NegativeMF} ]
[ MFI = 100 - \frac{100}{1 + MFR} ]

应用要点

  • 超买超卖:MFI > 80超买,< 20超卖
  • 背离信号:价格新高而MFI未新高,是顶部信号
  • 量价结合:比RSI更能反映真实的资金动向

7. 量价曲线

基本概念

VPT是累积型指标,反映成交量对价格趋势的确认程度。

计算公式

[ VPT_t = VPT_{t-1} + Volume_t \times \frac{Close_t - Close_{t-1}}{Close_{t-1}} ]
初始值通常设为0。

应用要点

  • 趋势确认:VPT与价格同向为健康趋势
  • 背离分析:价格新高而VPT未新高,预示趋势衰竭
  • 长期指标:适合中长期分析,对短期噪音不敏感

8. 成交量比率

基本概念

VR衡量多空成交量对比,反映市场情绪。

计算公式(N=26)

8.1 成交量分类

  • AV(上涨成交量):收盘价 > 前收盘价
  • BV(下跌成交量):收盘价 < 前收盘价
  • CV(持平成交量):收盘价 = 前收盘价

8.2 计算N期总和

[ AV_sum = \sum_{i=t-N+1}^{t} Volume_{Up_i} ]
[ BV_sum = \sum_{i=t-N+1}^{t} Volume_{Down_i} ]
[ CV_sum = \sum_{i=t-N+1}^{t} Volume_{Even_i} ]

8.3 计算VR

[ VR = \frac{AV_sum + 0.5 \times CV_sum}{BV_sum + 0.5 \times CV_sum} \times 100 ]

应用要点

  • 情绪指标:VR > 150市场狂热,< 70市场悲观
  • 转折点:VR从极端值回落是反转信号
  • 多空力量:反映市场内部买卖力量的对比

9. 指数平滑异同移动平均线

基本概念

MACD是趋势动量指标,基于EMA的离差分析。

计算公式(12, 26, 9)

9.1 计算EMA

[ EMA(12)t = EMA(12) \times \frac{11}{13} + Close_t \times \frac{2}{13} ]
[ EMA(26)t = EMA(26) \times \frac{25}{27} + Close_t \times \frac{2}{27} ]

9.2 计算DIF和DEA

[ DIF_t = EMA(12)_t - EMA(26)_t ]
[ DEA_t = EMA(DIF, 9)t = DEA \times \frac{8}{10} + DIF_t \times \frac{2}{10} ]

9.3 计算柱状图

[ MACD_Histogram_t = DIF_t - DEA_t ]

应用要点

  • 多空分界:DIF > 0为多头,< 0为空头
  • 金叉死叉:DIF上穿DEA为金叉,反之为死叉
  • 背离分析:价格与MACD背离是强烈反转信号

10. 随机指标

基本概念

KDJ是超买超卖指标,基于价格在周期内的相对位置。

计算公式(9, 3, 3)

10.1 计算RSV

[ RSV_t = \frac{Close_t - LL_9}{HH_9 - LL_9} \times 100 ]
其中LL_9为9日最低价,HH_9为9日最高价。

10.2 主流的EMA平滑法

[ K_t = \frac{2}{3} \times K_{t-1} + \frac{1}{3} \times RSV_t ]
[ D_t = \frac{2}{3} \times D_{t-1} + \frac{1}{3} \times K_t ]
初始值通常设为50。

10.3 替代的SMA平滑法

[ K_t = \frac{RSV_t + RSV_{t-1} + RSV_{t-2}}{3} ]
[ D_t = \frac{K_t + K_{t-1} + K_{t-2}}{3} ]

10.4 计算J值

[ J_t = 3 \times K_t - 2 \times D_t ]

应用要点

  • 超买超卖:K/D > 80超买,< 20超卖
  • 交叉信号:K上穿D为金叉,反之为死叉
  • J线极端:J > 100极度超买,J < 0极度超卖

11. 相对强弱指数

基本概念

RSI衡量多空力量对比,是经典动量振荡器。

计算公式(N=14)

11.1 计算涨跌幅

[ U_t = \max(Close_t - Close_{t-1}, 0) ]
[ D_t = \max(Close_{t-1} - Close_t, 0) ]

11.2 主流的怀尔德递推平滑法

初始值:前14日简单平均
[ AU_{14} = \frac{1}{14} \sum_{i=1}^{14} U_i ]
[ AD_{14} = \frac{1}{14} \sum_{i=1}^{14} D_i ]

递推公式:
[ AU_t = \frac{AU_{t-1} \times 13 + U_t}{14} ]
[ AD_t = \frac{AD_{t-1} \times 13 + D_t}{14} ]

11.3 替代的SMA方法

[ AU_t = \frac{1}{14} \sum_{i=t-13}^{t} U_i ]
[ AD_t = \frac{1}{14} \sum_{i=t-13}^{t} D_i ]

11.4 计算RSI

[ RS = \frac{AU_t}{AD_t} ]
[ RSI_t = 100 - \frac{100}{1 + RS} = \frac{AU_t}{AU_t + AD_t} \times 100 ]

应用要点

  • 超买超卖:RSI > 70超买,< 30超卖
  • 背离信号:价格与RSI背离是重要反转信号
  • 中轴分界:RSI > 50多头占优,< 50空头占优

12. EMA与SMA的区别

基本概念

EMASMA是两种不同的移动平均计算方法。

计算公式

12.1 简单移动平均

[ SMA_t(N) = \frac{1}{N} \sum_{i=t-N+1}^{t} P_i ]

12.2 指数移动平均

平滑因子:(\alpha = \frac{2}{N+1})
[ EMA_t = \alpha \times P_t + (1-\alpha) \times EMA_{t-1} ]
初始值通常用第一个SMA或第一个收盘价。

权重分布对比

数据类型 SMA权重 EMA权重
今日数据 1/N α
昨日数据 1/N α(1-α)
N日前数据 1/N α(1-α)^N
所有权重 相等 指数衰减

应用选择

  • SMA适用场景

    • 长期趋势判断(如200日SMA)
    • 重要支撑阻力位
    • 需要稳定信号的环境
    • 波动较大的市场
  • EMA适用场景

    • 短期交易信号
    • 趋势跟踪策略
    • 动态止损设置
    • 衍生指标计算(如MACD)

综合应用框架

指标组合策略

趋势跟踪系统

入场条件:
1. ADX > 25(确认趋势存在)
2. SAR发出买入信号(价格上穿SAR)
3. 价格在VWAP之上(日内强势)

风险管理:
1. 止损:入场价 - 2×ATR
2. 仓位:风险金额 / (2×ATR)

出场条件:
1. 价格跌破SAR
2. ADX < 20(趋势结束)

震荡交易系统

入场条件:
1. ADX < 20(震荡市场)
2. RSI < 30(超卖)或 KDJ < 20
3. 价格触及布林带下轨

出场条件:
1. RSI > 70(超买)或 KDJ > 80
2. 价格触及布林带上轨

量价确认系统

趋势确认:
1. 价格上涨时,MFI > 50
2. VPT曲线同步上升
3. VR > 100(多方占优)

背离预警:
1. 价格新高,但MFI/RSI未新高
2. 价格新高,但VPT未新高

计算注意事项

初始值处理

  1. ATR/ADX/RSI:使用前N期的简单平均值作为初始值
  2. KDJ/MACD:通常设初始值为50或使用第一个计算值
  3. SAR:需要回溯价格确定初始趋势

周期选择

  1. 短期:5-15周期,适合日内交易
  2. 中期:20-50周期,适合波段交易
  3. 长期:100-200周期,适合趋势判断

参数优化

  1. 市场适应性:不同品种、不同市场环境需要不同参数
  2. 稳定性测试:参数应在不同时间段保持稳定
  3. 过拟合风险:避免过度优化参数

常见误区

  1. 单独使用指标:任何单一指标都有局限性,需组合使用
  2. 忽略市场环境:趋势指标在震荡市失效,震荡指标在趋势市失效
  3. 过度优化:参数优化要适度,保持策略的鲁棒性
  4. 忽略成交量:价格分析必须结合成交量验证

总结

技术指标是量化交易的重要工具,但必须理解其计算逻辑和适用条件。有效的交易系统需要:

  1. 多维度验证:结合趋势、动量、成交量、波动率多个维度
  2. 适应性判断:根据市场状态选择适当的指标组合
  3. 严格风控:基于ATR等波动率指标进行科学的风险管理
  4. 持续优化:根据市场变化调整参数和策略

记住:指标是工具,不是预测水晶球。成功的交易来自对市场行为的深刻理解、严格的纪律和科学的风险管理。


文档版本:1.0
更新日期:2026年01月10日
适用对象:量化交易者、技术分析师、金融专业学生

免责声明:本文档仅供学习参考,不构成投资建议。金融市场有风险,投资需谨慎。