iRSI 関数
この関数は、任意に設定したパラメータのRSI (相対強度指数) の値を計算して、その値を取得します。RSIはオシレータ系のインジケータに分類されます。
RSI
RSI (Relative Strength Index [相対強度指数]) は、テクニカル分析における主要なオシレータ系のインジケータの一つで、一定期間内の値動きの強弱を示す指標になります。価格変動幅が大きくなると、RSIの値は高くなり、価格変動幅が小さくなるとRSIの値は低くなります。RSIは主に買われすぎ、売られすぎの状態を判断するために使用されます。
RSIの期間として、通常は14期間を用いられます。
MT4でチャート上にRSIをプロットする時はナビゲーター中のインディケータ → 「RSI」インジケータを使用します。
(RSIの計算式)
RSI = A ÷ ( A + B ) ✕ 100
A:n期間中の1つ前のバーより値上がりしたバーの値上がり幅の合計。
B:n期間中の1つ前のバーより値下がりしたバーの値下がり幅の合計の絶対値。
(RSIの使い方)
RSIは、通常、日足チャートで14日間を使用して計算され、0から100の範囲で表されます。RSIが70以上になると、市場は過剰買い状態とみなされ、RSIが30以下になると、市場は過剰売り状態とみなされます。
また、RSIは、価格が上昇トレンドにあるか下降トレンドにあるかを特定するためにも使用できます。RSIが50を超える場合、市場は上昇トレンドにあるとみなされ、50未満の場合は下降トレンドにあるとみなされます。また、RSIがトレンドラインのサポートまたはレジスタンスを突破する場合、市場のトレンドが変わる可能性があります。
RSIを使用すると、順張り戦略と逆張り戦略の両方を実行できます。価格が上昇している場合は、順張り戦略を使用してRSIが70以上になる前に売り出すことができます。価格が下落している場合は、順張り戦略を使用してRSIが30以下になる前に買い戻すことができます。逆張り戦略を使用する場合、RSIが過剰買い/過剰売り状態に達したときに逆張り取引を行います。
データ型と構成・戻り値
double iRSI(①, ②, ③, ④, ⑤);
戻り値は、任意に設定したパラメータのRSIの値を計算して、その値を返します。
引数 [5]
iRSI関数は 5個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | symbol | string | - | - | 計算対象の通貨ペア名。 「NULL」は選択チャートの通貨ペア名が選択されます。 |
② | timeframe | int | - | - | 時間軸。ENUM_TIMEFRAMES 列挙値から選択。 「0」は現在チャートの時間軸が選択されます。 |
③ | period | int | - | - | RSIの計算期間。RSIを計算するバーの数を数値で設定します。 |
④ | applied_price | int | 決済の 通貨単位 | - | 適用価格。 ENUM_APPLIED_PRICE 列挙値から選択。 |
⑤ | shift | int | - | - | RSIを算出する位置。 現在のバーから指定した時間軸のバー数だけ過去へシフトします。たとえば、現在のバーからの計算は「0」、 1つ前のバーから計算する時は「1」になります。 |
使用例
iRSI関数によるRSI値の計算
iRSI関数を使って14日間分のバーの終値からRSIの値を算出します。
RSI指標を監視して自動取引を実行するEAはこちらを参考にしてください。
コード
// iRSI関数によるRSI値の計算
#property strict
void OnInit() {
int period = 14; // 期間
double a = iRSI(NULL, 0, period, 0, 0);
Print(period, "期間のRSI値:", a);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)