2008年04月13日

MQL4入門(4) - 変数名、関数名の注意点

久しぶりのMQL4入門ですが、今回は変数名、関数名を付けるときの注意点についてです。

MQL4では、変数名や関数名はユーザーが勝手に名前を付けることができますが、いくつか注意する点があります。

名前をつけるというのは、それぞれの変数や関数がそれぞれ別モノだということをメタトレーダーに知らせるためで、メタエディターのNavigatorウインドウのDictionaryタブで参照できるレファレンスでは、Identifiers(識別子)という項目で説明されています。

変数名、関数名として使える文字は、半角で 0~9の数字、a~z、A~Zのアルファベット(大文字、小文字は別の文字として区別される)と、"_"のアンダースコアだけです。
また、最初の文字に数字は使えません。長さは31文字までです。

こういうルールがあるのですが、色々試してみたところ、変数名に以下の記号を付けてもエラーは出ませんでした。

$\?.`

どうやら文法上間違っていなければいいようですが、本来C言語では識別子として利用できない記号です。
将来のバージョンアップで使えなくなる可能性もあるので、あまり利用しない方がいいと思います。

あと、もう一つ注意点は、変数名、関数名として以下の予約語は使えないということです。

bool
break
case
color
continue
datetime
default
double
else
extern
false 
for
if
int
return
static
string
switch
true 
void
while

これらはデータの型、繰り返しや条件分岐などの制御命令として使うものなので、同じ名前の変数名や関数名を付けることはできません。
ただ、これらの予約語はすべて小文字なので、一文字でも大文字に変えれば、予約語とはみなされません。ですが、例えば、for文の中で For という変数を使うと紛らわしいので、予約後に似た変数名を使うのは好ましくありません。

プログラムを見やすくするという意味でも変数名、関数名の名前の付け方は重要です。「FXメタトレーダー入門」を含め、個人的には、関数内部での変数には小文字から始まる名前、関数名や外部変数には大文字から始まる名前を付けて区別しています。

コンパイルしてエラーが出る場合に、変数名、関数名の名前の付け方に問題がある場合も多いです。どうやってもエラーが消えない場合、名前を変えることで解決することもよくあるので、試してみてください。

にほんブログ村 為替ブログへ上位ランキングのブログ記事はこちら