指定範囲の最安値バーを検索 iLowest 関数

関数

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

iLowest 関数

 この関数は、指定したバーの範囲から設定した値(始値、高値、安値、終値、Tick出来高から選択)の最安値を持つバーのインデックス値を取得します。

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

データ型と構成・戻り値

int iLowest(①,②,③,④,⑤);

 戻り値は、指定したバー位置の範囲から設定した値の最安値を持つバーのインデックス値を返します。エラーの場合は -1を返します。
 発生するエラーについては、GetLastError関数で取得することができます。

引数 [5]

 iLowest関数は 5個の引数で構成されます。

番号引数名データ型単位初期値説明
symbolstring対象とする通貨ペア名。
NULL」は現在のチャートの通貨ペアを表します。
timeframeint時間軸。ENUM_TIMEFRAMES 列挙値から選択。0は現在のチャートの時間軸を選択したことになります。
typeint比較する値を設定。時系列配列識別子から選択。
countintWHOLE_ARRAY検索するバーの数。初期値の「WHOLE_ARRAY」は全バーを表します。
startint0検索を開始するバーのインデックス値。
※初期値があるものは省略可。但し、省略した引数以降は省略しなければなりません。

使用例

iLowest関数による最安値バーのインデックス値の取得

 iLowest関数を使って 1時間軸チャートの最安値を含むバーの位置をインデックス値で取得します。範囲は最新のバーから 10時間分(10本分)のバーです。合わせて、そのバーの価格、日時も取得します。

コード

// iLowest関数による最安値バーのインデックス値の取得
#property strict
void OnInit() {

int a = iLowest(NULL, PERIOD_H1, MODE_LOW, 10, 0); // インデックス値を取得
double b = iLow(NULL, PERIOD_H1, a);               // 価格を取得
datetime c = iTime(NULL, PERIOD_H1, a);            // 日時を取得

Print("(期間中の最安値)インデックス値:", a, " 価格:", b, " 日時:", c);
}

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

結果

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