ATR 的一个实际计算示例是什么?
直接答案
ATR 的一个实际示例展示了如何将一组有限的价格数据转换为真实波幅(True Range)值,然后取平均值得到 ATR。为确保示例可验证,以下数字均为假设(非实时报价),且所有计算假设均已明确说明。
机制或定义
ATR(平均真实波幅) 是一种基于 真实波幅(True Range, TR) 的波动性度量指标。每个周期的 TR 定义为以下三者中的最大值:
- 当前最高价 − 当前最低价
- |当前最高价 − 前一收盘价|
- |当前最低价 − 前一收盘价|
然后,ATR 通常是选定回溯周期(在许多常见设定中为 14 个周期)内 TR 的平均值。由于回溯周期长度和所选周期数据是输入参数,ATR 并非一个通用的固定数值;它取决于具体的数据集和设置。
核心要点:ATR 总结的是 价格变动的幅度,而非方向。较高的 ATR 表示在测量周期内典型价格范围更大;但它无法告诉你价格接下来会上涨还是下跌。
证据或示例(实际计算)
假设条件(明确列出)
- 我们使用 3 个周期 以保持算术清晰。
- 每个周期为一个K线(例如,一天)。本示例中的 ATR 回溯周期为 3,因此 ATR 将是 TR1、TR2、TR3 的平均值。
- 价格数据为以下假设值。
假设的 OHLC 输入
设周期 1 的前一收盘价为 C0。对于每个周期 t,我们需要最高价(Ht)、最低价(Lt)和前一收盘价(Ct−1)。
- 周期 1:H1 = 1.2000,L1 = 1.1950,前一收盘价 C0 = 1.1980
- 周期 2:H2 = 1.2020,L2 = 1.1970,前一收盘价 C1 = 1.2000
- 周期 3:H3 = 1.2010,L3 = 1.1960,前一收盘价 C2 = 1.1975
(注意:我们仅需每个周期的前一收盘价用于 TR 计算。本示例已提供。)
第一步:计算真实波幅(TR)
周期 1
- (H1 − L1) = 1.2000 − 1.1950 = 0.0050
- |H1 − C0| = |1.2000 − 1.1980| = 0.0020
- |L1 − C0| = |1.1950 − 1.1980| = 0.0030
- TR1 = max(0.0050, 0.0020, 0.0030) = 0.0050
周期 2
- (H2 − L2) = 1.2020 − 1.1970 = 0.0050
- |H2 − C1| = |1.2020 − 1.2000| = 0.0020
- |L2 − C1| = |1.1970 − 1.2000| = 0.0030
- TR2 = max(0.0050, 0.0020, 0.0030) = 0.0050
周期 3
- (H3 − L3) = 1.2010 − 1.1960 = 0.0050
- |H3 − C2| = |1.2010 − 1.1975| = 0.0035
- |L3 − C2| = |1.1960 − 1.1975| = 0.0015
- TR3 = max(0.0050, 0.0035, 0.0015) = 0.0050
第二步:对 TR 取平均值得到 ATR
若 ATR 为这三个周期 TR 的平均值:
- ATR(3) = (TR1 + TR2 + TR3) / 3 = (0.0050 + 0.0050 + 0.0050) / 3 = 0.0050
因此,在这些明确假设下,ATR 等于 0.0050(以输入序列的价格单位表示)。
如何独立验证
使用相同的公式和假设的最高价/最低价/前一收盘价重新计算 TR1、TR2、TR3,然后取算术平均值。如果任何数值不同,则差异可能来自不同的输入数据集、不同的周期定义或不同的平均周期长度。
局限性与风险(主要失效模式)
- 无方向性:ATR 衡量的是波动幅度。仅凭 ATR 推断价格方向可能会失败,因为方向取决于价格结构,而不仅仅是波幅大小。
- 输入选择影响 ATR:不同的K线时间框架(日线 vs 小时线)、不同的回溯周期长度或不同数据供应商的调整都会改变 TR,从而影响 ATR。
- 市场状态变化:波动性可能突然变化。过去的 ATR(即使计算正确)在市场条件改变时,可能无法反映未来的波动性。
- 成本与执行影响:ATR 基于价格波幅计算,但实际交易结果还受点差、滑点和手续费影响,这些成本相对于价格变动幅度可能不可忽略。
验证或下一个问题
为进一步加深理解,可尝试使用不同的回溯周期(例如 5 个周期)重新计算该示例,并确认当 TR 值变化时 ATR 如何变动。一个有用的问题是:如果某周期的最高价或最低价远高于或低于前一收盘价(例如出现大幅跳空),TR 会如何变化?因为 TR 会取三项中的最大值。