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 初始化方法。
步骤:
- 从 Price[t] 计算 EMA1[t]:
- EMA1[t] = α·Price[t] + (1−α)·EMA1[t−1]
- 对 EMA1 应用相同的 EMA 更新来计算 EMA2[t]:
- EMA2[t] = α·EMA1[t] + (1−α)·EMA2[t−1]
- 对 EMA2 应用相同的 EMA 更新来计算 EMA3[t]:
- EMA3[t] = α·EMA2[t] + (1−α)·EMA3[t−1]
- 组合它们:
- 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 的计算:
- 确认您使用的输入序列(例如收盘价)。
- 确认周期 n 以及由此得出的 α = 2/(n+1)。
- 确认 EMA1 的 EMA 初始化规则(以及 EMA2 和 EMA3 是否使用相同的约定)。
- 重新计算 EMA1、EMA2、EMA3,然后应用 3·EMA1 − 3·EMA2 + EMA3。
一个有用的下一步是将您计算出的 TEMA 与同一数据集和相同初始化下的第二个独立实现进行比较。如果在预热区域之后两者匹配,则您的计算机制可能是正确的。
如果您想进一步深入,还可以检查 TEMA 与同一输入序列上其他移动平均线的关系,或研究改变 n 如何影响平滑度和响应速度。