int ArrayBsearch(double array[ ], double value, int count=WHOLE_ARRAY, intstart=0, int direction=MODE_ASCEND)
If the element with the specified value doesn’t exist in the array, the function returns the index of the nearest smallest value of the elements between which the searched value is located.
もし、指定した値を持つ要素が配列に存在しない場合、この関数は、検索値の範囲で最も近い値の要素のインデックスを返します。
The function cannot be used with string arrays and series arrays (with the exception of the series array of the bar open time).
この関数は文字列配列と直列配列では使用することができません。(バーの開始時間の直列配列は除きます))
Note: Binary search processes only sorted arrays. To sort numeric arrays use the ArraySort()function.
注意:二分探索ではソートされた配列だけが処理できます。数値の配列をソートするには、ArraySort() 関数を使用します。
Parameters:
パラメータ:
|
Sample:
サンプル:
1 2 3 4 5 6 7 8 9 10 11 12 | datetime daytimes[]; int shift=10,dayshift; // All the Time[] series are sorted in descendant mode ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1); if(Time[shift]>=daytimes[0]) dayshift=0; else { dayshift=ArrayBsearch(daytimes,Time[shift],WHOLE_ARRAY,0,MODE_DESCEND); if(Period()<PERIOD_D1) dayshift++; } Print(TimeToStr(Time[shift])," corresponds to ",dayshift," day bar opened at ", TimeToStr(daytimes[dayshift])); |