インディケータ: Average Directional Movement Index (ADX)

 

Average Directional Movement Index (ADX):

Average Directional Movement Index (ADX) はトレンドの強さを見るための指標ですJ.W.ワイルダー氏の著書"テクニカル取引システムの新たな概念"で紹介されたテクニカル指標です。

一番シンプルな方法は、期間14の+DIと期間14の-DIを比較する方法です比較する ためには、片方をインジケーターチャートにセットし、もう片方をそのすぐ上にセットするか、もしくは、-DIから+DIを直接引きます。W.ワイルダー氏 は+DIが-DIを上に抜けたときに買い、-DIが+DIを上に抜けた時に売ることを推奨しています。

このような一般的な手法に加えて、 W.ワイルダー氏は極値点による方法を推奨しています。これは、シグナルのダマシを減らし、取引回数を増やすために利用されます。極値点の原理による と、"極値点"は+DIと-DIがお互いにクロスした際に発生します。+DIが-DIよりも高い場合、その後クロスするときのその日の高値がそのポイント になります。+DIが-DIよりも低い場合、その後クロスするときのその日の安値がそのポイントになります。

極値点はマーケットがエントリーレベルになったときに使われます。そのため、買いシグナルの後(+DIが-DIの上)、価格が極値点を超えるまで待ってから買わなくてはなりません。しかし、もし価格が極値点を超えなかった場合は売りポジションを持った方が賢明です。

作者: MetaQuotes Software Corp.

 
 //--- 平滑化されたプラスとマイナスのバッファを埋める
      ExtPDIBuffer[i]=ExponentialMA(i,ExtADXPeriod,ExtPDIBuffer[i-1],ExtPDBuffer);
      ExtNDIBuffer[i]=ExponentialMA(i,ExtADXPeriod,ExtNDIBuffer[i-1],ExtNDBuffer);
      //--- ADXTmpバッファを埋める
      double dTmp=ExtPDIBuffer[i]+ExtNDIBuffer[i];
      if(dTmp!=0.0)
         dTmp=100.0*MathAbs((ExtPDIBuffer[i]-ExtNDIBuffer[i])/dTmp);
      else
         dTmp=0.0;
      ExtTmpBuffer[i]=dTmp;
      //--- 平滑化されたADXバッファを埋める
      ExtADXBuffer[i]=ExponentialMA(i,ExtADXPeriod,ExtADXBuffer[i-1],ExtTmpBuffer);

計算

ADX = SUM ((+DI - (-DI)) / (+DI + (-DI)),N) / N

ここで

  • N - 計算に使用する期間数;
  • SUM (..., N) - N期間の合計;
  • +DI -プラス方向 指数の値;
  • -DI - 負の方向指数の値。
 

多くの自動売買システムがADXを使って構築されていることは知っています。