
MQL4MQL5 テクニカル指標
iSAR()
- できること
- パラボリック SAR の値を取得する
- 対応
- MQL4・MQL5
iSAR() とは
パラボリック SAR を計算する関数です。価格の下に点があれば上昇、上にあれば下降の目安で、トレーリングストップの位置としても使われます。
iSAR() の書式と引数
MQL4 の場合MT4
double iSAR(
string symbol,
int timeframe,
double step,
double maximum,
int shift
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
symbol | string | 必須 | 銘柄名。チャートの銘柄なら _Symbol(NULL も可)。 |
timeframe | int | 必須 | 時間足。0 または PERIOD_CURRENT でチャートの時間足。 |
step | double | 必須 | 加速因子の増え方(よく使われるのは 0.02)。 |
maximum | double | 必須 | 加速因子の上限(よく使われるのは 0.2)。 |
shift | int | 必須 | 値を取得するバーの位置。0 が現在(未確定)のバー、1 がひとつ前の確定したバー。 |
戻り値(MQL4)
SAR の値(価格)。
MQL5 の場合MT5
int iSAR(
string symbol,
ENUM_TIMEFRAMES period,
double step,
double maximum
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
symbol | string | 必須 | 銘柄名。チャートの銘柄なら _Symbol(NULL も可)。 |
period | ENUM_TIMEFRAMES | 必須 | 時間足。PERIOD_CURRENT でチャートの時間足。 |
step | double | 必須 | 加速因子の増え方(よく使われるのは 0.02)。 |
maximum | double | 必須 | 加速因子の上限(よく使われるのは 0.2)。 |
戻り値(MQL5)
インジケーターのハンドル。
iSAR() の使い方(コード例)
MQL4
double sar = iSAR(_Symbol, 0, 0.02, 0.2, 1);
Print(sar < iLow(_Symbol, 0, 1) ? "SAR は下(上昇)" : "SAR は上(下降)");MQL5
int hSar = INVALID_HANDLE;
int OnInit()
{
hSar = iSAR(_Symbol, PERIOD_CURRENT, 0.02, 0.2);
return hSar == INVALID_HANDLE ? INIT_FAILED : INIT_SUCCEEDED;
}
void OnTick()
{
double v[];
if(CopyBuffer(hSar, 0, 1, 1, v) == 1)
Print(v[0] < iLow(_Symbol, PERIOD_CURRENT, 1) ? "SAR は下(上昇)" : "SAR は上(下降)");
}OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
iSAR() の注意点
- MQL5 では値ではなく「ハンドル」(インジケーターの番号)が返ります。ハンドルは OnInit() で1回だけ作り、OnTick() などで CopyBuffer() を使って値を読み出します。毎ティック作り直すと動作が重くなります。












