int ArrayBsearch(double array[], double value, int count=WHOLE_ARRAY, int start=0, int direction=MODE_ASCEND)
配列の最初の次元において、一致した値がある場合はそのインデックスを、一致した値が無い場合は最も近い値のインデックスを返す。 この関数は文字列配列、直列配列で使うことはできない (足の開始時間配列は除く)。
Note:二分探索法ではソート済み配列しか処理できない。数値配列をソートするにはArraySort()関数を用いる。
Parameters:
array[] - 検索
int ArrayCopy(object &dest[], object source[], int start_dest=0, int start_source=0, int count=WHOLE_ARRAY)
配列を他の配列にコピーする。配列同士は同じ型でなければならないが、double[]、int[]、datetime[]、color[]、bool[]型は同じ型としてコピーされる。
コピーされた要素数を返す。
Parameters:
dest[] - コピー先の配列
source[] - コピー元の配列
start_dest -
nt ArrayInitialize( object &array[], double value)
数値配列の要素を同じ値で設定する。初期化した要素の数を返す。
Note:カスタムインジケータのinit()関数のような関数内でインデックスバッファを、"empty_value"で自動的に初期化することは推奨されない。
Parameters:
array[] - 初期化したい数値配列
value - 初期値
Sample:
//---- initializing of all array elements with 2.1
double myarr
bool ArrayIsSeries( object array[])
もし配列が直列配列 (Time[]、Open[]、Close[]、High[]、Low[]、Volume[])である場合にTRUEを返す。それ以外はFALSEを返す。
Parameters:
array[] - チェックしたい配列
Sample:
if(ArrayIsSeries(array1)==false)
ArrayInitialize(array1,0);
else
{
Print(“Series array cannot be initialized!”);
return(-1);
}
int ArrayMaximum( object array[], int count=WHOLE_ARRAY, int start=0)
要素内の最大値を検索する。この関数は最大値要素を持つ配列内の位置を返す。
Parameters:
array[] - 検索する配列
count - 検索する要素の数。デフォルトでは、全要素
start - 検索する最初のインデックス。デフォルトでは最初の要素から検索
Sample:
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
int maxValueIdx
int ArrayMinimum( object array[], int count=WHOLE_ARRAY, int start=0)
要素内の最小値を検索する。この関数は最小値要素を持つ配列内の位置を返す。
Parameters:
array[] - 検索する配列
count - 検索する要素の数。デフォルトでは、全要素
start - 検索する最初のインデックス。デフォルトでは最初の要素から検索
Sample:
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
int minValueidx
int ArrayRange( object &array[], int range_index)
配列内の指定した次元内にある要素の数を返す。インデックスは0から始まり、最大要素のインデックスは、次元サイズ-1となる。
Parameters:
array[] - 検索する配列
range_index - 次元番号
Sample:
int dim_size;
double num_array[10,10,10];
dim_size=ArrayRange(num_array, 1);
int ArrayResize( object &array[], int new_size)
1番目の次元を新しいサイズに設定する。
もし成功したらリサイズ後の配列要素数を返し、リサイズできなかった場合は-1を返す。
Note:関数内のようにローカルで宣言されていたりリサイズされた配列は、この関数を用いても変更されない。この関数が再び呼ばれた後、配列は宣言時とは異なる大きさになる。
Parameters:
array[] - リサイズする配列
new_size - 1番目の次元の新しいサイズ
Sample:
double array1[][4];
int
bool ArraySetAsSeries( object &array[], bool set)
配列のインデックス方向を設定する。
もしset変数がTRUEの場合、配列は逆順にインデックス化される。
つまり最終要素のインデックスが0となる。
FLASEの場合は基本的なインデックス順である。
この関数は前の状態を返す。
Parameters:
array[] - 設定する配列
set - 配列のインデックス順
Sample:
double macd_buffer[300];
double signal_buffer[300];
int i,limit=Array
int ArraySize( object &array[])
配列に含まれる全要素の数を返す。
1次元配列においてArraySize関数による返り値はArrayRange(array,0)と同じである。
Parameters:
array[] - 配列
Sample:
int count=ArraySize(array1);
for(int i=0; i
{
// some calculations.
}