
MQL4MQL5 時系列データ(バー・価格)
iHighest()
- できること
- 指定した範囲で最も高いバーの位置を求める
- 対応
- MQL4・MQL5
iHighest() とは
指定した範囲のバーの中で、高値(または終値など)が最も大きいバーの位置を返す関数です。直近 N 本の最高値を求めるときは iHigh(…, iHighest(…)) のように組み合わせます。
iHighest() の書式と引数
MQL4 の場合MT4
int iHighest(
string symbol,
int timeframe,
int type,
int count=WHOLE_ARRAY,
int start=0
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
symbol | string | 必須 | 銘柄名。 |
timeframe | int | 必須 | 時間足。 |
type | int | 必須 | 比べる値。MODE_HIGH(高値)、MODE_CLOSE(終値)、MODE_OPEN、MODE_LOW など。 |
count | int | WHOLE_ARRAY | 調べるバーの本数。 |
start | int | 0 | 調べ始めるバーの位置。1 にすると確定した足だけを調べます。 |
戻り値(MQL4)
最も値が大きいバーの位置。失敗したら -1。
MQL5 の場合MT5
int iHighest(
const string symbol,
ENUM_TIMEFRAMES timeframe,
ENUM_SERIESMODE type,
int count=WHOLE_ARRAY,
int start=0
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
symbol | const string | 必須 | 銘柄名。 |
timeframe | ENUM_TIMEFRAMES | 必須 | 時間足。 |
type | ENUM_SERIESMODE | 必須 | 比べる値。MODE_HIGH(高値)、MODE_CLOSE(終値)、MODE_OPEN、MODE_LOW など。 |
count | int | WHOLE_ARRAY | 調べるバーの本数。 |
start | int | 0 | 調べ始めるバーの位置。1 にすると確定した足だけを調べます。 |
戻り値(MQL5)
最も値が大きいバーの位置。失敗したら -1。
iHighest() の使い方(コード例)
MQL4・MQL5 共通
// 確定した直近20本の最高値と最安値
int hi = iHighest(_Symbol, PERIOD_CURRENT, MODE_HIGH, 20, 1);
int lo = iLowest(_Symbol, PERIOD_CURRENT, MODE_LOW, 20, 1);
if(hi >= 0 && lo >= 0)
Print("直近20本 高値=", iHigh(_Symbol, PERIOD_CURRENT, hi), " 安値=", iLow(_Symbol, PERIOD_CURRENT, lo));OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
MQL4 と MQL5 の違い
MQL4 の type は int、MQL5 は ENUM_SERIESMODE 型ですが、どちらも MODE_HIGH などの同じ定数が使えます。












