これからEAやインジケーターを開発してみたいと思っている方は、「変数」というプログラミングの概念を理解する必要があります。
変数とは
変数とは、数値などを格納するためのメモリ領域に名前を付けたものです。
変数は、レートの変動に伴って変動するインジケーターの値のような、不特定の値を表現するために使用します。
宣言の仕方
変数を使用するためには、名前及び型(変数が整数を表すものなのか、文字列を表すものなのか等を指定するもの)を、あらかじめ記述しておく(宣言する)必要があります。
変数は、以下のように記述して宣言します。
型名 変数名 = 初期値;
⑴ 型名とは
型名とは、これから使う変数がどのような内容を持つものなのか(整数を表すものなのか、実数を表すものなのか等)を示すものです。
以下に、MQL4(MetaQuatesLanguage4:MT4で使用するプログラミング言語)で使用する型名の種類を示します。
一文字分の文字コードを格納する場合に使用 | |
一文字分の文字コード(符号なし=「0」と正を表現する)を格納する場合に使用 | |
整数を変数に格納する場合に使用 | |
整数(符号なし=「0」と正を表現する)を変数に格納する場合に使用 | |
整数を変数に格納する場合に使用 | |
整数(符号なし=「0」と正を表現する)を変数に格納する場合に使用 | |
整数を変数に格納する場合に使用 | |
整数(符号なし=「0」と正を表現する)を変数に格納する場合に使用 | |
実数(少数を含む値)を変数に格納する場合に使用 | |
文字列を変数に格納する場合に使用 | |
「true(真)」と「false(偽)」の2つの値を変数に格納する場合に使用 | |
色の値を変数に格納する場合に使用 | |
日時を変数に格納する場合に使用 |
なお、「char」、「short」、「int」、「long」は、表現することのできる整数の最大値と最小値に違いがあります。
「char」<「short」<「int」<「long」の順で、表現することのできる整数の幅が広がります。
⑵ 変数名とは
変数名とは、これから使用する変数の名前です。
変数名は、以下に示す一定のルールに従ったうえであれば、自由に付けることができます(例えば、「a」でも「b」でも構いません。)。
- 「半角英数」と「_」(アンダースコア)のみを使用する。
- アルファベットの大文字と小文字は別の文字として区別される(例えば、「MA」、「Ma」、「mA」、「ma」は、別々の変数として扱われます。)。
- 最初の文字に数字を使うことはできません。
- 1つの変数名は31文字が最長です。
- 以下に示すような予約語は使用することができません。
bool | break | case | color | continue |
datetime | default | double | else | extern |
false | for | if | int | return |
static | string | switch | true | void |
⑶ 「=」(演算子)とは
「=」とは、右辺の値を左辺に代入する働きをする演算子(演算の働きをする記号)です。
MQL4では、以下に示すような演算子を使用することによって、様々な計算を行うことができます。
右辺の値を左辺に代入する | ||
左辺の値と右辺の値は等しい | ||
左辺の値と右辺の値は等しくない | ||
左辺の値は右辺の値よりも大きい | ||
左辺の値は右辺の値以上 | ||
左辺の値は右辺の値よりも小さい | ||
左辺の値は右辺の値以下 | ||
加算 | ||
減算 | ||
乗算 | ||
除算 | ||
Aの値に「1」を加える | ||
Aの値から「1」を減じる | ||
A=A+1 | ||
A=A-1 | ||
AかつB | ||
A又はB |
⑷ 初期値とは
初期値とは、変数に最初に代入する値です。
初期値は、必ずしも記述する必要はありませんが、変数に代入されている値が何なのかを明らかにしておいたほうが、プログラミング上のミスを減らすことができるので、記述したほうがよいといえます。