ADXストラテジーはどのように計算されますか?

ADX計算の数式入力とデータ制限。

ADXストラテジーはどのように計算されますか?

直接の答え

ADXベースの「トレンドの強さ」の値は、価格変化から計算されます。具体的には、(1) 2方向の方向性の動き、(2) true rangeと呼ばれるボラティリティ指標、(3) ルックバック期間にわたるスムージングを組み合わせます。その結果、単一のライン(多くの場合ADXと呼ばれる)が得られます。方向性の動きが一貫して強いときに増え、弱いときに下がります。

メカニズムまたは定義

計算が測ろうとしていること

ADXスタイルのインジケーターは、生の価格変動を2つの中間的な考え方に変換します:

  1. 方向性の動き:直近の高値/安値の変化のうち「上」か「下」かのどちらがどれだけか。
  2. ボラティリティの正規化true rangeを使って、全体の取引レンジに対して動きの大きさがどれくらいか。

そして、これらを方向性の指標にまとめ、最後にADXへと結合します。ADXは、方向ではなくトレンドの強さを表すことを意図しています。

必要な入力(データ要件)

計算するには、少なくとも次の時系列データが必要です(時間順):

  • 高値(High)
  • 安値(Low)
  • 終値(Close)

最低限、ルックバック期間とスムージングを計算するのに十分な本数(バー)が必要です。十分な過去データがない場合、初期の値は未定義になったり、十分なデータが蓄積された後にのみ生成されたりします。

中核となる中間ステップ(よくある一つの定式化)

以下は、一般的なステップ構造です。チャート作成パッケージによってスムージングの慣習が少し異なる場合がありますが、同じ構成要素が登場します。

1) 方向性の動きの構成要素を計算する

各バー t(最初のバーの後から開始)について、現在のバーの高値/安値を前のバーと比較します:

  • 上方向の動きは、現在の高値を前の高値と比較します。
  • 下方向の動きは、前の安値を現在の安値と比較します(多くの場合「減少」として組み立てられます)。

その後、方向性の動きは「どちらか一方向だけがそのバーに寄与する」ように分割されます:

  • +DM は、の成分よりもの成分の方が強いときの「上」成分です。
  • -DM は、の成分よりもの成分の方が強いときの「下」成分です。

それ以外はすべてゼロになります。「優勢な方向を選ぶ」ルールが重要です。これにより、同じバーから上下両方向が同時にカウントされるのを防ぎます。

2) true range(TR)を計算する

true rangeは、ギャップを考慮しながら価格がどれだけ動いたかを測ります。標準的な定義は3つの候補に基づきます:

  • 現在の高値 − 現在の安値
  • 現在の高値 − 前の終値 の絶対値
  • 現在の安値 − 前の終値 の絶対値

TR は、バー t におけるこれら3候補の最大値です。

3) ルックバック期間で +DM、-DM、TR をスムージングする

毎回、生の合計を使う代わりに、ADXの計算では通常、期間 N(一般にルックバックと呼ばれます)にわたってスムージングを適用します。スムージング手法(多くの場合Wilderスタイル)は、毎バーを最初から再計算するのではなく、累計を更新します。

これは次のように考えられます:

  • スムージングされた +DM の合計を計算する
  • スムージングされた -DM の合計を計算する
  • スムージングされた TR の合計を計算する

スムージングの正確な式が重要なのは、感度が変わるからです。

4) 方向性の指標(+DI と -DI)を計算する

方向性の指標は、スムージングされた true range で割ることで、方向性の動きをパーセンテージのような量に変換します:

  • +DI = (スムージングされた +DM / スムージングされた TR) × 100
  • -DI = (スムージングされた -DM / スムージングされた TR) × 100

スムージングされた TR がゼロの場合(まれですが縮退したデータでは起こり得ます)、割り算は未定義になります。実装側はこれを処理する必要があります。

5) DX(方向性指数)を計算し、その後 ADX を計算する

よくある中間値は次の通りです:

  • DX = (|+DI − -DI| / (+DI + -DI)) × 100

そして ADX は、ルックバック期間にわたる DX のスムージングされた平均です:

  • ADX = DX のスムージングされた平均

これにより、+DI と -DI が継続的に離れている(片方向が優勢)ときに増え、収束するときに減る単一のラインが得られます。

証拠または例

最小の作業例のセットアップ(前提つき)

理解を確認するために、短いウィンドウで小さな「紙上チェック」を行うことができます。たとえば、ルックバック期間 N を選び、バー1から計算するとします。

  1. 固定の N を選ぶ(例:14)し、少なくとも N + 1 本のバーがあることを確認します。
  2. 最初のバーの後の各バーについて:
    • 上方向の動き/下方向の動きの比較ルールに従って +DM と -DM を計算する。
    • TR を3つの TR 候補の最大値として計算する。
  3. 選択したスムージング手法を +DM、-DM、TR に適用する。
  4. スムージングされた値から +DI と -DI を計算する。
  5. DX を計算し、その後 DX のスムージングされた平均として ADX を計算する。

どの例でも必ず明示すべき前提:

  • あなたは特定のスムージング慣習を使っている。
  • データソースと同じインデックス(バー t とバー t−1 の定義)を使っている。

異なるプラットフォームはスムージングの細部を異なる形で実装し得るため、全体の構造が同じでも数値出力は分岐する可能性があります。

制限とリスク

1) 方向ではなくトレンドの強さ

ADXスタイルの出力は、将来の価格の方向を自動的に示すのではなく、方向性の動きの強さを表すことを目的としています。高い値は上昇トレンドでも下降トレンドでも起こり得ます。方向は通常、ADX単独ではなく +DI と -DI の関係から推測されます。

2) パラメータ感度

ルックバック期間とスムージングの選択は挙動を大きく変えます:

  • 短い期間は、直近の動きに対して通常より速く反応します。
  • 長い期間は、ノイズをより滑らかにする一方で遅れが出やすくなります。

これにより、インジケーターがどれくらいの頻度で上がったり下がったりするか、またレジーム(状態)の変化にどれくらい素早く反応するかが変わります。

3) データと実装の失敗モード

よくある実務上の問題には次が含まれます:

  • データ不足:初期の ADX 値は未定義になったり、部分的なウィンドウに基づいて計算されたりします。
  • 定義の違い:DM割り当てやTRの別定式化によって結果がずれることがあります。
  • インデックスの誤り:バーの順序(時系列)を取り違えたり、誤った前の終値参照を使ったりすると計算が壊れます。

4) ボラティリティとノイズ

計算は true range によって方向性の動きを正規化するため、ボラティリティのスパイクに敏感になり得ます。レンジ相場や非常にボラティリティが高い状況では、+DI と -DI が頻繁に交互に現れることがあり、その場合、解釈のための単一の ADX 読み取りの有用性が下がる可能性があります。

確認または次の質問

理解を独立して検証するには、次のチェックリストを行ってください:

  1. データソースが、欠けのないバーで 時間順の High, Low, Close シリーズを提供していることを確認する。
  2. 対象プラットフォームが使う次の「正確な数式」を書き出す:
    • +DM と -DM のルール
    • TR の定義
    • スムージング手法
  3. 小さなサンプルウィンドウで ADX を再計算し、最終ラインだけでなく中間出力(+DI、-DI、DX)を比較する。

さらに一歩進めたい場合の有用なフォローアップは、設定がインジケーターの応答性とスケール(ルックバックとスムージング)をどう変えるか、または ADXスタイルの読み取りが +DI と -DI と一緒にどのように解釈されるかです。

DOCUMENT END

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