トレンドの安定性を判断するために、J. Welles Wilderが開発したのが平均方向指数(ADX)です。
ADXを使うことで、マーケットのトレンドを分析し、トレーディングの意思決定を行うことが可能です。もちろん、FOREX市場でも活用できます。
しかし、従来のADXインジケーターは視覚的な使い勝手が良くないため、見た目が改善されたColorXADX.mq5インジケーターが開発されました。このインジケーターでは、+DIと-DIのラインがDRAW_FILLINGスタイルで表示され、現在のトレンドの方向によって色が変わり、トレンドの強さに比例したクラウドの幅が反映されます。ADXラインは点の形で表示され、その色はトレンドの強さによって変わります。
このインジケーターは、ユニバーサルスムージングを用いており、異なる平均化方法を選択できる特徴があります。選択できる平均化方法は以下の通りです:
- SMA - 単純移動平均
- EMA - 指数移動平均
- SMMA - スムーズ移動平均
- LWMA - 線形加重移動平均
- JJMA - JMA適応平均
- JurX - 超線形平滑化
- ParMA - パラボリック平滑化
- T3 - ティルソンの多重指数平滑化
- VIDYA - Tushar Chandeのアルゴリズムによる平滑化
- AMA - Perry Kaufmanのアルゴリズムによる平滑化
なお、Phaseパラメーターは異なるスムージングアルゴリズムによって全く異なる意味を持ちます。
- JMAの場合、-100から+100まで変化する外部Phase変数。
- T3の場合、視覚化を容易にするために100倍されたスムージング比率。
- VIDYAの場合はCMO期間、AMAの場合は遅延EMA期間。
- AMAの早いEMA期間は固定値で、デフォルトでは2です。また、AMAの累乗比率も2です。
このインジケーターはSmoothAlgorithms.mqhライブラリのクラスを使用しています(terminal_data_folder\MQL5\Includeにコピーする必要があります)。クラスの使用については、「追加バッファを使用せずに中間計算のための価格系列の平均化」という記事で詳しく説明されています。

ColorXADXインジケーターの入力パラメーター:
//+----------------------------------------------+ //| インジケーター入力パラメーター | //+----------------------------------------------+ input Smooth_Method XMA_Method=MODE_T3; // ヒストグラムのスムージング方法 input int ADX_Period =14; // XMAスムージング期間 input int ADX_Phase=100; // XMAスムージング期間 [-100...+100] input Applied_price_ IPC=PRICE_CLOSE_; // 適用価格 input int Shift=0; // インジケーターの水平シフト(バー単位) input int ExtraHighLevel=60; // 最大トレンドレベル input int HighLevel=40; // 強いトレンドレベル input int LowLevel=20; // 弱いトレンドレベル input ENUM_LINE_STYLE LevelStyle=STYLE_DASHDOTDOT; // レベルラインのスタイル input color LevelColor=Blue; // レベルの色 input ENUM_WIDTH LevelWidth=w_1; // レベルの幅