【MQLプログラミング基礎】変数とは?使い方を詳しく解説!プログラム例あり

【初級編】MQLプログラミング基礎
朝日奈りさ
朝日奈りさ

変数は、プログラミングの基礎となる概念の一つです。

変数とは?

変数は、数字や文字などの、データを保存するための入れ物です。

データを入れ物に保存しておくことで、そのデータが必要になったとき、自由に取り出せるようになります。

このとき、入れ物(変数)に名前を付けることができます。

例えば、「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回目以降は宣言する必要はありません。

他の型に変換することもできるのですが、上級者向けなので、ここでは割愛します。

「Suuji」には、すでに「int」という型が設定されているため、2回目以降は「int」を記載しなくてOK!

 

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プログラミングを学ぶ上で、避けては通れないところなので、頑張って理解しましょう。

サンプルプログラムをいじりながら勉強すると良いと思います。

 

コメント