引数名 | 初期値 | I/O | 詳細 |
array[] | - | In | 検索する数値配列 |
value | - | In | 検索する値 |
count | WHOLE_ARRAY | In | 検索対象の要素数。
省略した場合は配列全体で検索します。 |
start | 0 | In | 検索対象のインデックス開始位置。
省略した場合は最初の要素が開始位置になります。 |
direction | MODE_ASCEND | In | 検索方向。設定する値は次のいずれかになります。
・MODE_ASCEND:順方向検索 ・MODE_DESCEND:逆方向検索 省略した場合は、順方向で検索します。 |
#property strict // strictは絶対に削除しない事 void OnInit(){ datetime daytimes[]; // 検索するデータ配列 int get_index; // 検索結果のインデックス datetime checktime; // 検索する値 if ( Period() != PERIOD_D1 ) { // 現在のチャートが日足以外の場合は終了 return; } ArrayCopySeries( daytimes, MODE_TIME, Symbol(), PERIOD_D1); // daytimes配列に時系列配列情報をコピー checktime = Time[14]; // 14営業日前の日足オープン時間を取得 // 時系列配列のTime[]は全て降順でソートされています get_index = ArrayBsearch( daytimes, checktime, WHOLE_ARRAY, 0, MODE_DESCEND); Print( "検索値:" ,TimeToStr(checktime), " 見つかったインデックス:",get_index, " 見つかったデータ:" ,TimeToStr(daytimes[get_index]) ); checktime = Time[14]; // 14営業日前の日足オープン時間を取得 checktime -= (36 * 3600); // 検索値を1.5日オフセット(15.5日前の時間) get_index = ArrayBsearch( daytimes, checktime, WHOLE_ARRAY, 0, MODE_DESCEND); Print( "検索値:" ,TimeToStr(checktime), " 見つかったインデックス:",get_index, " 見つかったデータ:" ,TimeToStr(daytimes[get_index]) ); }
検索値:2015.03.31 00:00 見つかったインデックス:14 見つかったデータ:2015.03.31 00:00 検索値:2015.03.29 12:00 見つかったインデックス:15 見つかったデータ:2015.03.30 00:00