最終更新: 2026年06月
ATR(Average True Range:平均真の値幅)は、FXトレードにおける「相場のボラティリティ(価格変動の激しさ)」を数値化するテクニカルインジケーターです。
J・ウェルズ・ワイルダー(J. Welles Wilder Jr.)が1978年に著書『New Concepts in Technical Trading Systems』で発表したこの指標は、現在もEAの損切り設定・ポジションサイジング・トレンド強度フィルタリングに広く使われています。
「ATRって損切りに使うんでしょ」という認識は正しいのですが、ATRがなぜ損切り設定に有効なのか、その数理的な理由を理解している人は意外と少ない。本記事では計算式から始め、MT4/MT5での設定方法、EA設計での具体的な活用パターンまでを解説します。
ATR FX とは?計算式と直感的な意味
直接回答: ATRとは、ギャップ(前日終値と当日の高値・安値の差)を含む「真の値幅(True Range)」のN期間移動平均で、相場がどの程度動いているかを数値化するボラティリティ指標です。
免責事項: FX取引は元本割れリスクを伴う金融取引です。本記事はATRインジケーターの仕組みと活用法を解説することを目的としており、特定の取引手法の有効性を保証するものではありません。
True Range(TR)の計算
ATRの計算は2ステップです。まずTrue Range(TR)を計算し、次にそのN期間平均がATRになります。
True Range = MAX(
高値 - 安値, // 当日の値幅
|高値 - 前日終値|, // 上方ギャップを含む値幅
|安値 - 前日終値| // 下方ギャップを含む値幅
)
3つの値の最大値がTRです。これにより、窓(ギャップ)を空けた翌日の値動きも正確に計測できます。通常の「高値 - 安値」だけでは前日比の急落・急騰を捉えられないという問題を、このMAX計算で解決しています。
ATRの計算式
ATR(n) = TRのn期間移動平均
ワイルダー本人はEMA(指数移動平均)の特殊形(スムーズ係数 = 1/n)を使っていましたが、MT4/MT5のデフォルトはWilderのスムーズEMAです(出典: J. Welles Wilder Jr., New Concepts in Technical Trading Systems, 1978)。
直感的な意味
ドル円のH1チャートでATR(14)が0.50(50pips相当)を示しているとします。これは「過去14本の1時間足で、平均して50pipsの値幅で動いた」ことを意味します。
この値を知ることで「今の相場は1時間で50pips動く環境にいる」という認識が得られます。損切りを20pipsに設定すると「平均的な1時間の動きの半分以下で損切りが発動する」ことがわかり、ノイズで引っかかるリスクの大きさが定量化できます。
MT4/MT5 での ATR 設定方法
直接回答: MT4/MT5でATRを表示するには「挿入」→「インジケーター」→「オシレーター」→「ATR」を選択し、期間(通常14)を設定します。
MT4 での ATR 追加手順
- チャートを開いた状態で、メニュー「挿入」→「インジケーター」→「オシレーター」→「ATR」を選択
- 期間(Period)に 14 を入力(デフォルト)
- 「OK」でサブウィンドウにATRが表示される
チャート下部のサブウィンドウに波形で表示されます。値が高い(上昇している)ほどボラティリティが高い状態、低い(下降または水平)ほど低ボラティリティ状態です。
期間設定の使い分け
| 期間 | 感度 | 向いているトレードスタイル | |---|---|---| | 5〜7 | 高(最近の値動きに敏感) | スキャルピング・短期デイトレード | | 14(デフォルト) | 中 | スイングトレード・中期デイトレード | | 20〜21 | 低(ノイズに強い) | スイングトレード・トレンドフォロー長期 |
筆者がM15のEAで検証したところ、ATR(7)を損切り設定に使った場合、ATR(14)より損切り発動頻度が高いものの、1回あたりの損失額は小さい傾向がありました。どちらが優れているかはEAの戦略ロジックに依存します。
EA への ATR 実装:損切り・利確への活用
直接回答: ATRベースの損切りは「固定pips損切りより相場環境に適応した損切り幅」を設定できます。基本形は「エントリー価格 ± ATR × 係数」で、係数は1.5〜2.0が一般的です(出典: OANDA Japan, ATRを活用した利益確定目標や損切りの幅を決めるトレードアイデア)。
Claudeと会話しながらインジケーターが作れる Hedgrow FX に「ATRの1.5倍で損切り、ATRの2倍で利確するEAを作りたい」と伝えると、以下のような実装が得られます。
ATRベース損切りの実装(MQL4コード例)
// ATRベースの動的損切り設定
double atrValue = iATR(NULL, 0, 14, 1); // 1本前の確定足のATR値
double stopLossMultiplier = 1.5; // ATRの1.5倍を損切り幅に設定
// 買いエントリーの場合
double stopLossPrice = Ask - atrValue * stopLossMultiplier;
double takeProfitPrice = Ask + atrValue * stopLossMultiplier * 2; // リスクリワード2:1
この実装により、ボラティリティが高い時期(ATRが大きい)は損切り幅が自動的に広がり、低ボラ時期には狭まります。固定pips損切りより市場環境への適応性が高い設計です。
損切り係数の選択基準
| 係数 | 特性 | 向いているケース | |---|---|---| | × 1.0 | 損切りが狭い(ノイズでかかりやすい) | 低ボラ相場・スキャルピング | | × 1.5 | バランス型(最も一般的) | 多くのスイングトレード戦略 | | × 2.0 | 損切りが広い(ノイズに強い) | 高ボラ相場・トレンドフォロー | | × 2.5以上 | ロット数を下げてリスク管理が必要 | 大きなスイング狙い |
ATR と他のインジケーターとの組み合わせ
直接回答: ATRはボラティリティ指標であり方向性を持たないため、トレンド系(移動平均線・ADX)やオシレーター(RSI・MACD)と組み合わせて「方向 + 動きの大きさ」の両方を判断するのが有効です。
ATR × ADX の組み合わせ
ADXがトレンドの強度を示し(ADX25以上でトレンドあり)、ATRがその動きの幅を示す組み合わせです。
エントリー条件(例):
ADX > 25(トレンドあり)
かつ +DI > -DI(上昇トレンド)
かつ ATR > ATR(14)の20本平均(十分な値幅がある)
損切り:
エントリー価格 - ATR × 1.5
利確:
エントリー価格 + ATR × 2.5
ATRをボラティリティフィルターに使う方法
ATRの水準を見て「今は動いている相場か、動いていない相場か」を判定するフィルターとして使う方法も実用的です。
// ATRが過去20本の平均より高い場合のみエントリーを許可(高ボラフィルター)
double currentATR = iATR(NULL, 0, 14, 1);
double avgATR = iATR(NULL, 0, 20, 1);
bool isHighVolatility = currentATR > avgATR * 1.2;
// 逆に低ボラ時のみエントリーを許可(レンジ戦略用)
bool isLowVolatility = currentATR < avgATR * 0.8;
ATR を使ったポジションサイジング(資金管理)
直接回答: ATRベースのポジションサイジングは「1回の最大許容損失額 ÷ (ATR × pips単価)」でロット数を計算し、相場のボラティリティに合わせたリスク管理ができます。
適正ロット数 = (口座残高 × リスク率) ÷ (ATR × pips単価 × 損切り係数)
計算例:
口座残高: 100万円
リスク率: 1%(1万円を1トレードの最大損失に設定)
ATR(14): 0.8(80pips)
損切り係数: 1.5倍
ドル円のpips単価(0.1ロット): 約100円
適正ロット数 = 10,000円 ÷ (80 × 100 × 1.5) = 0.083ロット ≈ 0.08ロット
この計算により、ボラティリティが高い時期は自動的にロット数が小さくなり、低ボラ時は大きくなります。固定ロットより一貫したリスク管理が実現できます。
免責事項: FX取引は元本割れリスクを伴う金融取引です。本記事はATRインジケーターの仕組みと活用法を解説することを目的としており、特定の取引手法の有効性を保証するものではありません。取引判断はご自身の責任で行ってください。
よくある質問(FAQ)
Q: ATR FX とは何ですか? A: ATR(Average True Range)はFXのボラティリティ(価格変動の激しさ)を数値化するテクニカルインジケーターです。損切り設定・ポジションサイジング・相場環境フィルタリングに使います。
Q: ATRは何を見ればいいですか?値が高いほどいいですか? A: ATRに「高い=良い」という評価はありません。ATRはボラティリティの現状把握に使います。戦略によって「高ボラが有利」か「低ボラが有利」かが変わります。
Q: ATRの期間14はなぜ標準なのですか? A: ワイルダーが1978年に著書で使用した期間をそのまま業界標準として採用しています。多くのトレーダーが同じ設定を見ているという自己実現的な側面もあります。
Q: ATRは通貨ペアによって単位が変わりますか? A: はい。ドル円のATR=0.50は50pips相当ですが、ユーロドルのATR=0.0050も50pips相当です。単位の違いを意識した上で解釈してください。
Q: ATRベースの損切りで損失が大きくなりすぎることはありますか? A: 高ボラ相場ではATRが拡大するため、損切りが広がりすぎる場合があります。最大損切り幅の上限(例:ATR × 2.0 または 100pips、いずれか小さい方)を設定する安全弁の実装を推奨します。
Q: MQL4/MQL5でATRの値を取得するコードを教えてください。
A: MT4なら double atr = iATR(NULL, 0, 14, 1);、MT5なら int atrHandle = iATR(_Symbol, _Period, 14); double atrBuffer[]; CopyBuffer(atrHandle, 0, 1, 1, atrBuffer); double atr = atrBuffer[0]; で取得できます。Claudeと会話しながらインジケーターが作れる Hedgrow FX でATR実装を依頼することも可能です。
著者情報: 金融工学専攻。アルゴリズム取引ファンド経験後、FXシステム開発・教育コンテンツ執筆に従事。
