FXで平均真の値幅(ATR)を計算する方法
直接の答え:FXにおける「平均真の値幅(average true range)」の意味
平均真の値幅(Average True Range, ATR)は、選んだ期間数にわたる True Range(真の値幅)(TR)の平均に基づくボラティリティ指標です。FXでは、現在の期間の高値と安値、そして前の期間の終値からTRを計算し、他の流動性の高い市場で使われるのと同じ定義を用います。
ATRを計算するには:
- 下記の3要素ルールで各期間のTRを計算し、
- 参照期間(lookback window)にわたってTRを平均します(多くの場合、標準的な平滑化手法を用います)。
解説:仕組みと入力値
1) 各期間の真の値幅(TR)を定義する
各期間(例:選択した時間軸の各ローソク足)について、次を使います:
- 高値 = その期間中の最高価格
- 安値 = その期間中の最安価格
- 前の終値 = 直前の期間の終値
TRは次の最大値として計算します:
- (高値 − 安値)
- abs(高値 − 前の終値)
- abs(安値 − 前の終値)
なぜ重要か:この3つの項は、ボラティリティが「現在のローソク足の値幅」から来ているのか、それとも「前の終値に対するギャップ/跳び」によるのかを捉えます。FXはしばしば連続的に取引されますが、「前の終値」を参照することで比較の基準が定まります。
2) TRからATRを計算する
TRからN期間のATRを作る方法は、一般的に2通りあります:
- 単純移動平均(SMA)的アプローチ: 時点tのATRは、直近N個のTR値の算術平均です。
- ワイルダー型の平滑化アプローチ: ATRは、平滑化係数を用いて再帰的に計算されます。前のATRと現在のTRを使います。これにより、ゆっくり反応する「平滑化された」ATR系列が得られます。
単純平均か平滑化かという厳密な選択によってATRの値が変わるため、結果を検証するときはどの方法を使ったかを記録してください。
3) 時間軸とデータの整合性を選ぶ
ATRは、使用するローソク足の時間軸(例:1時間足か4時間足か)に依存します。さらに、OHLC(高値・安値・終値)の入力が、期間をまたいで同じフィードで、同じセッション/タイムゾーン規則に基づいていることを確認してください。
例と、当て推量なしでできる確認
単一の期間について、計算を検証する具体的な方法を示します。
期間tの前提:
- 高値 = 1.1050
- 安値 = 1.1010
- 前の終値 = 1.1020
ステップA:3つのTR候補を計算する:
- 高値 − 安値 = 1.1050 − 1.1010 = 0.0040
- abs(高値 − 前の終値) = abs(1.1050 − 1.1020) = 0.0030
- abs(安値 − 前の終値) = abs(1.1010 − 1.1020) = 0.0010
ステップB:最大値を取る:
- TR = max(0.0040, 0.0030, 0.0010) = 0.0040
ステップC:N期間でATRを計算する
- 単純平均を使う場合:直近N個のTR値を平均します。
- 平滑化を使う場合:前のATRと現在のTRを用いて、選んだ再帰ルールを適用します。
検証チェック:
- TRは決して負にならないはずです。
- ATRはTRの平均的な大きさを反映するはずです。TRが繰り返し急増するなら、ATRは通常上昇します。
- いくつかの期間についてTRを再計算し、ツール/数式が手計算と一致するか確認します。
限界、不確実性、誤解のリスク
- 時間軸への感度: ATRは、選んだローソク足の時間軸で変化します。同じ通貨ペアでも、時間圧縮(時間足の種類)が異なればATRの水準は変わります。
- 手法への感度: 単純平均か平滑化手法か、そして参照期間の長さNによって結果が変わります。
- 方向ではなくボラティリティ: ATRは価格の方向ではなく、ボラティリティの大きさを測ります。ATRが上昇しても、それだけでは強気/弱気の動きを示すとは限りません。
- データと「期間境界」: ブローカーやデータベンダーによって、ローソク足を作るセッション境界やタイムゾーンの扱いが異なる場合があります。入力の小さな違いがTRを変え、その結果としてATRも変わります。
これらの依存関係があるため、ATRは「指定したウィンドウ内で実現した値動きの大きさを計算した指標」として扱い、将来を保証する予測結果としては扱わないでください。
DOCUMENT END