MQL4

MQL4でRSIの数値を利用するiRSI関数の使い方

どうも、こっこです。

 

最近は収入の柱を増やすためにFXでの取引の勉強をはじめました。もともと仕事の一部としてMQL4でサインツール作成やエキスパートアドバイザ作成を依頼されて作成していたので、この機会に自分でも勉強しつつ、稼ぎを出してやろうというところです。

 

今回はMQLでカスタムインジケーター、エキスパートアドバイザを作成する際に、RSIの数値をどう取得して取り扱うのかを説明します。

 

iRSI関数書式

double iRSI(
   string    symbol,             //通貨ペア
   int       timeframe,       //時間軸(足)
   int       period,           //平均期間
   int       applied_price,  //適用価格
   int       shift               //バーシフト
);

 

iRSI関数引数

引数名 詳細
symbol string 対象とする通貨ペア名。

NULLを入力することで現在のチャートに表示されている通貨ペアを利用します。

timeframe int 対象とする時間軸を入力します。

0を入力することで現在のチャートに表示されている時間軸を利用します。

period int RSI値を計算する平均期間を渡します。
applied_price int 適用価格をENUM(列挙)で値を指定します。

列挙体から選択するか番号を渡します。

shift int バッファから取得するバーシフトの数字を渡します。

現在のバーを基準として、左(過去)には1ずつ増え、右(未来)には1ずつ減ります。最新で今動いているバーは0になります。

 

iRSI関数返り値

double型でRSIを計算した値を返します。

 

RSI値取得例

void OnCalculate()//引数省略
{

   double rsiNow = iRSI(NULL, 0, 14, PRICE_CLOSE, 0);

}

 

RSI値計算例

◯シグナル表示条件

・RSIの値が70を超えていたらLow(売り)のシグナルを表示
・RSIの値が30を下回っていたらHigh(買い)のシグナルを表示

void OnCalculate()  //引数省略
{
 string signal = "";
 for(int i=0; i<Bars; i++)
 {
   double rsiNow = iRSI(NULL,  0, 14, PRICE_CLOSE, i);
   if(70 <= rsiNow)
   {
      signal = "Low";   //RSIが70を超えていたらLow(売り)の処理
   }
   else if(rsiNow <= 30)
   {
      signal = "High";   //RSIが30を下回ったらHigh(買い)の処理
   }
 }
 return(rates_total);
}

※結構省略している部分が多いので、あくまで参考程度に見てください。

まとめ

いかがだったでしょうか?

FXやバイナリーではサブウィンドウ表示でRSIを使用する機会が多く、売られすぎ・買われすぎを判断して、レンジ相場での逆張りとして利用できます。

MQL4でこのRSIを利用し、サインツールやエキスパートアドバイザの作成に役立ててみてください。

ではまた!

【広告枠】初心者向けMQL4開発ができる格安パソコン
・Let’s note(CF-SZ5) 価格:39800円
https://amzn.to/3ktKsay
└中古品、軽量コンパクト、画面サイズ小さめ
・Think Pad(L580) 価格:37230円
https://amzn.to/3krdIip
└中古品、CPU第8世代i5とだいぶ新しい、画面サイズが15.6インチなのでちょっと大きめ
・NEC(VK26) 価格:42880円
https://amzn.to/3QN88mB
└中古品、CPUが第7世代i7なので心配無し、画面サイズが15.6インチなのでちょっと大きめ、ディスクドライブ付きなので分厚い
※各価格は掲載当時の価格になります。