ATR(平均トゥルー・レンジ)はどのように計算される?

ATRの計算式の入力と重要な制限を学びましょう。

ATR(平均トゥルー・レンジ)はどのように計算される?

計算する前に「ATR」が意味するもの

ATRはAverage True Range(平均トゥルー・レンジ)の略です。これはTrue Range(TR)という考え方から作られるボラティリティ指標で、1つの期間から次の期間へ移る際に起こり得るギャップも含めて、その期間の中で価格がどれくらい動くかを捉えようとします。

ATRは予測ではなく、方向性のシグナルでもありません。**直近の実現された変動(realized variability)**を要約します。条件が変わると、同じATR水準でも異なる環境を表すことがあります。

中核となる式(TRとATR)

ほとんどのATR計算は、次の構造に従います。

  1. 各期間ごとにTrue Range(TR)を計算する ある期間 t におけるTRは、次の3つの量の最大値です:
  • レンジ: (High_t - Low_t)
  • 前の終値に対するギャップ(上方向の動き): (|High_t - Close_{t-1}|)
  • 前の終値に対するギャップ(下方向の動き): (|Low_t - Close_{t-1}|)

つまり: [ TR_t = \max\big((High_t - Low_t),\ |High_t - Close_{t-1}|,\ |Low_t - Close_{t-1}|\big) ]

  1. ルックバック区間でTRを平均してATRを得る ルックバック期間の長さを N 期間とします。これらの期間におけるATRは平均として計算できます: [ ATR_t = \frac{1}{N} \sum_{i=0}^{N-1} TR_{t-i} ]

一部のシステムでは、**平滑化/直近重み付け(smoothing/recency weighting)**の方法でATRを計算しますが、重要なデータ依存関係は同じです。つまり、高値・安値・前の終値に基づくTR値です。

必要な入力と前提

ATRを計算するには、一貫した時間軸のOHLCデータ(始値・高値・安値・終値)が必要です。あるいは少なくとも、連続する期間について高値・安値・終値が必要です。

必要なパラメータ

  • 時間軸/期間の定義(例:日足、1時間足)。ATRは「1つの期間」が何を意味するかに依存します。
  • ルックバック期間の長さ N(例:実務では14期間がよく使われますが、計算にはいずれかのNを選ぶことだけが必要です)。
  • Close_{t-1} を現在の期間の High_t と Low_t に合わせる方法。前の終値は、データセット内の直前の期間から取得する必要があります。

計算時に必ず明示すべき前提:

  • OHLC価格は、同じ銘柄(同じインストゥルメント)で、同じ取引セッションのルールに基づいている。
  • 比較対象のシステムと同じ丸め/精度ルールを使用している。
  • 最初の期間を慎重に扱う必要がある:最初に計算可能な期間のTRには Close_{t-1} が必要なので、前の終値がないとTRを計算できません。

明確な前提つきの小さな例

ある期間 t のTRを、前の期間 t−1 を使って計算していると仮定します。

仮定:

  • 前の終値 (Close_{t-1} = 1.1000)
  • 現在の高値 (High_t = 1.1080)
  • 現在の安値 (Low_t = 1.1020)

3つの候補を計算します:

  • (High_t - Low_t = 1.1080 - 1.1020 = 0.0060)
  • (|High_t - Close_{t-1}| = |1.1080 - 1.1000| = 0.0080)
  • (|Low_t - Close_{t-1}| = |1.1020 - 1.1000| = 0.0020)

すると: [ TR_t = \max(0.0060, 0.0080, 0.0020) = 0.0080 ]

ルックバックが N = 3 なら、時間 t におけるATRを得るために (TR_t)、(TR_{t-1})、(TR_{t-2}) を平均します。

制限事項とよくある失敗パターン

  1. ATRは大きさを測り、方向は測らない ATRは価格が上がっているのか下がっているのかを教えてくれません。同じATRでも、方向や構造が異なる2つの期間があり得ます。

  2. ATRは選択した時間軸に大きく依存する 期間の長さを変える(たとえば日足の代わりに1時間足を使う)と、TRの系列が変わり、その結果ATRも変わります。この違いを調整せずに、時間軸をまたいでATRの値を比較することはできません。

  3. ルックバック期間の長さが「反応性」を変える 短い N はTRの直近の変化により速く反応し、長い N はそれらをなめらかにします。比較のためにATRを使うなら、同じもの同士で比較する必要があります:同じ時間軸、同じ N、同じTR定義。

  4. データ品質とセッションの整合がTRを歪めることがある TRはHigh、Low、そして前のCloseを使うため、バーの作り方に不整合がある(欠けた期間、休日によるギャップ、異なるセッションクロージング時刻など)と、人工的なギャップが生まれてTRが膨らむことがあります。

  5. 過去のATR水準は将来の挙動を保証しない 過去にATRが上がったり下がったりしていても、そのパターンが将来の似た変化を保証するわけではありません。ATRは構造的なルールではなく、直近の実現された変動を反映しています。

ATRを独立に検証する方法

ATRの計算を検証するには、同じOHLC入力から独立に再現できます:

  1. 特定の時間軸とルックバック期間の長さ N を選ぶ。
  2. 各期間について、3つの候補の最大値として (TR_t) を正確に計算する。
  3. 直近の N 個のTR値を平均する(または参照しているプラットフォームが使うのと同じ平滑化手法を適用する)。
  4. エッジ処理を確認する:Close_{t-1} を必要とする最初のTR値、そして十分なTR観測が必要な最初のATR値。

計算したATRが、チェックしているツールの値と異なる場合、最もよくある原因は、時間軸の不一致、N の不一致、TR定義のバリアントの違い(まれだが可能)、または平滑化/初期化の選択の違いです。

次に考えるべき1つの質問

異なるソース間でATRを比較するときは、次を尋ねてください:両方の計算が同じ時間軸、同じルックバック期間の長さ、そして(もしあれば)同じ平滑化方法を使っていますか?

DOCUMENT END

外国為替およびCFD取引には大きなリスクがあります。FoxiForexの情報は教育目的であり、個別の金融助言ではありません。スポンサー掲載は明確に表示されます。