こんにちは、トレーダーの皆さん!今日はMetaTrader 5用の「ID Lite Info MA」インジケーターについてご紹介します。このインジケーターは、現在の時間枠における2つの移動平均線(MA)の9つの値を表示します。これには、前のシーケンシャルなMA値との違いや、MA間のポイントでの差も含まれます。また、データ表示を正のオフセットや負のオフセットに設定したり、必要な小数桁に丸めたりすることができます。なお、現在のゼロバーの値を表示することはサポートされていません。
このインジケーターは、MetaTrader 4用のバージョンと同様に、シーケンシャルな値の違いだけでなく、ポイントでの距離も表示できます。この際、ソースコードを拡張することなく利用可能です:
- バーのHIGHとLOW、HIGHとOPEN、HIGHとCLOSE、またはHIGHと特定の移動平均の値の間の違いを表示します。この際、ポイントでの正または負のオフセットや、小数桁を減少または「拡張」することも考慮します。
- OPENと...(など);
- CLOSEと...(など);
- LOWと...(など);
- 2つの移動平均の間の違いを表示します。ここでも正または負のオフセットや、小数桁の増減を考慮できます。
以下のスクリーンショットに示すように、インジケーターは3桁のチャート上に、2つの小数桁に丸められた値のテーブルを表示します。また、4つの小数桁に「拡張」された値も表示できます。
それ以外は、このインジケーターはMetaTrader 4用のバージョンと同一です:
インジケーターのテーブルでは、MA(またはバー)のマークと隣接するシーケンシャル値との差に対して色が自動的に変化します。値が変化すると、異なる色が適用されます。ただし、2つの移動平均の差(およびバーやオフセットの色の変更)はサポートされていません。
計算とテーブル値の変更は以下のときに行われます:
- 新しいバーが出現したとき;
- ユーザーがインジケーターの入力パラメータを変更したとき;
- ユーザーがチャートの時間枠やシンボルを変更したとき。
各テーブル行における9つの値が多すぎるまたは少なすぎる場合、計算されたデータの量を変更するには、以下のコード行で9を正の数(>=2)に変更する必要があります:
#define ARRAY_SIZE_X 9
追加情報:
- インジケーターのテーブルには、MetaTrader 4用のバージョンと同じ「秘密」があります:テーブルの見出しの下にある水平バーをクリックすることで、一時的に非表示にできます。
注意: テーブル見出しは、インジケーターが表示する値のバー番号を示しています。インジケーターのパラメータで、開始バー番号を任意の正の非ゼロ値に変更できます。
ゼロバーが含まれていない理由は、個人的なニーズのためにインジケーターを作成したため、現在の(ゼロ)バーのデータを常に表示する必要がなかったからです。しかし、現在形成中のバーにおけるデータが毎回変化するのを表示したい場合は、少し異なるコード構造を実装する必要があります。
実際、現在の(ゼロ)バーに関する制限はテーブル内の値にのみ適用されます。必要であれば、例えば、テーブル内の現在価格が特定の値を突破したときに通知をトリガーするコード行を追加できます。また、テーブル内の「新しい」値が特定の「古い」値よりも小さい/大きいまたは等しいときに通知をトリガーすることもできます。既存のMAやバーのマークの計算を他の必要な計算に置き換えることも可能です。
- 各移動平均のパラメータ(入力パラメータで設定またはデフォルトのままのもの)を、テーブルセルにカーソルを合わせることでいつでも確認できます。
注意: ツールチップにはパラメータの値が表示されますが、これはチャートのプロパティで「オブジェクトの説明を表示」オプションがオンにされている場合のみです。
- MAの値の代わりに、各移動平均やバーのマークから必要な正または負のオフセットを持つデータを表示することができます。
注意: MAの計算の代わりに、隣接するバーのOpenやHigh、Low、Closeの差を表示するには、以下のMA値を入力パラメータで設定する必要があります:このパラメータの設定により、インジケーターはバーのマークに直接計算を行います。
- 移動平均の期間... = 1;
- MAの方法...= MODE_SMA;
- 適用対象... = PRICE_OPEN, PRICE_HIGH, PRICE_LOWまたはPRICE_CLOSE.
- MAやバーの値を特定の小数桁に丸めるまたは「拡張」する必要がある場合は、小数桁入力パラメータに必要な値を設定します。
- インジケーターラインの表示をオフにすることも、入力パラメータで可能です。
注意:ラインの色は、最初に計算されたバーの値の方向に依存します。このバーは最初の値のシフト:で設定され、テーブル内のMA値の数よりも1バー深くチャートにプロットされます(これにより、テーブル内の最後のバーが比較されるマークが確認できます)。
- 入力パラメータでは、テーブルのX軸とY軸のオフセット、テーブルセルのサイズ、フォントサイズ、色を変更し、テーブルを前面に持ってくることもできます(デフォルトでは、バーを隠さないように背景に表示されます)。

Fig.1. インジケーターのライン、マーク、HighとLowの価格間のポイントの差、3桁のチャートで2桁に丸められた

Fig.2. 2つの移動平均間のマークとポイントの差、3桁のチャートで4桁に「拡張」された
注意: このインジケーターを標準の移動平均と一緒にチャートに追加した場合、オフセットや丸め設定を行っていない場合、インジケーターのラインが標準のMA(同じパラメータで)と一致しない場合があります。正確な計算の結論を急がないでください。
データウィンドウを開いて、標準の移動平均の表示桁数を確認してください(例えば、3桁のチャートで4桁の小数が使用されているかもしれません)。
これは正常で便利だと思います。移動平均は平均値で計算されるからです。例:(1.2052 + 1.2057 + 1.2073)/3 = 1.2060667。したがって、小数桁を丸めたり拡張したりすることで、可能な使用シナリオが増えます。
もしラインが完全に一致する必要がある場合(他のパラメータが同じ)、ID Lite Info MAの入力パラメータで小数桁のドロップダウンリストから、より大きな小数桁数を選択してください。

Fig.3. 組み込み移動平均とID Lite Info MA(小数桁=現在のチャート)
バージョン1.11(2015年9月25日):
- 移動平均の最大期間の値を500から3000バーに増加しました。この制限は自由に設定できるため、任意の正の整数値に変更可能です。これは以下の関数で設定されています:
bool CheckInput(int period,string text)
- コードのマイナーな修正と最適化。