ATRの閾値について

2026/02/26 19:44
27

複数の通貨ペアでATRを使った検証をしようと考えています。

ですが、現在の設定ですと閾値がpips換算になっているため、クロス円とドルストレートでは絶対値が大きく違ってしまいます。

全ペア共通で検証したいのでpips換算ではなく%で設定したいのですが、何か方法はありますでしょうか?

コメント

GogoJungle
2026/03/02 17:04

ATRの閾値を通貨ペア共通にしたいので、pipsではなく「価格に対する割合(%)」でATRを判定したい、というご質問ですね。

残念ながら、EAつくーるの画面設定だけで「ATRを%換算して比較する」指定はできません(取引条件の左辺・右辺は1項目ずつで、四則演算を組み合わせられないため)。
そのため、ご要望どおりにやる方法は **「出力したEA(MQL)の条件式を少しだけ修正する」**形になります。


設定方法(コード修正を提案)

1) 考え方(ATR% の定義)

「n本前のATRを%換算」したものを ATR%[n] とすると、以下です。

  • ATR%[n] = ATR[n] / close[n] * 100

ここで close[n] は「n本前の終値」です。
(例:計算位置が0本前なら close[0]、1本前なら close[1])


2) EAつくーる側で“元になる条件”を作る

取引条件画面で、まずは通常どおり ATR同士/ATRと数値 の比較を作っておきます。
その後、出力されたMQL内の条件式を、下記のように“割り算を足す”形で差し替えます。


例1:ATR% と 固定値(%)を比較したい場合

やりたい条件がこれだとして:

  • ATR%[n] < 30

EAつくーるで作る条件(まずは形だけ)

取引条件で、いったん次を作成します(nは任意):

ATR(計算期間:10, 計算位置:n本前) < 数値(値:30)
↓
(エントリー/決済の任意のアクション)

出力後のコードを修正(左辺をATR%に変更)

生成されたEA(mq4/mq5)をMetaEditorで開き、上の条件に相当する比較部分を探して、左辺に「/ close[n] * 100」を追記します。

ATR[n] / close[n] * 100 < 30
  • このときの close[n] は「n本前のローソク足の終値」のコードを、そのままコピペして使ってください(MT4/MT5で書き方が違うため、EA内で終値を取得している箇所の記述を流用するのが確実です)。

例2:ATR% 同士を比較したい場合

やりたい条件がこれだとして:

  • ATR%[m] < ATR%[n]

EAつくーるで作る条件(まずは形だけ)

取引条件で、いったん次を作成します(m,nは任意):

ATR(計算期間:10, 計算位置:m本前) < ATR(計算期間:10, 計算位置:n本前)
↓
(エントリー/決済の任意のアクション)

出力後のコードを修正(両辺をATR%相当に変更)

比較の両辺に「/ close[ ]」を付けます。

ATR[m]/close[m] < ATR[n]/close[n]
  • 本来は両辺に *100 もありますが、左右で打ち消し合うので付けなくてOKです。

こうなっていませんか?(よくある修正ミス)
  • 計算位置(n本前)と close[n] がズレている
    例:ATRは1本前を見ているのに close[0] を割ってしまう、など。
    ATRの計算位置と同じ[n] を close 側にも使ってください。

  • close の取得を“現在の価格(Bid/Ask)”で割ってしまう
    → 検証条件の再現性を高めるなら、原則 ローソク足の終値 close[n] で揃えるのが安全です。


ご参考になれば幸いです。
引き続きよろしくお願いいたします。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。