前回は、メタエディターを起動させた後、MQL5ウィザード画面をどうやって設定していくか?
というところまでお話ししました。
「MQL5ウィザードって何?」という方は↓をご覧ください。
では、MQL5ウィザード画面の設定を完了した直後の画面を再度見ていきましょう。
//+------------------------------------------------------------------+
//| a.mq5 |
//| Copyright 2022, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
↑このような画面になっているはずです。
前回も言いましたが、今はわからなくて当然なので、
「全然わからない・・・。やっぱりプログラミングって難しいんだ・・・」
と思わないでください。
一つ一つこれから順を追って説明していきます。
コメントアウトとは?
まず、今日この記事を読んで、「これだけでも覚えて帰ってくださいね~」
という点から説明します。
スラッシュを2つ書くと(「//」)コンピュータはそれ以降に書かれた部分を命令として認識しない。
という事です。
例えば、一番上にかかれている↓の部分ですが、
//+------------------------------------------------------------------+
//| a.mq5 |
//| Copyright 2022, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
これを
//+------------------------------------------------------------------+
//| ここはスラッシュが |
//| 2つ書かれている箇所なので、 |
//| 命令として認識されません |
//+------------------------------------------------------------------+
↑のように書き換えても、コンピュータ側では何の影響もないのです。
これは、我々人間がプログラムを組んでいくにあたって、説明書きを人間でもわかる言葉で入れておきたいときに使うもので、これを
と言います。
コメントアウトの方法はもう一つあって、スラッシュとアスタリスクではさまれた後の部分(/*~~*/)もコンピュータは命令として認識しません。
/*この部分は
何を書いても
プログラムには影響しません*/
//
と
/**/
両方ともコメントアウトなのですが、//は1行に対してのみ有効なのに対して、
/**/は複数行にわたってコメントアウトできます。↓
//ここはコメントアウトされていません
ここはコメントアウトされていません
/*ここは
コメントアウト
されています*/
コメントアウトは我々人間がプログラムを組んでいくにあたって、説明書きを人間でもわかる言葉で入れておきたいときに使うもので、大変便利な機能なのですが、言い換えればプログラミング言語的には
あってもなくても差し支えない部分、
とも言えます。
という訳で、わかりやすくするためにいったんコメントアウトされている部分を全部取り払ってみましょう。
こんな感じになりました。↓
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
int OnInit()
{
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
}
void OnTick()
{
}
ずいぶんすっきりしましたね(^_-)-☆
注意を向ける必要がない部分が減っただけでも、大分「これぐらいなら、やれそう」
と思えないでしょうか?
・・・思えないかもしれません。(私は当時思えませんでした(-_-;) )
でも、残りの部分も次回以降で説明していきますので、
是非くじけずにお付き合い頂ければと思います。
補足
複数行に及ぶコメントアウトの/**/についてですが、
入れ子状にして使うことはできません
/*/**/*/
↑のような記述は駄目ということです。
最後の*/が非コメントアウト化し、コンパイルエラーになります。
※コンパイルについては講座記事第6回で詳しく解説予定です。上記のような記述はエラーが発生する、ということだけ今は覚えておいてください。
/**/内に1行をコメントアウトさせる//を使うのはOKです ↓
/*
//
*/
↑これはOK
一応動画にもしてみました。↓ /*/**/*/の記述時にエラーが発生しているのがわかると思います。
まとめ
スラッシュを2つ(//)連続で書いた後の部分は、コンピュータは命令として認識されない。
スラッシュとアスタリスクではさまれた後の部分(/*~~*/)は、コンピュータは命令として認識しない。
// や/**/のような、プログラムを組んでいくにあたって、説明書きを人間でもわかる言葉で入れておきたいときに使うもの記述処理をコメントアウト と呼ぶ
今回は以上となります。
最後までお読みいただきありがとうございました<(_ _)>
→MQL5 EA講座 第4回「#プロパティ命令(#property directive)」
————————————————————-
コメント