今回は、MetaTrader 5で使える「XMA JJRSXシステム」についてお話しします。このインジケーターは、大きなカラードットや矢印を使って、取引のシグナルやアラートを提供してくれます。
このインジケーターは、JJRSXオシレーターとXMA移動平均を比較することで成り立っています。異なる時間枠でのシグナルを利用し、現在の時間枠(チャートの時間枠)とそれよりも高い時間枠のシグナルを組み合わせています。
カラードットと矢印のシグナルは、異なる時間枠からのトレンド反転を示しています。XMAインジケーターからのトレードシグナルは高い時間枠に基づき、JJRSXオシレーターからのトレンド反転シグナルは現在の時間枠から得られます。カラードットは市場からのエグジットシグナル、カラードットはエントリーシグナルを示します。
たとえば、ライム色の上向き矢印が表示されたら、ロングポジションをオープンします。そして、赤いドットが現れたら、そのポジションをクローズします。ショートポジションの場合は、マゼンタ色の矢印と緑色のドットが使われます。カラードットのシグナルを使ってポジションを開閉し、カラードットのシグナルを使って既存のポジションに追加することが可能です。
XMA移動平均の平滑化アルゴリズムは、以下のように変更できます:
- SMA - 単純移動平均;
- EMA - 指数移動平均;
- SMMA - 平滑移動平均;
- LWMA - 線形加重移動平均;
- JJMA - JMA適応平均;
- JurX - 超線形平滑化;
- ParMA - 放物線平滑化;
- T3 - ティルソンの多重指数平滑化;
- VIDYA - チャンデのアルゴリズムによる平滑化;
- AMA - カウフマンのアルゴリズムによる平滑化。
なお、フェーズパラメータは、平滑化アルゴリズムによって異なる意味を持ちます。JMAの場合、外部のフェーズ変数は-100から+100の範囲で変化し、T3では視覚化を向上させるために100倍された平滑化比率になります。VIDYAではCMOオシレーターの期間、AMAでは遅いEMA期間となります。他のアルゴリズムでは、これらのパラメータは平滑化に影響しません。AMAの早いEMA期間は固定値で、デフォルトでは2に設定されています。指数の累乗比率もAMAでは2に等しいです。
XMAとJJRSXインジケーターのコンパイルされたファイルは、terminal_data_folder\MQL5\Indicators\に配置する必要があります。インジケーターはSmoothAlgorithms.mqhライブラリクラスを使用しており、これもterminal_data_folder\MQL5\Includeにコピーする必要があります。これらのクラスの使い方については、「追加バッファを使わない中間計算のための価格系列の平均化」の記事で詳しく説明されています。

インジケーターの入力パラメータ:
インジケーターの入力パラメータは、インジケーター自体の表示パラメータ、XMA、およびJJRSXインジケーターのパラメータに分かれています:
//+-------------------------------------+ //| インジケーター入力パラメータ | //+-------------------------------------+ input uint SignalLableShift=100; // エントリー垂直シフト input uint StopLableShift=300; // ストップ垂直シフト input uint AlertCount=0; // 提出されたアラートの数 input uint SignalBar=1; // シグナルバーインデックス、0は現在のバー //+-------------------------------------+ //| XMAインジケーター 入力パラメータ | //+-------------------------------------+ input ENUM_TIMEFRAMES TimeFrame_XMA=PERIOD_H4;// XMAチャート期間 input Smooth_Method MA_Method_XMA=MODE_T3; // XMA平均化手法 input int Length_XMA=12; // XMA平滑深度 input int Phase_XMA=15; // XMA平滑パラメータ [-100...+100] input Applied_price_ IPC_XMA=PRICE_CLOSE; // XMA適用価格 //+-------------------------------------+ //| JJRSX インジケーター 入力パラメータ | //+-------------------------------------+ input int Length_JJRSX=8; // JJRSX平滑深度 input int Smooth_JJRSX = 8; // JJRSX平均化JJMA深度 input int Phase_JJRSX = 100; // JJRSX平均化JJMAパラメータ [-100..+100] input Applied_price_ IPC_JJRSX=PRICE_CLOSE_; // JJRSX適用価格