MQL4 テクニカル指標
iMAOnArray()
- できること
- 配列の値から移動平均を計算する
- 対応
- MQL4
iMAOnArray() とは
MQL4 で、自分で用意した配列(ほかのインジケーターの値など)に対して移動平均を計算する関数です。RSI の移動平均のような「指標の平滑化」に使います。
iMAOnArray() の書式と引数
double iMAOnArray(
double &array[],
int total,
int ma_period,
int ma_shift,
int ma_method,
int shift
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
array | double &[] | 必須 | 値の入った配列(時系列:0 が最新)。 |
total | int | 必須 | 計算に使う要素数。0 なら配列全体。 |
ma_period | int | 必須 | 移動平均の期間。 |
ma_shift | int | 必須 | 右にずらす本数。 |
ma_method | int | 必須 | 移動平均の種類。MODE_SMA など。 |
shift | int | 必須 | 値を取得する位置。 |
戻り値
移動平均の値。
iMAOnArray() の使い方(コード例)
// RSI(14) の5期間移動平均
double rsi[];
ArrayResize(rsi, 50);
ArraySetAsSeries(rsi, true);
for(int i = 0; i < 50; i++)
rsi[i] = iRSI(_Symbol, 0, 14, PRICE_CLOSE, i);
double rsiMa = iMAOnArray(rsi, 0, 5, 0, MODE_SMA, 1);
Print("RSI の5期間平均(1本前):", DoubleToString(rsiMa, 2));OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
iMAOnArray() の注意点
- 配列は時系列(0 が最新)として扱われます。ふつうの配列なら ArraySetAsSeries(配列, true) にしておきます。
MQL4 と MQL5 の違い
MQL5 にはありません。標準ライブラリの MovingAverages.mqh(SimpleMA() など)を使うか、iMA() の applied_price に別のインジケーターのハンドルを渡して計算します。












