【超入門】MQL5 EA講座 第29回「定義済み変数について」

MQL5でEA作ろう講座

前回static変数 について解説しました。

改めて前回の内容をおさらいをしておくと、

  • static変数を作るときには、宣言するデータ型の前に、static というキーワードを記述する

ということをお伝えしました。

今回は 定義済み変数 についてお話ししたいと思います。<m(__)m>

スポンサーリンク
スポンサーリンク

定義済み変数とは?

定義済み変数は、

言葉通り、もうすでに定義が済んでいる変数のことです。

「誰が済ませているの?勝手なことをしないでよ(; ・`д・´)」

と思うかもしれませんが、これはMQL5側が「あった方が便利かな?」というものを事前に用意してくれている訳です。

また、「定義が済んでいるって、そもそもどういう状態?( 一一)」

という疑問を持たれた方もいるかもしれません。

「定義済み」とは、今まで学習してきた、

データ型の種類を決めて→変数名を決めて→変数に入れる値を代入する

という今までやってきた変数に関する一連の流れ全て

だと思ってください。

つまり、定義済み変数

その言葉を記述するだけで、あとはなにもしなくても決まった値を取得出来る変数という事になります

データ型については↓の記事をご参照ください。

変数については↓の記事をご参照ください。

定義済み変数の使い方

定義済み変数に関しては、使い方というほどのものはなく、本当にただ書くだけです。

void OnStart()
{

      //定義済み変数 を記述してログ出力
      Print(_Symbol);
     
     
}

_Symbolというのは、

プログラムを適用したチャートの通貨ペアを取得できる定義済み変数

です。

実行してみると

適用したチャートの通貨ペア情報がログ出力されました。

代表的な定義済み変数をいくつか紹介します。↓

_Period

_Periodは現在のチャートの時間軸を「分」ベースで取得します。1分足なら「1」、15分足なら「15」が返ってきます。

_Point

_Pointは現在の通貨ペアにおける、値動きの一番小さい値を返します。ドル円などの対円通貨ペアであれば「0.001」、ユーロドル等の対円以外の通貨ペアでは「0.00001」が返ってきます。

_Digits

_Digitsは現在の通貨ペアにおける、価格の小数点以下の桁数を返します。ドル円などの対円通貨ペアであれば「3」、ユーロドル等の対円以外の通貨ペアでは「5」が返ってきます。

_Symbol

_Symbolプログラムを適用したチャートの通貨ペアを取得できます

void OnStart()
{
      //定義済み変数 を記述してコメント出力
     Comment("通貨ペア名: ",_Symbol,"\n",
             "時間軸: ",_Period,"\n",
            "ポイントサイズ: ",_Point,"\n", 
            "桁数: ",_Digits,"\n"  );
}

↑のプログラムを実行してみると・・・

定義済み変数が持っている役割通りの数値がComment関数によって表示されました。

※”\n”という記述をすると、その箇所で改行をすることができます。

詳しくは↓の記事をご覧ください。

※参照→Symbol関数(まだ関数の説明をしていないので無理して見なくて大丈夫です)

おまけ

おまけ1:定義済み変数に新たな値を代入しようとした場合。

定義済み変数に新たな値を代入しようとするとどうなるでしょう?

void OnStart()
{

      
      //定義済み変数 _Symbolに値"USDJPY"を代入する
     
     _Symbol="USDJPY";
     

コンパイルしてみると・・・

「constant cannot be modified」

というコンパイルエラーが発生します。

意味は

定数を修正することはできません」

というものです。定数に、値を代入しようとしたときに発生するコンパイルエラーと同じですね。

定義済み変数はプログラムの適用チャート等によって値が変わるので、厳密な定数とは違いますが、MQL5 が定めた値の枠組みから外れようとする処理が行われたために、そのようなエラーメッセージが出た形です。

定数について復習したいという方は、↓の記事をご覧ください。

おまけ2:定義済み配列について。

今回は定義済み変数についての記事だったのですが、定義済み配列というのは、あらかじめ、プログラミング言語側で格納される情報を設定している配列の事です。MQL4では例えば、Close[]や Time[]などの定義済み配列が用意されていました。

Close[1]という記述をすると、現在足の一本前の終値情報を取得できますし、

Time[1]という記述をすると、現在足の一本前のオープン時間情報を取得できます。

ところが!MQL4では用意されていたこれらの定義済み配列は、MQL5では軒並みなくなってしまいました。従って、バー情報や価格情報にアクセスする場合、自分で配列を用意してそこに情報を格納する記述をする必要があります。

詳しい事は第103回「価格とバーに関するデータへのアクセス」 で解説予定なのでお待ちください↓

まとめ

今回は定義済み変数 について解説しました。

今回の記事では以下のことを学びました。

今回は以上になります。

最後までお読みいただきありがとうございました<m(__)m>

【超入門】MQL5 EA講座 第28回「static変数について」

             →【超入門】MQL5 EA講座 第30回「計算に関する記述」

コメント

タイトルとURLをコピーしました