MQL4で日本語変数名を使用する場合の注意事項

MetaTrader は、ロシア語対応ソフトである為か、ロシア語の2バイト文字が変数名に使えるようです。
そして、日本語も条件付きで変数名や関数名に使えてしまいます。


信じられない人は、以下のようなコードをコンパイルして動かしてみてください。

  double 残高=AccountBalance();
  Print("残高=",残高);


日本語で変数名が付けられると、ソースコードの可読性が良くなり、意味を勘違いすることも、スペルミスをすることも少なくなります。そして、ケアレスミスによるバグから解放される分だけ、ロジックの検討に時間が割けるのでプログラミングの効率がアップします。(ぇ


但し、全ての全角文字が変数名に使えるわけではなく、[ ] ^ | { } ~ のような特別な意味を持つ半角記号と同じコードが内部に含まれている全角文字はNGです。NGとなる文字を見分けるのは簡単で、MetaEditor上で実際に書いてみると分かります。

コメント欄では、正常に表示される日本語文字が、変数名では化けてしまう場合、その文字は使えません。
カタカナの「タ」は、2バイトコードで示すと 0x83,0x5E で、0x5E が、半角の「 ^ 」と同じなので化けています。
「ゼゾボポマミ」も同様に使えない文字が含まれていてNGです。こういった文字化けに注意するだけで自由に日本語変数が使えるので、是非、このテクニックを活用してみてください。


…って真に受けないで下さいね^^; …ただ、ex4 ファイルのみを配布される人は、試しに関数名に全角文字を追加してみることをおすすめします。これは、Enigma と同じ難読化効果をもたらすので、ナニされた時に少しだけアレです。試してみると分かります。



ちなみに、プログラムを日本語で書くという文化は、昔の MacOS 9 の AppleScript にもみられるので、特別なモノというわけではありません。Windows では、「なでしこ」という日本語でプログラミングする言語があります。過去に1度もプログラミング経験の無い人が、プログラミングを勉強したかったら、なでしこの「ゼロからのプログラミング講座」を実習してみるのは良いかもしれません。