ATRとトレンド指標はどのように計算されるのか

ATRとトレンド指標の計算入力の制限について説明します。

ATRとトレンド指標はどのように計算されるのか

直接の答え

ATR(Average True Range)と、ATRに方向性を組み合わせた「トレンド指標」は、通常、同じ基本入力から計算されます。それはOHLCのローソク足データです。ATRは、現在の高値/安値と前の終値から導かれるtrue rangeの値を使います。その後、トレンド要素は、選択した方向性の方法(たとえば移動平均、バンドロジック、ブレイクアウトルール)によって計算されます。正確な数式とパラメータを選べば、任意の過去データセットで結果を再現できます。

メカニズム:定義と必要データ

1) ATRが測るもの

ATRは、見ている期間(ルックバックウィンドウ)で価格がどれくらい動くかを推定するボラティリティ指標です。ATRは方向性を直接は測りません。動きの大きさ(マグニチュード)を測ります。

必要な入力データ(各ローソク足ごとに):

  • 高値(H)
  • 安値(L)
  • 終値(C)
  • 前の終値(C_prev)=直前のローソク足の終値

前提: 一貫したローソク足系列(同じ時間足、同じセッションの扱い、そして「前のローソク足」の同じ定義)を使っていること。時間足を変えると、入力が変わるためATRも変わります。

2) True Range(TR)式

最初のローソク足以降の各ローソク足について、**True Range(TR)**を次の最大値として計算します:

  • H − L
  • |H − C_prev|
  • |L − C_prev|

概念的には:

  • TR = max(H − L, |H − C_prev|, |L − C_prev|)

このロジックは、前の終値に対して「ギャップ」が生じる可能性のある動きを捉えるためです(始値が前の終値と大きく異なるときに起こりやすい)。市場データにギャップがなくても、この式はローソク足の構築による不連続性を考慮します。

3) ATRの計算(ローリング平均)

ATRは通常、N期間(ルックバックウィンドウ)にわたるTRのローリング平均です:

  • ATR_N(t) = 時刻tで終わる直近N本のローソク足におけるTRの平均

多くのプラットフォームでは、この平均を単純な算術平均ではなく、平滑化(たとえばワイルダーの平滑化)で実装します。再現性のために重要なのは、同じ平均化手法と同じNを使うことです。

単純移動平均(SMA)版(概念):

  • ATR_N(t) = (TR(t) + TR(t−1) + … + TR(t−N+1)) / N

平滑化(ワイルダー風)版(概念):

  • 最初に、最初のN個のTR値の平均に等しい初期ATRを設定します。
  • その後、直前のATRと最新のTRを使って、ATRを反復的に更新します。

プロバイダが「ATR」と言っていても、その数値を一致させるには、平滑化の厳密な定義と初期値の扱いが必要です。

4) この文脈で「トレンド指標」が通常意味するもの

「ATRとトレンド指標」は、次のようなワークフローを指すことが一般的です:

  1. ATRがボラティリティのスケール(どれくらい大きく動きやすいか)を提供する。
  2. トレンド手法が方向性や構造(価格が上昇トレンドのように振る舞っているのか、下降トレンドのように振る舞っているのか)を提供する。
  3. 2つを組み合わせる際に、ATRを使ってバンド、オフセット、またはしきい値のサイズを決める。

「トレンド指標」は単一の普遍的な数式ではないため、計算は「どのトレンド規則を意味しているか」に依存します。よくあるパターンは次のとおりです:

  • 移動平均トレンド: トレンドは移動平均から推定され、しばしばその傾き、または価格に対する相対位置を使います。
  • バンドベースのトレンド: 価格が、ベースラインに±(ATRスケールのオフセット)から導かれるバンドを横切るときに、トレンド状態が切り替わり得ます。
  • ブレイクアウト/構造ロジック: 価格がローリングの水準を上回る/下回るときにトレンド状態が更新されます(その水準はATRで調整されている場合があります)。

5) 例:計算テンプレート(安定した仕組みと選択肢を分ける)

特定のブランドの数式に固定せず、ATR駆動のトレンドオーバーレイを計算するには、この再現可能なテンプレートを使います:

  1. 時間足ローソク足ソース(OHLC系列)を選ぶ。
  2. ATRウィンドウNを選ぶ。
  3. 履歴が十分にある各ローソク足tについて、TR(t)を計算し、その後ATR_N(t)を計算する。
  4. トレンドのベースラインを選ぶ(次のいずれか:移動平均、ローリング高値/安値、または別の規則)。
  5. トレンド規則に対してATRをどう使うかを選ぶ:
    • オフセットバンド:ベースライン ± (k × ATR_N)
    • しきい値:ATRで調整されたブレイクアウト水準
    • サイズ:状態変数のステップ幅
  6. トレンド状態の変化を定義する(たとえば、価格がバンドを横切るとき、またはベースライン条件が反転するとき)。

前提: 選んだ方法には、明示的な「状態」ルール(トレンドをどうラベル付けするか)と、明示的な組み合わせルール(ATRがバンド/しきい値にどう影響するか)が含まれていること。

証拠または例:自分のデータで再現する方法

ライブデータやプラットフォーム固有の詳細は想定しないため、ここでは一般的で、確認できるワークフローを示します。

手順1:各ローソク足のTRを計算する

少なくとも1つ前のローソク足がある地点を選びます。ローソク足tについて:

  • H(t) − L(t) を計算する
  • |H(t) − C(t−1)| を計算する
  • |L(t) − C(t−1)| を計算する
  • 最大値をTR(t)とする

連続するローソク足について繰り返します。

手順2:N期間でATRを計算する

Nと平均化手法を選びます:

  • SMAスタイルのATRなら、直近N個のTR値を平均する。
  • ワイルダーで平滑化されたATRなら、その反復的な更新と初期ATRの定義に従う必要がある。

手順3:トレンド規則を適用する

1つの明示的なトレンド定義を選び、常に同じ方法でテストします:

  • 移動平均アプローチを使うなら、ベースライン(たとえば移動平均)を計算し、ベースラインの傾き、または価格がその上/下にあるかどうかから方向性を導きます。
  • ATRバンドを使うなら、ベースライン ± (k × ATR) により上限/下限バンドを計算し、状態遷移ルールを定義します(たとえば「終値が上限バンドより上のときトレンドは上向き」というのは一つの可能なルールです。あなたが選んだ厳密なルールに合わせる必要があります)。

手順4:途中値を確認して検証する

独立して検証するには、少なくとも次を比較します:

  • TR(t) の値
  • ATRが定義される最初の地点におけるATR_N(t)
  • 知っているローソク足でのトレンド状態の変化

参照実装とこれらのいずれかが異なる場合、最も可能性が高い原因は次のとおりです:

  • ローソク足データの前処理が異なる
  • ATRの平滑化が異なる(SMA vs ワイルダー風)
  • 最初のATR値の扱いが異なる
  • トレンド規則のパラメータが異なる(ベースラインの種類、期間長、kの乗数)

限界とリスク(重大な失敗パターン)

1) ATRのウィンドウと平滑化の選択は、値を大きく変え得る

ATRはNと、平均の計算方法に依存します。同じ「ATR」という名称でも、平滑化や初期値の慣習が異なるため、結果が変わることがあります。

2) トレンドのラベリングは一意に定義されない

「トレンド指標」は、さまざまな計算のカテゴリです。次を指定しない場合:

  • ベースラインの方法、
  • (ある場合)バンド/オフセットのロジック、そして
  • 状態変化のルール、 出力は一意に検証できません。

3) データセット開始時の例外ケース

N個のtrue range値が揃う前は、ATRは未定義、または初期化ルールに基づいて計算されます。

DOCUMENT END

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