EA(自動売買)やインジケーター作成するにあたって絶対と言っても過言ではないくらい必要な知識ですので、MQL4の配列について、この記事でしっかりとマスターできる様に解説をしていきます。
配列とは何?
配列(Array)とは、同じ型の複数の変数にインデックス(番号)を付して管理する仕組みのことをいいます。
例えば、「1」から「5」までの整数値を変数を用いて宣言する場合には、変数を5つ用いて、以下のように記述する必要があります。
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
一方で、配列を用いた場合、以下のように、上記と同様のことを1行で簡潔に記述することができます。
int Array[5] = {1,2,3,4,5};
{}内の数値を、配列の「要素」といい、各要素は[]内の数値によって区別されます。
具体的には、Array[0]は「1」を、Array[1]は「2」を、Array[2]は「3」を、Array[3]は「4」を、Array[4]は「5」を、表します。
なお、[]内の数値は「1」からではなく「0」から始まります。したがって、配列の最後の要素は、「配列名[要素数-1]」と表されることになります。
配列の取扱いは、「配列名に番号を付けて管理する」という点を除けば、変数と全く同様となります。
配列の宣言の仕方
配列の宣言は、以下のように記述して行います。
型名 配列名[要素数];
「要素数」については、その個数があらかじめ定まっている場合には、その数を記述しますが、それ以外の場合には、何も記述せず、空欄のままとします。
インジケーターバッファー(=インジケーターの計算に使用するデータを格納しておく配列)の場合には、チャートに表示されるバーの個数分の要素が必要となりますが、チャートに表示されるバーの個数は、時間の経過とともに変化し、その数をあらかじめ定めておくことはできません。
したがって、インジケーターバッファーを宣言する際には、要素数を指定することなく、[]内は空欄のままとします。