「ウルトラ絶対遅延なしLWMA」インディケーターは、AbsolutelyNoLagLWMAを基に、複数の信号ラインの分析を行うことに特化しています。このインディケーターの信号ライン計算アルゴリズムは以下の通りです。信号ラインの任意の期間値は算術級数を用いて計算されます:
SignalPeriod(Number) = StartLength + Number * Step
ここで、Number変数は0からStepsTotalまでの範囲を持ちます。得られた期間値は変数の配列に追加され、インディケーターの各ティックでスムーズな値の配列を得るために使用されます。この配列に基づいて、各スムージングに対する現在のトレンドの方向が計算され、スムーズなAbsolutelyNoLagLWMA値全体に対する正のトレンドと負のトレンドの数が求められます。
最終的な正のトレンドと負のトレンドの数はスムーズ化され、インディケーターラインとして使用されます。これらは、DRAW_COLOR_HISTOGRAM2スタイルクラスを使用して表示されるカラーヒストグラムを形成します。このインディケーターのトレンド方向はヒストグラムの色で決まり、その強さはヒストグラムの幅によって決まります。
トレンドを示すために、各2つのトレンド方向に対して4色が使用されます。ヒストグラムの値が買われ過ぎ/売られ過ぎの領域に入らない場合、インディケーターの色は濃くなり、これらのレベルを突破する際には色が明るくなります。
インディケーターの入力パラメータ
//+----------------------------------------------+ //| インディケーター入力パラメータ | //+----------------------------------------------+ input uint FLength=7; // スムージング深度 input Applied_price_ IPC=PRICE_CLOSE_; // 価格定数 //---- input Smooth_Method W_Method=MODE_JJMA; // スムージング方法 input int StartLength=3; // 初期スムージング期間 input int WPhase=100; // スムージングパラメータ //---- input uint Step=5; // 期間変更ステップ input uint StepsTotal=10; // 期間変更の数 //---- input Smooth_Method SmoothMethod=MODE_JJMA; // スムージング方法 input int SmoothLength=3; // スムージング深度 input int SmoothPhase=100; // スムージングパラメータ //---- input uint UpLevel=80; // 買われ過ぎレベル(%) input uint DnLevel=20; // 売られ過ぎレベル(%) input color UpLevelsColor=Blue; // 買われ過ぎレベルの色 input color DnLevelsColor=Blue; // 売られ過ぎレベルの色 input STYLE Levelstyle=DASH_; // レベルスタイル input WIDTH LevelsWidth=Width_1; // レベルの太さ
スムージングアルゴリズムは10種類から選択可能です:
- SMA - 単純移動平均;
- EMA - 指数移動平均;
- SMMA - スムーズ移動平均;
- LWMA - 線形加重移動平均;
- JJMA - 適応平均JMA;
- JurX - 超線形平均;
- ParMA - 放物線スムージング;
- T3 - ティルソンの多重指数スムージング;
- VIDYA - Tushar Chandeアルゴリズムによるスムージング;
- AMA - Perry Kaufmanのアルゴリズムによるスムージング。
なお、異なるスムージングアルゴリズムにおけるPhaseタイプパラメータは、全く異なる意味を持ちます。JMAの場合、外部Phase変数は-100から+100に変化します。T3の場合、それは視覚化を向上させるために100倍されたスムージング比率であり、VIDYAの場合はCMOオシレーターの期間、AMAの場合はスローEMA期間です。他のアルゴリズムでは、これらのパラメータは平均化に影響しません。AMAにおいては、速いEMA期間はデフォルト値で固定されて2に等しいです。上昇の比率もAMAにおいては2に等しいです。
このインディケーターは、SmoothAlgorithms.mqhライブラリクラスを使用しています(これを<terminal_data_folder>\\MQL5\Includeにコピーしてください)。クラスの使用方法については、「追加のバッファを使用せずに中間計算のための価格系列の平均化」という記事で詳細に説明されています。

図1. ウルトラ絶対遅延なしLWMAインディケーター