Tema 的计算方法(公式、参数和所需数据)

了解 TEMA 是如何计算的,以及验证所需的输入。

Tema 的计算方法(公式、参数和所需数据)

直接答案:TEMA 的计算

TEMA 是三重指数移动平均线(Triple Exponential Moving Average)。它通过将三个从同一输入价格序列计算出的指数移动平均线(EMA)组合,生成一个平滑值。

一种常用的 TEMA 形式是:

  • 设 EMA1 = 以周期 n 对价格序列计算的 EMA
  • 设 EMA2 = 对 EMA1 计算的 EMA(相同周期 n
  • 设 EMA3 = 对 EMA2 计算的 EMA(相同周期 n

那么:

TEMA = 3·EMA1 − 3·EMA2 + EMA3

因此,只要您能一致地计算出三个 EMA,就可以计算出 TEMA。

机制或定义:哪些输入和参数重要

1) 输入数据序列

TEMA 是从一个按时间排序的数值序列(在技术分析中通常为“价格”序列)计算得出的。您必须确定所使用的序列(例如收盘价),并保持一致使用。

关键要求:TEMA 依赖于精确的数值输入序列。如果两个数据源使用不同的价格定义(或不同的重采样规则),即使使用相同的周期,其 TEMA 值也可能不同。

2) 平滑周期 n

上述公式中唯一的显式参数是周期长度 n

  • n 控制 EMA 的反应速度。
  • 较大的 n 通常平滑效果更强(反应更慢)。
  • 较小的 n 通常反应更快,但短期波动也更多。

3) EMA 步骤(构建模块)

在计算 TEMA 之前,您需要先计算 EMA。标准 EMA 更新使用一个平滑因子:

α = 2 / (n + 1)

一个常见的递归定义是:

EMA_t = α·Price_t + (1 − α)·EMA_(t−1)

为了启动递归,您必须为第一个 EMA 值选择一个初始化规则(例如,将 EMA_(first) 设为第一个 Price 值,或使用前 n 个值的平均值——不同软件可能采用不同方法)。此初始化选择直接影响早期 EMA 值,从而影响早期 TEMA 值。

4) 构建三个 EMA

使用上述 EMA 定义:

  • EMA1 直接从选定的输入序列计算得出。
  • EMA2 通过对 EMA1 序列应用相同的 EMA 过程计算得出。
  • EMA3 通过对 EMA2 序列应用相同的 EMA 过程计算得出。

这三个 EMA 均使用相同的平滑周期 n,因此也使用相同的 α。

证据或示例:可自我验证的计算流程

以下是一个您可以使用自己的数据精确复现的计算流程。

本示例的假设:

  • 您有一个数值序列 Price[1…T]。
  • 您选择了一个周期 n
  • 您使用 α = 2/(n+1)。
  • 您在整个过程中使用一种一致的 EMA 初始化方法。

步骤:

  1. 从 Price[t] 计算 EMA1[t]:
    • EMA1[t] = α·Price[t] + (1−α)·EMA1[t−1]
  2. 对 EMA1 应用相同的 EMA 更新来计算 EMA2[t]:
    • EMA2[t] = α·EMA1[t] + (1−α)·EMA2[t−1]
  3. 对 EMA2 应用相同的 EMA 更新来计算 EMA3[t]:
    • EMA3[t] = α·EMA2[t] + (1−α)·EMA3[t−1]
  4. 组合它们:
    • TEMA[t] = 3·EMA1[t] − 3·EMA2[t] + EMA3[t]

独立验证思路:

  • 如果您使用相同的 α 和初始化规则在两个不同环境中(例如电子表格和代码)实现这些步骤,两个 TEMA 序列在初始“预热”阶段之后应基本一致。

局限性和风险:TEMA 可能误导或失效的情况

1) 早期值依赖于初始化

由于 EMA 使用递归定义,EMA1 的起始值决定了后续 EMA1、EMA2 和 EMA3 的值。这意味着不同实现之间的早期 TEMA 值可能有明显差异。

关键限制:除非您知道数据源使用的精确初始化方法,否则应将任何基于 EMA 的指标的前几个点视为“预热”值。

2) TEMA 仍对噪声输入敏感

TEMA 的设计旨在减少与简单 EMA 相比的滞后,但这并不能消除基础价格序列中的随机性。当输入序列频繁出现小幅反转或噪声时,TEMA 的波动可能比更慢的平均线更大。

失效模式:如果您在不稳定的或低质量的序列(例如受缺失数据或不一致采样影响的序列)上计算 TEMA,输出结果可能变得不可靠。

3) 实际中存在不同定义

尽管公式 TEMA = 3·EMA1 − 3·EMA2 + EMA3 被广泛使用,但一些平台在处理 EMA 初始化时可能有所不同,或在实践中使用略有不同的约定。因此,来自不同提供商的两个“TEMA”线可能不完全匹配。

验证风险:您不能假设名称“TEMA”就保证了计算细节完全相同。您需要提供商的确切参数化和初始化方法。

4) 时间框架和数据预处理很重要

即使不改变 n,预处理步骤——例如重采样K线、使用不同的交易时段或处理缺失的时间戳——也会改变输入序列,从而改变 EMA 链。

关键限制:TEMA 值在不同时间框架或不同处理方式的数据之间不可直接转移,必须重新计算。

验证或下一步问题:如何确认您的 TEMA

要独立确认 TEMA 的计算:

  1. 确认您使用的输入序列(例如收盘价)。
  2. 确认周期 n 以及由此得出的 α = 2/(n+1)。
  3. 确认 EMA1 的 EMA 初始化规则(以及 EMA2 和 EMA3 是否使用相同的约定)。
  4. 重新计算 EMA1、EMA2、EMA3,然后应用 3·EMA1 − 3·EMA2 + EMA3

一个有用的下一步是将您计算出的 TEMA 与同一数据集和相同初始化下的第二个独立实现进行比较。如果在预热区域之后两者匹配,则您的计算机制可能是正确的。

如果您想进一步深入,还可以检查 TEMA 与同一输入序列上其他移动平均线的关系,或研究改变 n 如何影响平滑度和响应速度。

外汇和差价合约交易具有重大风险。FoxiForex的信息仅用于教育,不构成个人财务建议。赞助内容会被清楚标注。