変数は、プログラミングの基礎となる概念の一つです。
変数とは?
変数は、数字や文字などの、データを保存するための入れ物です。
データを入れ物に保存しておくことで、そのデータが必要になったとき、自由に取り出せるようになります。
このとき、入れ物(変数)に名前を付けることができます。
例えば、「Suuji」「Moji」など、自由に名前を付けることができます。
このように自分で決めた名前で、データを取り出せることができるため、プログラミングにおいて、とても便利な機能なのです。
変数の使い方
数字を変数に入れてみます。この場合は以下のように書きます。
int Suuji = 100;
- 「int」は入れ物の型(整数のみを保存できる)
- 「Suuji」は入れ物の名前
- 「=」は代入
- 「100」はデータ
- 「;」はプログラム1行の終わりを宣言
上記のプログラムのように書くと、「Suuji」という変数に「100」が保存されます。
詳しく見ていきます。
まず「int」は入れ物の型です。型は、デフォルトでたくさん用意されており、整数を保存したい場合は、「int」を使います。
今は「ふ~ん、そうなんだ」程度で大丈夫です。
次に「Suuji」は入れ物の名前です。私が勝手に名前を付けました。
これが変数です。
上記のプログラムのおかげで、「Suuji」と書くだけで、「100」というデータを自由に取り出せるようになりました。
変数に保存されているデータの変更方法
先ほど「Suuji」に100というデータを保存しました。
しかし、プログラムの途中で、「Suuji」に100ではなく、別のデータを保存したくなる場合があります。
その時は下記のように書いてください。
Suuji = 200;
このように書くことで、「Suuji」に200というデータが保存されます。
すると「Suuji」と書くと、「200」というデータが取り出されるようになります。
また、「Suuji」には、すでに「int」という型が設定されているため、2回目以降は宣言する必要はありません。
他の型に変換することもできるのですが、上級者向けなので、ここでは割愛します。
MQLプログラミングでの変数の使い方
ここまでで、変数にデータを保存できることが分かったと思います。
ここでは実際にMQLでプログラミングするときの、変数の使い方を見てみます。
下記のサンプルプログラムで解説します。
int Suuji1 = 100;
int Suuji2 = 200;
Comment("Suuji1 : ",Suuji1,"\n",
"Suuji2 : ",Suuji2,"\n",
"Suuji1 + Suuji2 : ",Suuji1 + Suuji2,"\n");
コメント関数を使ってみました。
コメント関数はチャートの左上に、文字を表示できる関数です。今後も良く使います。
さて、上記プログラムの6行目を見てください。
ここでは、Suuji1のデータである「100」と、Suuji2のデータである「200」を足し算しています。
そのため、この6行目のプログラムの実行結果は「300」となります。
このプログラムを実際に動かせるデータはこちらになります。
実行結果は以下の通りです。
このようにMT4の左上に計算結果が表示されます。
「Suuji1 + Suuji2」の結果は300であることも確認できます。
MQLプログラム例(MT4で動作可能)
下記のプログラムをMT4で動かしてみてください。
EAなので、エキスパートアドバイザーとしてコピペしてください。
//+------------------------------------------------------------------+
//| SampleMQL4_Hensu.mq4 |
//| Copyright 2020, 朝日奈りさFXchannel |
//| https://mql-programing.com/ |
//+------------------------------------------------------------------+
//ここでプログラムの状態を設定する
#property copyright "Copyright 2020, 朝日奈りさFXchannel"
#property link "https://mql-programing.com/"
#property version "1.00"
#property strict
//ここで変数を宣言する
int Suuji1 = 100;
int Suuji2 = 200;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
//プログラムが起動した時、1回だけ実行される
int OnInit()
{
//---
//コメント関数を使うことで、画面上に表示することができる
Comment("Suuji1 : ",Suuji1,"\n",
"Suuji2 : ",Suuji2,"\n",
"Suuji1 + Suuji2 : ",Suuji1 + Suuji2,"\n");
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
//プログラムが終了するときに、1回だけ実行される
void OnDeinit(const int reason)
{
//---割愛
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
//Tick値(通貨ペアの価格)が動くたびに実行される
void OnTick()
{
//---割愛
}
//+------------------------------------------------------------------+
プログラムが起動した直後に1回だけ動作します。
プログラムが稼働中であったり、終了した時は何も動作しません。
まとめ
変数は、数字や文字などの、データを保存する入れ物です。
必要な時にデータを取り出して使うことができるので、とても便利な機能です。
しかし、型を決める必要があるため、なかなか難しいと思います。
MQLプログラミングを学ぶ上で、避けては通れないところなので、頑張って理解しましょう。
サンプルプログラムをいじりながら勉強すると良いと思います。
コメント