【超入門】MQL5 EA講座第7回「OnDeinit関数」【EAの作り方】

MQL5でEA作ろう講座

前回は、コンパイルとは何か?

という事の説明と、

OnInit関数が、どのような働きをするのか?という事を見てもらいました。↓

改めて前回のおさらいをしておくと、

コンパイルとは

という事をお伝えしました。

今回は、MQL5ウィザードで設定をした直後、コメントアウト部分やプロパティ命令の部分を取り除いた後、残っている部分↓

int OnInit()
  {

   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {

   
  }

void OnTick()
  {

   
  }

についての解説を続けます。

OnInit関数については前回前々回で解説しました。

今回はOnDeinit関数についてです。

MQL5ウィザードって何?」という人は↓をご覧ください。

MQL5で自動売買プログラムを作るにあたっては、MT5がお使いのパソコンにインストールされている必要があります。

もし、まだMT5のダウンロードが完了していない方は、

こちらからデモ口座の開設とMT5のダウンロード・インストールを完了して頂ければと思います。

スポンサーリンク
スポンサーリンク

OnDeinit関数とは?

OnInit関数の所でも解説しましたが、念のため、おさらさいをしておきましょう。

そもそも関数って何?という事なのですが、今は↓

より簡単、かつ効率的にプログラムを動かす記述掃除機や電気炊飯器のような家電みたいなもの

と理解しておいてください。

詳しくは↓をご覧ください。

関数の詳細な説明についてはこの先、

MQL5 EA講座 第25回「関数について」 で行う予定なので、もうしばらくお待ちください。

話を戻して、OnDeinit関数 とはどのような関数か?という事についてなのですが、

結論から先に言うと、OnDeinit関数

MQL5 Program FileMT5のチャート上から削除された際に、一度だけ処理を行う関数

になります。

OnInit関数

MQL5 Program FileMT5チャートに挿入した直後に1回だけ、指定した処理をする関数

になりますので、ちょうど逆になりますね。

厳密に言うと、チャート上から削除された、以外にもOnDeinit関数が作用する場合はあるのですが、MQL5未経験者の方は、今はそこにはこだわらなくても大丈夫です。

前回OnInit関数がどのように作用するか確認するために↓のようなサンプルコードを作りました。

int OnInit()
  {
    Comment("チャートに挿入すると、1回だけ処理を行います");
   return(INIT_SUCCEEDED);
  }

今回はこのコードにOnDeinit関数を作用させる記述を加えていきます。

int OnInit()
  {
      Comment("チャートに挿入すると、1回だけ処理を行います");
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
      Comment("チャートからプログラムファイルが削除されました");
   
  }

前回の記事で、OnInit関数がどのように作用するのかを見てもらいましたが、今回はそれに加えて

チャートからMQL5 Program Fileが削除されたときに、

「チャートからプログラムファイルが削除されました」

というコメントをチャート左上に表示させる記述を加えます。

Comment関数は、()の中に書かれている文字情報をチャート左上に反映させる働きをする関数です。

プログラムファイルを削除する方法

では、実際にMQL5 Program Fileを削除して、OnDeinit関数がどのように作用するのかを見ていきましょう。

MT5からMQL5 Program Fileを削除するには、

  • MQL5 Program Fileが挿入されているチャート上で右クリックして、そこから「エキスパートリスト」を選択。
  • 表示されたMQL5 Program Fileの中から削除するプログラファイルを選択し、「削除」をクリック。

の手順を辿って行います。

動画にまとめてみましたので、ご覧ください。↓

いかがでしょう?

チャート挿入時は、OnInit関数が作用して、チャート左上に

「チャートに挿入すると、1回だけ処理を行います」

というコメントが表示されていたのが、チャートから削除処理を行った後は

「チャートからプログラムファイルが削除されました」

に変わったのが、確認できたのではないかと思います。

OnDeinit関数が作用して、Comment関数が処理を行った結果ですね。

まとめ

本日は以下のことをお伝えしました。

次回OnTick関数について解説していきたいと思います。

最後までお読みいただきありがとうございました<(_ _)>

MQL5講座 第6回「コンパイル」←            →MQL5講座 第8回「OnTick関数」


コメント

タイトルとURLをコピーしました