という事の説明と、
OnInit関数が、どのような働きをするのか?という事を見てもらいました。↓
改めて前回のおさらいをしておくと、
コンパイルとは
- 記述した内容を機械が理解できる言葉(=機械語)に変換する作業であり、MQL5 Program Fileを生成する作業である。
- MQL5には、「MQL5 Source File」と「MQL5 Program File」という2種類のファイル形式がある。このうち「MQL5 Source File」が自由に記述・編集できるファイル形式であり、この「MQL5 Source File」をコンパイルすることによって、「MQL5 Program File」 というファイル形式が生成される。
- 「MQL5 Program File」 をMT5のチャート上に挿入することによって、プログラムは実行される。
という事をお伝えしました。
今回は、MQL5ウィザードで設定をした直後、コメントアウト部分やプロパティ命令の部分を取り除いた後、残っている部分↓
int OnInit()
{
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
}
void OnTick()
{
}
についての解説を続けます。
今回はOnDeinit関数についてです。
※「MQL5ウィザードって何?」という人は↓をご覧ください。
※MQL5で自動売買プログラムを作るにあたっては、MT5がお使いのパソコンにインストールされている必要があります。
もし、まだMT5のダウンロードが完了していない方は、
こちらからデモ口座の開設とMT5のダウンロード・インストールを完了して頂ければと思います。
OnDeinit関数とは?
※OnInit関数の所でも解説しましたが、念のため、おさらさいをしておきましょう。
そもそも関数って何?という事なのですが、今は↓
より簡単、かつ効率的にプログラムを動かす記述(掃除機や電気炊飯器のような家電みたいなもの)
と理解しておいてください。
詳しくは↓をご覧ください。
関数の詳細な説明についてはこの先、
MQL5 EA講座 第25回「関数について」 で行う予定なので、もうしばらくお待ちください。
話を戻して、OnDeinit関数 とはどのような関数か?という事についてなのですが、
結論から先に言うと、OnDeinit関数は
MQL5 Program FileがMT5のチャート上から削除された際に、一度だけ処理を行う関数
になります。
MQL5 Program FileをMT5のチャートに挿入した直後に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関数が処理を行った結果ですね。
まとめ
本日は以下のことをお伝えしました。
- OnDeinit関数はMQL5 Program FileがMT5のチャート上から削除された際に、一度だけ処理を行う関数である
最後までお読みいただきありがとうございました<(_ _)>
MQL5講座 第6回「コンパイル」← →MQL5講座 第8回「OnTick関数」
コメント