【MQL4勉強プログラミング】EAやインジケーターの開発で自由に作成した配列のRSIを使う方法!

ザフナーラボブログ

iRSIOnArray()関数は、ユーザーが自由に作成した配列を基にして、RSI(Relative Strength Index:相対力指数)の値を算出するために使用します。

iRSIOnArray()関数は、以下のように定義されています。

double iRSIOnArray(
double array[],
int total,
int period,
int shift
);

各引数の意味は、以下のとおりです。

  • double array[]
    RSIを算出する配列名を指定します。
  • int total
    RSIを算出する配列の要素数を指定します。
    「0」と記述すると、配列全体(=すべての要素)を基にして移動平均線を算出します。
  • int period
    RSIの値を計算する期間を指定します。
  • int shift
    算出したRSIの値を取得したいバーの位置を指定します。
    算出したRSIの値を取得したいバーが現在のバーであれば「0」、1本前のバーであれば「1」、2本前のバーであれば「2」……と記述します。

注意点

iRSI()関数とは異なって、iRSIOnArray()関数は、通貨ペア名や時間軸や適用価格のデータを取得しません。

したがって、iRSIOnArray()関数でボリンジャーバンドの値を算出するためには、あらかじめ価格データを用意しておかなければなりません。

RSIは、左から右へ(=古い価格データから新しい価格データに向かって)計算されます。右から左へ(=新しい価格データから古い価格データへ向かって)RSIを計算するためには、ArraySetAsSeries()関数(詳細は「こちら」を参照してください。)を使用します。

具体例

配列Buffer[]を基に算出した現在のバーのRSIの値を取得したい場合は、以下のように記述します。


double RSI_Buf = iRSIOnArray(Buffer,0,14,0);