指定時間のバーのインデックス値を取得 iBarShift 関数

関数

時系列とインジケータへのアクセス関数

iBarShift 関数

この関数は、指定した時間のバーのインデックス値を取得します。

バーのインデックス値は、チャート上の最新のバーが 0となります。そこから左側のバーのインデックス値が 1、2、3、… と自動付与されます。時間が経過してバーが新しく作成されたらインデックス値は作成された最新のバーを 0として、その他のバーも再付与されます。

データ型と構成・戻り値

int iBarShift(①, ②, ③, ④);

戻り値は、指定した時間のバーのインデックス値を返します。

引数 [4]

iBarShift関数は 4個の引数で構成されます。

番号引数名データ型単位初期値説明
symbolstring対象とする通貨ペア名。
NULL」は現在のチャートの通貨ペアを表します。
timeframeint時間軸。ENUM_TIMEFRAMES 列挙値から選択。0は現在のチャートの時間軸を選択したことになります。
timedatetime検索するバーの日時。
modeboolfalse検索日時のバーが見つからない時の表示方法。
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);
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

タイトルとURLをコピーしました