Ta4j 量化交易框架完整指南:趋势指标解析

0 阅读10分钟
指标说明典型参数
SMAIndicator简单移动平均周期 20
EMAIndicator指数移动平均周期 9, 26
WMAIndicator加权移动平均周期 14
HMAIndicator赫尔移动平均(滞后极小)周期 16
KAMAIndicator考夫曼自适应移动平均周期 10, 快慢 EMA
JMAIndicatorJurik 移动平均(零滞后)周期 14
TMAIndicator三角移动平均(双重平滑)周期 20
VIDYAIndicator可变指数动态平均周期 14
ZLEMAIndicator零滞后指数移动平均周期 20
DoubleEMAIndicator双重指数移动平均周期 10
TripleEMAIndicator三重指数移动平均周期 10

这11个趋势指标大致可以分为三个核心流派:追求响应速度的“反应型”追求极致平滑的“稳健型”,以及追求两者平衡的“自适应型”。它们的计算逻辑和哲学思考如下。


一、 经典平滑派:速度与稳健的权衡

这类指标是技术分析的基石,它们的差异体现了在“反应速度”和“信号稳健”之间的哲学权衡。

1. 简单移动平均 (SMA, Simple Moving Average)

数学原理: 这是最基础的均线,计算特定周期内的价格算数平均值。每天的价格权重完全一样。 SMA = (P1 + P2 + ... + Pn) / n

哲学思考: SMA 代表了一种“民主”和“共识”的市场观。它认为一段时期内所有交易者的平均成本才是市场真实的价值所在。通过给予所有价格相同的权重,SMA 能有效过滤掉短期的价格噪音,清晰地展现市场的长期主流趋势。它的缺点也很明显——由于对近期价格不够敏感,在趋势反转时反应会非常滞后。

2. 指数移动平均 (EMA, Exponential Moving Average)

数学原理: EMA 是一种递归加权平均,它赋予了近期价格更高的权重,并且权重以指数形式衰减。其计算公式为: EMA_today = (Price_today × k) + EMA_yesterday × (1 - k) 其中平滑系数 k = 2 / (N + 1)

哲学思考: EMA 的哲学是“厚今薄古”。它认为市场具有“记忆”,但“记忆”会随时间迅速衰退,近期价格变化比遥远的历史数据更能预示未来的趋势。这种设计使得 EMA 能更快地对市场变化做出反应,因此特别受到短线交易者的青睐,常被用作捕捉趋势变化的先行指标。

3. 加权移动平均 (WMA, Weighted Moving Average)

数学原理: WMA 通过线性递减的方式为数据点分配权重。例如在 5 日 WMA 中,今日权重为 5,昨日为 4,以此类推,最后除以权重之和。 WMA = (P1 × n + P2 × (n-1) + ... + Pn × 1) / (n × (n+1) / 2)

哲学思考: WMA 的哲学是“线性地”强调“时效性”。相较于 EMA 的指数衰减,WMA 给予近期价格更明确、更线性的权重。这种设计让它在理论上比 EMA 更快,但对参数选择也更敏感,在震荡市场中容易产生噪音信号。

4. 三角移动平均 (TMA, Triangular Moving Average)

数学原理: TMA 是一种双重平滑的移动平均线。它先计算一个 SMA,然后再对这个 SMA 的结果计算一次 SMA。 TMA = SMA(SMA(price, n), n)

哲学思考: TMA 的哲学是“稳健压倒一切”。它的核心目标是过滤掉市场中几乎所有的“噪音”和虚假波动,只呈现最平滑、最清晰的价格趋势。这种对“平滑”的极致追求是以牺牲“速度”为代价的,因此 TMA 主要用于识别长期趋势,而非捕捉短期交易点。


二、 高速反应派:为捕捉每一个先机

这类指标的核心目标是解决传统均线固有的“滞后性”,力求在价格变动的第一时间做出反应。

5. 赫尔移动平均 (HMA, Hull Moving Average)

数学原理: HMA 通过一个巧妙的“三步走”公式来消除滞后。

  1. 计算 WMA(n/2) 并乘以 2,再减去 WMA(n),得到一个“超前”信号。
  2. 对上一步的结果,取周期为 √n 的 WMA 进行平滑。

哲学思考: HMA 的哲学是“以快制快”。Alan Hull 开发它的初衷就是为了破解“速度与平滑度不可兼得”的困局。它的核心思想是通过“过度补偿”再“修正”的过程,让均线尽可能地贴近价格,从而在趋势启动的初期就发出信号。

6. 零滞后指数移动平均 (ZLEMA, Zero-Lag Exponential Moving Average)

数学原理: ZLEMA 并不直接计算价格的移动平均,而是先计算一个“无延迟”的参考价格。

  1. 计算延迟量Lag = (N - 1) / 2,这是传统 EMA 固有的延迟期。
  2. 调整价格Detrended Price = Price + (Price - Price[N - Lag]),即用当前价格加上当前价格与 Lag 期前价格的差值,从而“预判”价格的未来走势。
  3. 对这个调整后的价格计算 EMA。

哲学思考: ZLEMA 的哲学是“向前看”。它不再被动地回顾过去,而是通过“去趋势”处理,主动预测价格应有的位置,试图弥补传统均线的缺陷。它能以极快的速度捕捉趋势拐点,非常适合短线交易,但在震荡市场中也可能放大噪音。

7. 双重指数移动平均 (DEMA, Double Exponential Moving Average)

数学原理: DEMA 并非简单地对 EMA 进行双重平滑,而是通过一个公式来消除单一 EMA 的滞后。 DEMA = 2 × EMA(price, n) - EMA(EMA(price, n), n)

哲学思考: DEMA 的哲学是“纠错”。它先承认 EMA 存在滞后,然后通过减去 EMA 的 EMA(即滞后的滞后)来部分抵消这种延迟,从而得到一个更快、更准确的信号。Patrick Mulloy 发明它的目的就是“用更快的移动平均线平滑数据”。

8. 三重指数移动平均 (TEMA, Triple Exponential Moving Average)

数学原理: TEMA 可以看作是 DEMA 的进一步扩展,它通过三次计算 EMA 来更激进地消除滞后。 TEMA = 3 × EMA(price, n) - 3 × EMA(EMA(price, n), n) + EMA(EMA(EMA(price, n), n), n)

哲学思考: TEMA 的哲学是“极致反应”。它将 DEMA 的“纠错”思想推向极致,追求最低的延迟。在强劲的趋势行情中,TEMA 能提供最及时的入场信号,但在盘整市场中,其极高的敏感性也意味着会产生大量虚假信号。


三、 市场自适应派:智能地适应市场环境

这类指标能够根据市场状况(如波动率)动态调整自身的参数,实现了智能化的趋势跟踪。

9. 考夫曼自适应移动平均 (KAMA, Kaufman‘s Adaptive Moving Average)

数学原理: KAMA 的核心是“效率系数 (ER)”,用于判断市场状态。 ER = |价格净变化| / |价格总波动|,ER 值介于 0 和 1 之间。 然后,KAMA 根据 ER 动态调整 EMA 的平滑常数 SC。趋势强劲时(ER→1),SC 趋近于快线(如 2),均线加速追随;震荡时(ER→0),SC 趋近于慢线(如 30),均线几乎停滞。

哲学思考: KAMA 的哲学是“顺势而为,静待时机”。它试图赋予均线以“智慧”,使其能够像优秀的交易员一样,在趋势行情中激进交易,在无方向的盘整中离场观望,从而最大限度地减少假信号带来的损失。

10. 可变指数动态平均 (VIDYA, Variable Index Dynamic Average)

数学原理: VIDYA 的原理与 KAMA 类似,但它使用“钱德动量振荡器 (CMO)”作为动态调节因子,替换了 EMA 公式中的平滑系数 kVIDYA(i) = Price(i) × F × |CMO(i)| + VIDYA(i-1) × (1 - F × |CMO(i)|) 其中 F = 2/(N+1)

哲学思考: VIDYA 的哲学是“动量决定速度”。它的核心思想是,市场的动量(CMO 的绝对值)直接决定了均线的敏感度。动量越大,均线跟随得越快;动量越小,均线越平滑。这种设计让 VIDYA 既能跟随快速趋势,又能过滤掉低波动时期的噪音。

11. Jurik 移动平均 (JMA, Jurik Moving Average)

数学原理: JMA 的精确算法由 Mark Jurik 发明并拥有专利,并未完全公开。已知它基于相位补偿和自适应滤波技术,能显著减少价格序列的噪音和滞后。

哲学思考: JMA 的哲学是“创造终极平滑与速度的平衡”。Mark Jurik 的目标是创造一个理论上理想的均线:几乎无延迟、高度平滑且能自适应各种市场环境。它的核心思路是在保留价格变化主要特征的同时,滤除所有可被视为噪音的部分,使趋势线更干净、更清晰。

大致原理


第一步:e0 —— “我现在大致在哪”

e0[t] = P[t] × (1 - α) + e0[t-1] × α
  • P[t]:当前价格
  • e0[t-1]:上一期的估计位置
  • α:记忆系数(0~1),α 越大越依赖过去,α 越小越相信当前价格

开车比喻:你看了一眼速度表,但不会完全相信,还会结合刚才的记忆。


第二步:e1 —— “价格跑得有多快”

e1[t] = (P[t] - e0[t]) × (1 - β) + e1[t-1] × β
  • P[t] - e0[t]:当前价格与你估计位置的差距(偏离量)
  • β:对“差距”的平滑系数,β 越大越记得过去的差距变化

开车比喻:你发现前车尾灯突然变亮(差距变大),就知道它在减速。e1 就是这个“亮度变化”的记忆。


第三步:e2 —— “我应该提前挪多少”

理想位置 = e0[t] + γ × e1[t]
差值 = 理想位置 - JMA[t-1]
e2[t] = 差值 × (1-α)² + e2[t-1] × α²
  • γ:相位比,决定你多相信“速度”能预测未来(γ>1 超前,γ<1 滞后)
  • (1-α)²α²:控制修正步长,避免过冲

开车比喻:你看到前车减速,不仅松开油门,还轻轻点一下刹车。γ 决定点刹车的力度,α 决定你是猛点一下还是慢慢压。


第四步:最终 JMA

JMA[t] = JMA[t-1] + e2[t]

开车比喻:你根据前车尾灯的变化调整了车速,现在车已经到了更合适的位置。


参数来源(你输入的三个值)

你输入它控制转化为公式中的
barCount(周期 N)记忆长度β = 0.45×(N-1) / (0.45×(N-1)+2)
phase(-100 ~ 100)超前/滞后力度γ = phase/100 + 1.5 (范围 0.5~2.5)
power(默认 2)响应激进程度α = β^power

一句话总结公式逻辑

JMA 先估算一个“理想位置”(e0 + γ×e1),然后看这个理想位置和实际位置的差距,取一小部分(用 α 控制)作为修正量(e2),累加到上一期的 JMA 上。


总结

这些均线指标从SMA的“平均主义”,到EMA/WMA对“时效性”的强调,再到KAMA/VIDYA对“市场环境”的智能适应,以及JMA对“完美曲线”的技术追求,体现了技术分析从描述市场到理解市场,再到主动适应市场的演进。每种均线没有绝对的优劣,关键在于理解其背后的哲学,并根据自己的交易策略和市场环境做出选择。