iOpen 関数
この関数は、指定した通貨ペアと時間軸、インデックス値のバーの始値を取得します。
バーのインデックス値は、チャート上の最新のバーが 0となります。そこから左側のバーのインデックス値が 1、2、3、… と自動付与されます。時間が経過してバーが新しく作成されたらインデックス値は作成された最新のバーを 0として、その他のバーも再付与されます。
配列変数 Open[] でも同様の結果が得られます。
データ型と構成・戻り値
double iOpen(①, ②, ③);
戻り値は、指定されたバーの始値を返します。エラーの場合は 0を返します。
発生するエラーについては、GetLastError関数で取得することができます。
引数 [3]
iOpen関数は 3個の引数で構成されます。
番号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | symbol | string | - | - | 対象とする通貨ペア名。 「NULL」は現在のチャートの通貨ペアを表します。 |
② | timeframe | int | - | - | 時間軸。ENUM_TIMEFRAMES 列挙値から選択。0は現在のチャートの時間軸を選択したことになります。 |
③ | shift | int | - | - | バーのインデックス値。 |
使用例
iOpen関数によるバーの始値の取得
iOpen関数を使って 1時間軸チャートの指定したバーの始値を取得します。
コード
// iOpen関数によるバーの始値の取得
#property strict
void OnInit() {
Print("最新のバーの始値:", iOpen(NULL, PERIOD_H1, 0));
Print("1つ前のバーの始値:", iOpen(NULL, PERIOD_H1, 1));
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)