MQL初心者向け基礎編【2-2変数その2】

今回は実際に変数を使用してチャート上に表示していきましょう。

2.変数

2-2.変数とはその2

まずは変数を使用せずに記載したコードと変数を使用した場合のコードを見てみましょう。
変数を使用しないHelloの表示

MesseageBox("Hello");


変数を使用したHelloの表示

string a = "Hello";
MessageBox(a);

変数を使用することで代入する値のみの変更で済みます。
他にも変数を使用するメリットは様々ありますが今は、値を使用する際は変数を使用すると覚えておいてください。
変数を使用してコードの記載ができたら1-2で説明した流れでチャートに表示させてみましょう。

全体のコードも載せておきます。

//+------------------------------------------------------------------+
//|                                                        Hello.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   string a = "Hello";
   MessageBox(a);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+

f:id:sakusaku76:20200524101357p:plain
表示することができましたね。
実際に変数を使用してもしなくてもやっていることは同じですので表示される結果は同じになります。
ですが、今後コードを記載していく際に変数を使わないことはないというほど使用していきますので今のうちから変数を使う癖はつけておきましょう。

次は、チャートに『彼は60キロのダンベルを持ち上げることができる』と表示させてみましょう。

string a = "彼は60キロのダンベルを持ち上げることができる";
MessageBox(a);

f:id:sakusaku76:20200524083750p:plain

成功です!

次は、少し応用を利かせて変数を複数使用して表示してみましょう。

string a = "彼は";
string b = "キロのダンベルを持ち上げることができる";
int c = 60;
MessageBox(a+c+b);

f:id:sakusaku76:20200524084158p:plain

成功です!
ですが、このままではワーニングが出てしまいます。
タイプが一致しない場合、strictモードでは、警告メッセージが表示されます。
f:id:sakusaku76:20200524093546p:plain

型のタイプを合わせてあげる必要があるのです。

そこで登場するのがキャストです。

2-3.キャスト

キャストとは型を別の型に変換することを言います。
それでは早速先ほどのコードを変換してみましょう。
今回は文字の表示をしているため、int型をstring型に変換させてあげる必要があります。
型を変換したい変数の前に変換したい型を『()』で囲い表示すれば型の変換の完了です。

string a = "彼は";
string b = "キロのダンベルを持ち上げることができる";
int c = 60;
MessageBox(a+(string)c+b);

警告なしで表示ができましたね。
f:id:sakusaku76:20200524094536p:plain

成功です!
型が違うものを同じ処理の中で使用する際は、変換する必要があるということを覚えておいてください。

今回は、以上になります。
次回は、グローバル変数についてです。