👏
MQL5でRSIを使う方法
RSI (Relative Strength Index) は、価格の動きを評価するためのテクニカル指標の一つです。この指標は、買われ過ぎおよび売られ過ぎの状態を示しています。
関数定義:
Copy code
int iRSI(
string symbol, // 銘柄名
ENUM_TIMEFRAMES period, // 期間
int ma_period, // 平均期間
ENUM_APPLIED_PRICE applied_price // 価格の種類かハンドル
);
パラメータ:
symbol: 指標計算に使用される有価証券の銘柄名(NULL は現在のシンボル)
period: 期間の値は ENUM_TIMEFRAMES 列挙の値の 1 つで、0 は現在の時間軸の意味です。
ma_period: RSI 計算の平均期間
applied_price: 使用される価格。ENUM_APPLIED_PRICE 価格定数のいずれか、または別の指標ハンドル。
戻り値:
指定されたテクニカル指標ハンドル。失敗の場合 INVALID_HANDLE。IndicatorRelease() 関数に指標ハンドルを渡すことによって、コンピュータメモリを利用されていない指標から解放することが出来ます。
RSI値を取得する:
int handle;
// RSI指標のハンドルを取得
handle = iRSI(_Symbol, PERIOD_H1, 14, PRICE_CLOSE);
double rsiValue[];
// バッファをコピーしてRSIの値を取得
CopyBuffer(handle, 0, 0, 1, rsiValue);
Print("RSI Value: ", rsiValue[0]);
この簡単な例を使用すると、RSIの最新の値を取得できます。
全体的なヒント:
RSIの値が70を超えると、資産が買われ過ぎていると見なされ、売りの機会を示唆する可能性があります。
逆に、RSIの値が30未満の場合、資産が売られ過ぎていると見なされ、買いの機会を示唆する可能性があります。
RSIは、他のテクニカル指標や分析方法と組み合わせて使用することで、取引の決定をサポートするのに非常に役立ちます。
MQL5のRSIの数値を取得する関数
// RSIの値を取得する関数
double getRSIValue(int shift)
{
static int handle = -1; // RSIのハンドル(静的ローカル変数)
static ENUM_TIMEFRAMES last_timeframe = PERIOD_CURRENT; // 前回の時間軸(静的ローカル変数)
// 現在のチャートの時間軸が前回の時間軸と異なる場合、ハンドルをリセット
if(last_timeframe != _Period)
{
last_timeframe = _Period; // 現在の時間軸を記録
handle = -1; // ハンドルをリセット
}
// RSI指標のハンドルを取得
if(handle == -1)
{
handle = iRSI(_Symbol, last_timeframe, 14, PRICE_CLOSE); // 14期間のRSI
}
double rsiValue[1]; // RSIの値を格納する配列
// バッファをコピーしてRSIの値を取得
CopyBuffer(handle, 0, shift, 1, rsiValue);
return rsiValue[0]; // 指定されたシフトでのRSIの値を返す
}
Discussion