MT5のATRの使い方|設定は期間だけ・損切り幅への当て方
ATR(Average True Range)は、1本あたりの値動きの幅の平均を示す指標です。方向は示さず、「どれくらい動く相場か」だけを数値にします。
MT5のATRで設定できるのは「期間」だけです。適用価格や平均化方法を選ぶ項目はありません。他の解説ではこれらを設定すると書かれていることがありますが、MT5のATRには存在しません。
この記事では、公式の定義を確認したうえで、表示手順、損切り幅への使い方、銘柄をまたいで比較できる理由、MQL5での取得方法を扱います。
(確認環境:MetaTrader 5 / Windows 11)
ATRの計算は「True Range の移動平均」
MetaTrader 5 の公式ヘルプでは、次のように説明されています。
True Rangeは、下記3つの内、最も大きな値です。現在の高値と安値の差、前の足の終値と現在の高値の差、前の終値と現在の安値の差
Average True Rangeの値は、true rangeの移動平均です。
単純な高値−安値ではなく、前の足の終値も計算に入れる点が要点です。これにより、窓を開けて始まった場合の値動きも幅に含まれます。高値安値の差だけで測ると、窓の分がまるごと抜け落ちます。
設定できるのは「期間」だけ
MQL5のリファレンスを見ると、ATRを取得する関数の引数は3つしかありません。
int iATR(
string symbol, // 銘柄名
ENUM_TIMEFRAMES period, // 期間
int ma_period // 平均期間
);
applied_price も ma_method もありません(MQL5リファレンス iATR)。チャートに表示する時のパラメータ画面も同じで、入力するのは期間だけです。
「ATRの適用価格をCloseにする」といった説明を見かけたら、それはMT5のATRの話ではありません。設定項目を探して見つからないのは、設定が無いからです。
MT5で表示する手順
- メニューの「挿入」→「インディケータ」→「オシレーター」→「Average True Range」を選ぶ
- 「期間」を確認する(初期値は14)
- 「OK」を押す
トレンド系ではなくオシレーターの中にあります。探す場所を間違えやすい指標です。表示はチャート下のサブウィンドウで、価格と同じ単位の値が出ます。
損切り幅の目安として使う
ATRの実用的な使い道は、損切り幅を相場の状態に合わせることです。
固定のpips幅で損切りを置くと、値動きが小さい時は余裕がありすぎ、大きい時はすぐに刈られます。ATRの何倍という決め方にすると、その時の値動きの大きさに応じて幅が変わります。
例えばドル円のATR(14)が0.300であれば、その時間足では1本あたり平均30pips前後動いているということです。損切りをATRの1.5倍に置くなら45pips前後になります。
倍率をいくつにするかに決まった正解はありません。小さくすれば刈られやすくなり、大きくすれば1回の損失が増えます。どちらを取るかは、想定している勝率と利益幅との兼ね合いで決まります。
銘柄や時間足をまたいで比較できる
ATRそのものは価格と同じ単位なので、ドル円とゴールドのATRを並べても比較になりません。
ただし「何かをATRで割る」と、銘柄や時間足が変わっても同じ基準で扱えるようになります。これはATRの使い道として見落とされやすい点です。
私が配布している RL_GMMA では、この考え方を使っています。12本のEMAのうち長期グループの広がり(最大値と最小値の差)をATRで割り、「ATR何個分広がっているか」という数値にして画面に出しています。
そのままの値幅を表示すると、ドル円とゴールドで桁が変わって比較できません。ATRで割っておけば、どの銘柄でも「1.0を超えたら広がっている」という同じ基準で見られます。実装と配布ファイルはMT5用GMMAインジケーターを無料配布にまとめています。
MQL5から値を取る場合
int handle = iATR(_Symbol, _Period, 14);
double atr[];
if(CopyBuffer(handle, 0, 0, 1, atr) <= 0)
return(0);
double ratio = width / atr[0]; // ATR何個分か
バッファは1本だけなので、番号は0を指定します。ゼロ除算に注意してください。データが揃っていない起動直後は atr[0] が0になることがあり、そのまま割ると計算結果が壊れます。CopyBuffer の戻り値と atr[0] > 0 の両方を確認してから使います。
値が取得できない場合の切り分けはMQL5でiCustom・CopyBufferの値が取れない原因にまとめました。
ATRの限界
- 方向を示さない — 上昇でも下落でもATRは上がる。方向はADXと+DI・-DIなど別の指標で見る
- 過去の平均でしかない — これから動く幅を示すものではない
- 急変には追いつかない — 平均なので、値が上がりきる前に相場が動き終わることがある
まとめ
- ATRはTrue Rangeの移動平均。前の足の終値も計算に入るため、窓の分も幅に含まれる
- MT5のATRの設定項目は「期間」だけ。適用価格も平均化方法も無い
- メニューでは「トレンド」ではなく「オシレーター」の中
- 損切り幅をATRの何倍と決めると、値動きの大きさに応じて幅が変わる
- 何かをATRで割ると、銘柄や時間足をまたいで同じ基準で比較できる
本記事は指標の計算方法と操作手順を説明したものであり、特定の売買を推奨するものではありません。投資判断はご自身の責任で行ってください。テクニカル指標は相場の状態を可視化する道具であり、将来の値動きや取引の成果を保証するものではありません。


