コメントって何?
コメントと言うとブログのコメントのようなものを想像されるかもしれませんが、MetaTrader4のコメントとはチャートの左上に表示される文字情報のことを指します。MQL4のプログラムでコメント機能を使用することで、任意の文字情報を簡単にチャートへ表示することが出来ます。例えばカスタムインジケーターのプログラムでインジケーター名をコメント表示することで、チャートにインジケーターが設定されているかどうかを一目で確認することが出来ます。
コメントを表示するComment関数
コメントを表示するには、MQL4で提供されているComment関数を使用します。
void Comment( argument, // first value ... // next values );
引数
Comment関数の引数には表示したい内容を指定します。引数の数や型についてはAlert関数と同様となりますので、詳細は以下のリンク先をご参照ください。
アラートを表示したい! – MQL4逆引きリファレンス
https://www.mql4-encyclopedia.com/alert/
戻り値
Comment関数に戻り値はありません。
使用例
void OnInit() { Comment(WindowExpertName()); }
上記例では、プログラムをチャートに設定すると最初に一回だけ呼ばれるOnInit関数でComment関数を呼び出し、その引数にWindowExpertName関数の戻り値を設定しています。WindowExpertName関数の戻り値はプログラム名なので、このプログラムを実行するとチャート左上のコメント表示部分にプログラム名が表示されることになります。
コメントの複数行表示
コメントは基本的に一行表示ですが、引数に改行コード(¥n)を含む文字列を渡すことで複数行コメントとして表示することが可能です。異なる情報を複数表示する場合は横に並べて一行で表示するよりも視認性が良いので、積極的に取り入れていきたいですね。
コメントのスタイル変更
Comment関数で表示するコメントは簡単に情報を表示できる反面、表示位置や文字の大きさ、色などのスタイルを変更することは出来ません。チャート左上にあるワンクリック取引ボタンを表示させた場合はコメントの表示位置が自動的に調整されるため、隠れて見えなくなることはありません。スタイルを変更したい場合は、ラベル(ObjectCreate関数)を使用して文字を表示することになります。
日本語のコメント表示
Comment関数の引数に日本語(マルチバイト文字)を指定した場合、日本語の表示は正しく行われます。ただし文字のフォントや大きさを変更することが出来ないため、表示する文字によっては潰れてしまいコメント内容が読みにくい可能性があります。その場合はラベル(ObjectCreate関数)を使用してください。
コメントのバッティング
コメントを表示出来る場所は1つのチャートで一箇所のみとなります。そのためComment関数を使用したプログラムを1つのチャートで複数使用した場合、表示される内容は全てのプログラムの中で最後に呼ばれたComment関数の内容となりますので注意が必要です。
バックテスト時のコメント表示
コメント表示はバックテストでも正常に行われます。ただし実際にコメント表示を確認するにはバックテストをビジュアルモードで実行してチャートを表示する必要があります。
まとめ
参考URL
Comment – MQL4 Reference
https://docs.mql4.com/common/comment