Relative Strength Index(iRSI)関数|MT4インディケータ
佐川直弘(株式会社トリロジー取締役)
MetaTrader 4(MT4)を使ったFX自動売買において、テクニカル指標の理解と活用は非常に重要です。この記事では、Relative Strength Index(RSI)インディケータについて、初心者にもわかりやすく解説します。
Relative Strength Index(RSI)とは?
RSIは、J. Welles Wilderによって開発されたテクニカル指標で、相対的な強さを測定するために使用されます。RSIは、価格の上昇と下降の比率を計算し、0から100の範囲で値を示します。通常、70以上は買われ過ぎ、30以下は売られ過ぎとされ、トレンドの転換点を示すために使用されます。
iRSIの計算方法
MT4では、RSIを計算するためにiRSI()関数を使用します。この関数は以下のように定義されています。
- 関数仕様
- double iRSI(
string symbol, // 通貨ペア種類
int timeframe, // 時間軸種類
int period, // 移動平均の期間
int applied_price, // 価格種類
int shift // 取得するバーの位置(0が最新のバーを表し、1~が過去のバーに遡っていきます)
);
この関数は、指定された通貨ペアと時間軸におけるRSIの値を返します。
引数の説明
- symbol
- 通貨ペアの種類を指定します。例えば、"EURUSD"や"GBPJPY"など。
- timeframe
- 時間軸の種類を指定します。例えば、1分足(1)、5分足(5)、1時間足(60)など。
- period
- 移動平均の期間を指定します。
- applied_price
- 価格の種類を指定します。
– `PRICE_CLOSE` – 終値
– `PRICE_OPEN` – 始値
– `PRICE_HIGH` – 高値
– `PRICE_LOW` – 安値
– `PRICE_MEDIAN` – (高値 + 安値) / 2
– `PRICE_TYPICAL` – (高値 + 安値 + 終値) / 3
– `PRICE_WEIGHTED` – (高値 + 安値 + 終値 * 2) / 4 - shift
- 取得するバーの位置を指定します。0が最新のバーを表し、1以上の数値が過去のバーを表します。
サンプルコード
以下に、iRSI()関数を使用して最新のバーのRSI値を取得するサンプルコードを示します。
- サンプルコード
- // EURUSDの1時間足で最新のバーのRSI値を取得する例
double rsi_value = iRSI(“EURUSD", PERIOD_H1, 14, PRICE_CLOSE, 0);
Print(“EURUSDの1時間足の最新のRSI値: “, rsi_value);
このサンプルコードでは、"EURUSD"の1時間足における最新のRSI値を取得し、ターミナルウィンドウに表示します。
iRSIOnArrayの計算方法
iRSIOnArray()関数は、ユーザが作成した自由なデータを元にRSIを計算するために使用されます。この関数は、価格データを格納した配列を引数に指定します。
- 関数仕様
- double iRSIOnArray(
double array[], // 価格データの配列
int total, // 配列のうち計算に使用する個数。全てを使用する場合は0を指定する。
int period, // 移動平均の期間
int shift // 取得するバーの位置(0が最新のバーを表し、1~が過去のバーに遡っていきます)
);
以下に、iRSIOnArray()関数を使用してRSIの値を取得するサンプルコードを示します。
- サンプルコード
- // 配列に格納された価格データからRSIの値を取得する例
double price_data[1000];
// price_dataには価格データが格納されていると仮定
double rsi_value_array = iRSIOnArray(price_data, 1000, 14, 0);
Print(“配列から計算されたRSI値: “, rsi_value_array);
このサンプルコードでは、配列に格納された価格データからRSIの値を計算し、ターミナルウィンドウに表示します。
以下は、RSIを使って買いシグナルや売りシグナルを判断する簡単な例です。
- 応用例
- // EURUSDの1時間足でRSIを使って買いシグナルや売りシグナルを判断する例
double rsi_current = iRSI(“EURUSD", PERIOD_H1, 14, PRICE_CLOSE, 0);
double rsi_previous = iRSI(“EURUSD", PERIOD_H1, 14, PRICE_CLOSE, 1);
if (rsi_current > 70 && rsi_previous <= 70) {
Print(“売りシグナル: RSIが70を超えました。");
} else if (rsi_current < 30 && rsi_previous >= 30) {
Print(“買いシグナル: RSIが30を下回りました。");
}
このコードは、RSIが70を超えた場合に売りシグナルを、30を下回った場合に買いシグナルを生成します。
まとめ
Relative Strength Index(iRSI)インディケータは、相対的な強さを測定するための強力なツールです。MT4のiRSI()およびiRSIOnArray()関数を使用することで、簡単にこのインディケータの値を取得し、トレード戦略に活用することができます。初心者の方も、この基本的な使い方を理解して、実際のトレードに応用してみてください。
ディスカッション
コメント一覧
まだ、コメントがありません