MQLで最初に書くEAとして定番の、ティックが更新されるたびに”HalloWorld”とチャートに表示するだけのEAです。
コード自体はシンプルですが、この記事では「表示する」だけでなく「EAを止めたときにちゃんと消す」ところまで一緒に覚えてしまいましょう。動かしっぱなしにする癖がつくと、後で作る本格的なEAでも表示の消し忘れに気づかなくなります。
ティックが更新されるたびにHalloWorldと表示されるEA
ティックが更新されるたびにHalloWorldと表示されるEAを作成したいと思います。
メタエディタ(MetaEditor)を立ち上げる
MT4を起動し、ツールバーの黄色いボタン(またはツール→MetaQuotes Language Editor)からメタエディタ(MetaEditor)を立ち上げましょう。
「ファイル」→「新規作成」→「Expert Advisor(テンプレートを使用)」を選び、名前を入力して進むと、OnInit()・OnDeinit()・OnTick()だけが書かれた空のひな形が開きます。
OnTick()関数を記述する
Comment("HalloWorld");
OnTick()の中にこの1行を書くだけで、新しいティックが来るたびにチャート左上に「HalloWorld」と表示されます。
EAを停止したときに表示を消す
このままだと、チャートからEAを外したり別のEAに切り替えたりしても、Comment()で表示した文字がチャートに残り続けてしまいます。OnDeinit()(EAが終了するときに呼ばれる関数)で空文字を渡してComment()を呼び出せば、表示をきれいに消せます。
void OnDeinit(const int reason)
{
Comment("");//表示していたコメントを消す
}
コンパイルする
コンパイルしましょう。チャートにHalloWorldを表示されていたら完了です。

チャートからEAを外したあと、表示がきちんと消えることも確認しておきましょう。
ソースコード全体
//+------------------------------------------------------------------+
//| HalloWorld.mq4 |
//| Copyright 2020, FX-EA System Project Creator |
//| https://creator.fx-ea-system-project.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, FX-EA System Project Creator"
#property link "https://creator.fx-ea-system-project.com/"
#property version "1.01"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
Comment("");//表示していたコメントを消す
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
Comment("HalloWorld");
}
//+------------------------------------------------------------------+
まとめ
非常に簡単なものでしたが、動きは確認できたはずです。「表示する」だけでなく「消す」までがセットだと覚えておくと、この後もっと複雑なEAを作るときにも役立ちます。
コメント