iHighest 関数
この関数は、指定したバーの範囲から設定した値 (始値、高値、安値、終値、Tick出来高から選択) の最高値を持つバーのインデックス値を取得します。
バーのインデックス値は、チャート上の最新のバーが 0となります。そこから左側のバーのインデックス値が 1、2、3、… と自動付与されます。時間が経過してバーが新しく作成されたらインデックス値は作成された最新のバーを 0として、その他のバーも再付与されます。
データ型と構成・戻り値
int iHighest(①, ②, ③, ④, ⑤);
戻り値は、指定したバー位置の範囲から設定した値の最高値を持つバーのインデックス値を返します。エラーの場合は -1を返します。
発生するエラーについては、GetLastError関数で取得することができます。
引数 [5]
iHighest関数は 5個の引数で構成されます。
番号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | symbol | string | - | - | 対象とする通貨ペア名。 「NULL」は現在のチャートの通貨ペアを表します。 |
② | timeframe | int | - | - | 時間軸。ENUM_TIMEFRAMES 列挙値から選択。0は現在のチャートの時間軸を選択したことになります。 |
③ | type | int | - | - | 比較する値を設定。時系列配列識別子から選択。 |
④ | count | int | - | WHOLE_ARRAY | 検索するバーの数。初期値の「WHOLE_ARRAY」は全バーを表します。 |
⑤ | start | int | - | 0 | 検索を開始するバーのインデックス値。 |
使用例
iHighest関数による最高値バーのインデックス値の取得
iHighest関数を使って 1時間軸チャートの最高値を含むバーの位置をインデックス値で取得します。範囲は最新のバーから 10時間分 (10本分) のバーです。合わせて、そのバーの価格、日時も取得します。
コード
// iHighest関数による最高値バーのインデックス値の取得
#property strict
void OnInit() {
int a = iHighest(NULL, PERIOD_H1, MODE_HIGH, 10, 0); // インデックス値を取得
double b = iHigh(NULL, PERIOD_H1, a); // 価格を取得
datetime c = iTime(NULL, PERIOD_H1, a); // 日時を取得
Print("(期間中の最高値)インデックス値:", a, " 価格:", b, " 日時:", c);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)