改めて前回の内容をおさらいをしておくと、
ということをお伝えしました。
今回は 定義済み変数 についてお話ししたいと思います。<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回「価格とバーに関するデータへのアクセス」 で解説予定なのでお待ちください↓
コメント