【MQL5】iRSI関数について

MQL5リファレンス
スポンサーリンク
スポンサーリンク

iRSI関数の働き・役割

iRSI関数は、RSIを計算するための関数です。

RSIは、価格変動の強さと速さを測定し、相場の過買いや過売を示すオシレーター系の指標です。

RSIについての詳細は↓の記事をご参照ください

iRSI関数の引数について

symbol (string)

symbolは、データが指標計算に使用される銘柄名を指定します。

  • 例: "EURUSD"

period (ENUM_TIMEFRAMES)

periodは、チャートの時間枠を指定します。

  • 例: PERIOD_H1(1時間足)

ma_period (int)

ma_periodは、RSIを計算するための期間を指定します。

  • 例: 14

applied_price (ENUM_APPLIED_PRICE)

applied_priceは、使用される価格の種類を指定します。

  • 例: PRICE_CLOSE(終値)

iRSI関数の戻り値について

iRSI関数は、指定された条件に基づいて計算されたRSIのハンドルを返します。

計算に失敗した場合はINVALID_HANDLEを返します。

INVALID_HANDLEについての詳細は↓の記事をご参照ください

iRSI関数を使う際の注意点

MQL4とは違い、MQL5ではRSIの値の取得がiRSI関数だけでは完結しません。MQL4では指定されたインデックスRSI値を直接返していましたが、MQL5iRSI関数が返すのはあくまでRSIハンドル値です。

RSIの値を取得するためには、以下の工程をたどる必要があります。

  1. 値を格納する配列の宣言
  2. iRSI関数によるハンドルRSIの値を取得する鍵のようなもの)の取得
  3. ArraySetAsSeries関数による、配列の時系列セット
  4. CopyBuffer関数による、RSIの値情報を配列にコピー

iRSI関数を使ったサンプルコード

以下に、iRSI関数を使用してRSIを取得し、エキスパートログに出力するサンプルコードを示します。

// OnStart関数はスクリプトの実行が開始されたときに自動的に呼び出されます
void OnStart()
{
    // 使用する通貨ペアと時間枠を設定します
    string symbol = "EURUSD";
    ENUM_TIMEFRAMES period = PERIOD_H1;
    
    // RSIの設定値を定義します
    int time_period = 14;
    ENUM_APPLIED_PRICE applied_price = PRICE_CLOSE;
    
    // RSIの指標ハンドルを取得します
    int handle = iRSI(symbol, period, time_period, applied_price);
    
    // 指標ハンドルが有効かどうか確認します
    if(handle == INVALID_HANDLE)
    {
        Print("iRSI指標ハンドルの取得に失敗しました");
        return;
    }
    
    // RSIの値を取得します
    double rsi[];
    ArraySetAsSeries(rsi, true);
    CopyBuffer(handle, 0, 0, 3, rsi);
    
    // 取得したRSIの値をエキスパートログに出力します
    Print("RSIの値: ", rsi[0]);
}

サンプルコードに使われた関数や文法要素の簡単な解説

void OnStart()

OnStart関数スクリプトが実行されるときに自動的に呼び出される関数です。

string symbol = “EURUSD”;

symbolは、通貨ペアを表す文字列を定義しています。

ENUM_TIMEFRAMES period = PERIOD_H1;

periodは、チャートの時間枠を設定するための変数を定義しています。

int handle = iRSI(…)

iRSI関数は、RSIハンドルを取得するための関数です。引数としてシンボル名、時間枠、期間、適用価格を取ります。

ArraySetAsSeries(rsi, true);

ArraySetAsSeries関数は、配列を時系列として設定するための関数です。これにより、最新のデータが配列の先頭に来るように設定されます。

CopyBuffer(handle, 0, 0, 3, rsi);

CopyBuffer関数は、指標バッファからデータをコピーするための関数です。

指定されたハンドルバッファ番号を使って、データを配列にコピーします。

Print(…)

Print関数は、エキスパートログにメッセージを出力するための関数です。

<参照:その他のインジケータ関数

iSAR関数/iStochastic関数/iMA関数/iATR関数/iBands関数

————————————————————————————–

※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる

<MQL5でEAを作ろう講座>

をメインコンテンツとして展開しています。

【言語基礎編】

【中級実際にEAを作ろう編】

【発展編・MT5用EAを作る工程をカスタマイズしていく】

【クライマックス編・これまでにやってきたことを全て使ってEAを完成させる】

とレベル別に分かれており、

第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。

タイトルとURLをコピーしました