MQL4MQL5 EA(エキスパートアドバイザー) 通知・表示
チャートの左上に情報を表示したい
結論:Comment() を使います。"\n" で改行しながら、残高やスプレッドなどを並べられます。
考え方
Comment() に文字を渡すと、チャートの左上に表示されます。EA の稼働状況や口座の情報を見えるようにしておくと便利です。ここでは残高・有効証拠金・スプレッド・サーバー時刻を、ティックごとに更新して表示する EA を例にしています。
- 表示したい値を取得し、文字列にまとめる(改行は "\n")
- Comment() で表示する
- EA を外したときに表示が残らないよう、OnDeinit() で Comment("") を呼んで消す
そのまま使えるコード
MetaEditor の「新規作成」で「エキスパートアドバイザ(テンプレート)」を選び、できたファイルの中身をすべてこのコードに置き換えてコンパイル(F7)します。ファイルは Experts フォルダに保存され、ナビゲーターからチャートにドラッグして使います。
MQL4・MQL5 共通
#property strict
// チャートの左上に口座情報を表示する EA
int OnInit()
{
return INIT_SUCCEEDED;
}
void OnDeinit(const int reason)
{
Comment(""); // 表示を消す
}
void OnTick()
{
string s = "【口座情報】\n";
s += "残高 :" + DoubleToString(AccountInfoDouble(ACCOUNT_BALANCE), 0) + " " + AccountInfoString(ACCOUNT_CURRENCY) + "\n";
s += "有効証拠金:" + DoubleToString(AccountInfoDouble(ACCOUNT_EQUITY), 0) + "\n";
s += "含み損益 :" + DoubleToString(AccountInfoDouble(ACCOUNT_PROFIT), 0) + "\n";
s += "スプレッド:" + IntegerToString(SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)) + " ポイント\n";
s += "サーバー時刻:" + TimeToString(TimeCurrent(), TIME_DATE | TIME_SECONDS);
Comment(s);
}MT4 版・MT5 版とも MetaEditor でコンパイル(エラー・警告なし)を確認済みです。実際の口座で使う前に、デモ口座やストラテジーテスターで動作を確かめてください。
カスタマイズのポイント
- 文字の大きさや色、表示位置を変えたいときは、Comment() ではなくラベル(OBJ_LABEL)を使います。
- ティックが来ない時間も更新したいときは、EventSetTimer() と OnTimer() で更新します。
注意点
- Comment() は1つのチャートに1つだけです。別の EA やインジケーターも Comment() を使うと、表示が上書きされます。












