2018年5月3日木曜日

MQL 内で日本語は使わない方が良い

MQL4 のコンパイラ自体は UTF-8 や UTF-16 のマルチバイト文字を問題なく扱えているように見えます。

printf 内の文字列も出力できています。 コメントも日本語で大丈夫のようです。

1
2
// コメントも OK
printf("テスト");

動作確認環境は

  • Windows 10
  • Metatrader 4.00 build 1090
  • Shift-JIS と UTF-16

それでも使わない

それでも私は日本語を含むマルチバイトは使わないことに決めました。

まず、公式にはマルチバイトに関しての記述が見られません。

かつ、MetaEditor の扱う UTF がデフォルトで UTF-16 というのが問題です1。(Save as Unicode を使用した場合)

今の御時世、ソースコードは VCS (Version Control System) を使って管理します。 私は git を好んで使っていますが、git では UTF-16 を含むファイルはバイナリファイルとして扱われてしまうのです2。 そのため、適切な差分管理が行えません。

どうも、一度 UTF-8 に変換してから MetaEditor で読み込み直すと、UTF-8 のまま処理できるという裏ワザもあるようですが、どこで元に戻るかよくわからないので、それも諦めました。 まぁ、そもそもそんなに文字列多用しないので日本語使わなくてもいいかな。

  1. これは、MetaEditor が メモ帳などと同じ Windows 標準のコンポーネントを使っているからだと思われる 
  2. UTF-16 はその他の VCS でも相性が悪いものが多いです 
?