iBarShift 関数
この関数は、指定した時間のバーのインデックス値を取得します。
バーのインデックス値は、チャート上の最新のバーが 0となります。そこから左側のバーのインデックス値が 1、2、3、… と自動付与されます。時間が経過してバーが新しく作成されたらインデックス値は作成された最新のバーを 0として、その他のバーも再付与されます。
データ型と構成・戻り値
int iBarShift(①, ②, ③, ④);
戻り値は、指定した時間のバーのインデックス値を返します。
引数 [4]
iBarShift関数は 4個の引数で構成されます。
番号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | symbol | string | - | - | 対象とする通貨ペア名。 「NULL」は現在のチャートの通貨ペアを表します。 |
② | timeframe | int | - | - | 時間軸。ENUM_TIMEFRAMES 列挙値から選択。0は現在のチャートの時間軸を選択したことになります。 |
③ | time | datetime | - | - | 検索するバーの日時。 |
④ | mode | bool | - | false | 検索日時のバーが見つからない時の表示方法。 true:-1を返します。 false:最も近いバーのインデックス値を返します。 |
使用例
iBarShift関数によるバーのインデックス値の取得
iBarShift関数を使って指定した日時のバーのインデックス値を取得します。
コード
// iBarShift関数によるバーのインデックス値の取得
#property strict
void OnInit() {
datetime dt = D'2023.02.10 12:00:00';
int index = iBarShift(NULL, PERIOD_H1, dt);
Print(dt, " バーのインデックス値:", index);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)