iRSI関数の働き・役割
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値を直接返していましたが、MQL5のiRSI関数が返すのはあくまでRSIのハンドル値です。
RSIの値を取得するためには、以下の工程をたどる必要があります。
- 値を格納する配列の宣言
- iRSI関数によるハンドル(RSIの値を取得する鍵のようなもの)の取得
- ArraySetAsSeries関数による、配列の時系列セット
- 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関数
————————————————————————————–
※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる
をメインコンテンツとして展開しています。
→【クライマックス編・これまでにやってきたことを全て使ってEAを完成させる】
とレベル別に分かれており、
第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。