今回ご紹介するのは、3本の移動平均を利用した3XMA_Ichimokuインジケーターです。このインジケーターは、移動平均の計算原理を基にしており、一目均衡表からインスパイアを受けています。
このインジケーターは、異なる期間の2つのスローモービングアベレージを組み合わせて、トレンドの方向性に応じた雲を形成します。使い方は、一目均衡表に非常に似ていますので、慣れ親しんだトレーダーにとっては使いやすいと思います。
インジケーターの入力パラメータ
//+-----------------------------------+ //| インジケーターの入力パラメータ | //+-----------------------------------+ input uint Up_period1=3; // 最高価格計算のための期間1 input uint Dn_period1=3; // 最低価格計算のための期間1 input uint Up_period2=6; // 最高価格計算のための期間2 input uint Dn_period2=6; // 最低価格計算のための期間2 input uint Up_period3=9; // 最高価格計算のための期間3 input uint Dn_period3=9; // 最低価格計算のための期間3 //---- input MODE_PRICE Up_mode1=HIGH; // 高値を探すための価格タイプ1 input MODE_PRICE Dn_mode1=LOW; // 安値を探すための価格タイプ1 input MODE_PRICE Up_mode2=HIGH; // 高値を探すための価格タイプ2 input MODE_PRICE Dn_mode2=LOW; // 安値を探すための価格タイプ2 input MODE_PRICE Up_mode3=HIGH; // 高値を探すための価格タイプ3 input MODE_PRICE Dn_mode3=LOW; // 安値を探すための価格タイプ3 //---- input Smooth_Method XMA1_Method=MODE_SMA; // スムージング手法1 input Smooth_Method XMA2_Method=MODE_SMA; // スムージング手法2 input Smooth_Method XMA3_Method=MODE_SMA; // スムージング手法3 //---- input int XLength1=8; // スムージング深度1 input int XLength2=25; // スムージング深度2 input int XLength3=80; // スムージング深度3 input int XPhase=15; // スムージングパラメータ input int Shift1=0; // インジケーター1の横シフト input int Shift2=0; // インジケーター2の横シフト input int Shift3=0; // インジケーター3の横シフト
スムージングアルゴリズムは、10種類のバージョンから選択できます:
- SMA - シンプル移動平均;
- EMA - 指数移動平均;
- SMMA - スムーズ移動平均;
- LWMA - 線形加重移動平均;
- JJMA - JMA適応平均;
- JurX - ウルトラインアスムージング;
- ParMA - パラボリックスムージング;
- T3 - ティルソンの多重指数スムージング;
- VIDYA - チャンドのアルゴリズムによるスムージング;
- AMA - カウフマンのアルゴリズムによるスムージング。
スムージングアルゴリズムによって、フェーズパラメータの意味が異なることに注意が必要です。JMAの場合、外部フェーズ変数は-100から+100の範囲で変化します。T3の場合、スムージング比率は視覚的に良好な結果を得るために100倍にされます。VIDYAではCMOオシレーターの期間、AMAではスローボラティリティのEMA期間となります。他のアルゴリズムでは、これらのパラメータはスムージングに影響しません。AMAのファーストEMA期間はデフォルトで2に設定されています。
インジケーターのファイルは、XMA_Ichimoku.mq5をMQL5\Indicators\に配置してください。
このインジケーターは、SmoothAlgorithms.mqhライブラリのクラスを使用しています(これはterminal_data_folder\MQL5\Includeにコピーする必要があります)。このクラスの使用方法については、「追加バッファを使用せずに中間計算のための価格系列の平均化」の記事に詳しく説明しています。
