【MQL4学習】変数とは何か?MT4初心者必見!EAやインジケータープログラミングの基礎的知識!

ザフナーラボブログ

これからEAやインジケーターを開発してみたいと思っている方は、「変数」というプログラミングの概念を理解する必要があります。

変数とは

変数とは、数値などを格納するためのメモリ領域に名前を付けたものです。

変数は、レートの変動に伴って変動するインジケーターの値のような、不特定の値を表現するために使用します。

宣言の仕方

変数を使用するためには、名前及び型(変数が整数を表すものなのか、文字列を表すものなのか等を指定するもの)を、あらかじめ記述しておく(宣言する)必要があります。

変数は、以下のように記述して宣言します。

サンプルコード

型名 変数名 = 初期値;

⑴ 型名とは

型名とは、これから使う変数がどのような内容を持つものなのか(整数を表すものなのか、実数を表すものなのか等)を示すものです。

以下に、MQL4(MetaQuatesLanguage4:MT4で使用するプログラミング言語)で使用する型名の種類を示します。

型 名
内 容
char
一文字分の文字コードを格納する場合に使用
uchar
一文字分の文字コード(符号なし=「0」と正を表現する)を格納する場合に使用
short
整数を変数に格納する場合に使用
ushort
整数(符号なし=「0」と正を表現する)を変数に格納する場合に使用
int
整数を変数に格納する場合に使用
uint
整数(符号なし=「0」と正を表現する)を変数に格納する場合に使用
long
整数を変数に格納する場合に使用
ulong
整数(符号なし=「0」と正を表現する)を変数に格納する場合に使用
double
実数(少数を含む値)を変数に格納する場合に使用
string
文字列を変数に格納する場合に使用
bool
「true(真)」と「false(偽)」の2つの値を変数に格納する場合に使用
color
色の値を変数に格納する場合に使用
datetime
日時を変数に格納する場合に使用

なお、「char」、「short」、「int」、「long」は、表現することのできる整数の最大値と最小値に違いがあります。

「char」<「short」<「int」<「long」の順で、表現することのできる整数の幅が広がります。

⑵ 変数名とは

変数名とは、これから使用する変数の名前です。

変数名は、以下に示す一定のルールに従ったうえであれば、自由に付けることができます(例えば、「a」でも「b」でも構いません。)。

  1. 「半角英数」と「_」(アンダースコア)のみを使用する。
  2. アルファベットの大文字と小文字は別の文字として区別される(例えば、「MA」、「Ma」、「mA」、「ma」は、別々の変数として扱われます。)。
  3. 最初の文字に数字を使うことはできません。
  4. 1つの変数名は31文字が最長です。
  5. 以下に示すような予約語は使用することができません。
bool break case color continue
datetime default double else extern
false for if int return
static string switch true void

⑶ 「=」(演算子)とは

「=」とは、右辺の値を左辺に代入する働きをする演算子(演算の働きをする記号)です。

MQL4では、以下に示すような演算子を使用することによって、様々な計算を行うことができます。

演算子
使用例
内 容
=
A=B
右辺の値を左辺に代入する
==
A==B
左辺の値と右辺の値は等しい
!=
A!=B
左辺の値と右辺の値は等しくない
>
A>B
左辺の値は右辺の値よりも大きい
>=
A>=B
左辺の値は右辺の値以上
<
A<b< center=””></b<>
左辺の値は右辺の値よりも小さい
<=
A<=B
左辺の値は右辺の値以下
+
A+B
加算
A-B
減算
*
A*B
乗算
/
A/B
除算
++
A++
Aの値に「1」を加える
A–
Aの値から「1」を減じる
+=
A+=1
A=A+1
-=
A-=1
A=A-1
&&
A&&B
AかつB
||
A||B
A又はB

⑷ 初期値とは

初期値とは、変数に最初に代入する値です。

初期値は、必ずしも記述する必要はありませんが、変数に代入されている値が何なのかを明らかにしておいたほうが、プログラミング上のミスを減らすことができるので、記述したほうがよいといえます。