せっかくMT4(MetaTrader4)を使うなら、あなたオリジナルのEA(Expert Advisor)やインジケーターを自作してみませんか!?
初心者向けに、MQL4言語を使ったプログラミングについて解説しています。
今回は、変数と配列です。
変数や配列は、プログラミング言語の基本中の基本ですから、EAやインジケーターを自作するために、必ず覚えておきましょう。
一見難しそうに感じるかもしれませんが、実は超簡単ですから、ぜひ挑戦してみましょう♪
変数
変数とは、データを代入する記号や文字列のことです。
プログラムの中で、あるデータを一時的に入れておく箱のようなものです。
変数の宣言
MQL4言語で変数を使うためには、事前に宣言しておく必要があります。
やり方は、変数の型(「int」や「double」など)、半角スペース、変数の名前、文の末尾を意味する「;」の順に記述することで、変数を宣言したことになります。
具体的にはこう書きます。
int a;
これで、「int型の変数aを使う。」という宣言をしたことになります。
変数の初期化
変数は、宣言しただけではまだ中身は空っぽなので、初期化します。
変数の初期化とは、変数に値を入れることです。
a = 1;
変数に値を入れるには「=」を使います。
数学とは異なり、MQL4言語の「=」は「左辺に右辺を代入する」という意味になります。
こんなふうに使います。
int a; a = 1; a = a+2;
これで、
1行目「int a;」で、int型の変数aを宣言しています。
2行目「a = 1;」では、変数aに1を代入しています。
3行目「a = a+2;」で、変数aの値に2を足した値を代入する、つまり1+2=3が変数aの値になります。
という意味になります。
配列
配列とは、同一の型のデータを一列に並べたものです。
配列は、複数の整列された変数の箱のようなものです。
1つの変数には1つのデータしか入れられませんが、配列にはたくさんのデータを格納することができます。
配列も、変数と同じように、宣言と初期化が必要です。
配列の宣言
やり方は、変数と同じで、配列の型、半角スペース、配列の名前、文の末尾を意味する「;」の順に記述することで、配列を宣言したことになります。
具体的にはこう書きます。
int name[];
これで、「int型の配列name[]を使う。」という宣言をしたことになります。
[]内には添え字(データの数)を書きます(書かなくても大丈夫です)。
配列の初期化
配列も、変数と同じで、宣言しただけではまだ中身は空っぽなので、「=」を使って初期化します。
例えば、
double number[3]; number[0] = 1; number[1] = 2; number[2] = number[0]+number[1];
これで、
1行目「double number[3];」で、double型の配列number(データ数は3)を宣言しています。
2行目「number[0] = 1;」では、配列numberの1つ目の箱に1を代入しています。
3行目「number[1] = 2;」では、配列numberの2つ目の箱に2を代入しています。
4行目「number[2] = number[0]+number[1];」では、配列numberの3つ目の箱に、1つ目の箱の値(1)と2つ目の箱の値(2)を足した値(1+2=3)を代入しています。
という意味になります。
まとめ
今回は、MQL4言語入門として、変数と配列について解説しました。
変数は「データを入れる箱」で、配列は「複数の整列された変数の箱」と考えれば、イメージしやすいと思います。
変数や配列を使えば、複雑な計算式を何度も書く必要がなくなるので、プログラムが読みやすくなり、処理速度も速くなります。
EAやインジケーターを思いどおりに自作するために、ぜひ使いこなせるようになりましょう。