ホーム » MQL5でEA作ろう講座 » 【超入門】MQL5 EA講座 第56回「#include命令(#include directive)」【EAの作り方】
a

【超入門】MQL5 EA講座 第56回「#include命令(#include directive)」【EAの作り方】

MQL5でEA作ろう講座

-<PR>-

※【おススメのMT5MQL5対応のFX業者】

MQL5にて開発した、MT5EAを実運用するにあたり、

当サイトでは以下のFX業者をおススメいたします。

外為ファイネスト

EAの利用制限なし。スキャルピングもOK

外為ファイネストに関する記事はコチラ

アヴァトレードジャパン

自動売買界最狭スプレッド水準

アヴァトレードジャパンに関する記事はコチラ

フィリップ証券

口座開設でMT5専用EAを無料プレゼント

フィリップ証券に関する記事はコチラ

—————————————————————


前回は MQL5プログラムに共通する全体構造 について解説しました。

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

MQL5のプログラムは概ね、次のような順序で記述・構成される。↓

プリプロセッサ命令

インプット変数 ・ グローバル変数

OnTick関数などのイベントハンドラー

関数構造体enum列挙型クラスなどの定義

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

今回は include命令 についてお話ししたいと思います。

include命令とは?

include命令は、メインプログラムに組み込むインクルードファイルを指定する為の命令記述です。

前回も触れましたが、インクルードファイル関数クラス構造体をまとめておくことができるファイルです。

インクルードファイルinclude命令で指定することによって、メインプログラムで関数クラスを一から定義しなおすことなく利用することができます。

includeファイルの作り方

インクルードファイルを生成する時は、

「MQLウィザード」

を利用します。

MQL5 EA講座 第2回「メタエディターの使い方」

では、「MQLウィザード」を起動し、エキスパートアドバイザー(テンプレート)を選択して、EA(自動売買プログラム)を作るためのたたき台となるファイルを生成する方法を紹介しました。

インクルードファイルを生成する時も基本的には同じ手順をたどります。

違うのは、エキスパートアドバイザー(テンプレート)ではなく、インクルード(*mqh) を選択するだけです。↓

Include\の後ろにファイル名を記述して完了を押下すれば、デフォルト格納フォルダであるIncludeフォルダにファイルが格納されます。

インクルードファイルができてしまえば、あとは今までの講座記事で学んだ手順に従って、enum列挙型構造体関数クラスを宣言・定義していけばOKです。↓

あとは、メインプログラムでinclude命令で指定することでファイル内のenum列挙型構造体関数クラス等が利用できるようになります。

include命令の記述方法について

include命令の記述方法には2パターンあります。

記述方法その1 <>で囲む

記述方法その1は、ファイル名を

<>

で囲む方法です。↓

#include <test.mqh>

ファイル名は、拡張子の .mqhも含めて正確に入力してください。

大文字小文字の区別やスペースの入り込みによって、ファイル名が異なってしまっている場合があるので注意しましょう。

この記述をすることによって、コンパイル時、メタエディターデフォルトのincludeディレクトリを対象に指定されたファイル名を探します。

デフォルトのincludeディレクトリとは、すなわち

MQL5\Imclude内のサブフォルダを含めた領域です。

<>で囲む方法でファイル名を指定したにも関わらず、デフォルトのincludeディレクトリにインクルードファイルが格納されていない場合、当然コンパイルエラーになります。↓

↑の動画では、後述するパターン2のinclude命令記述でインクルードファイル指定をしていたのですが、途中で<>で囲む方法に変えて再コンパイルしたものです。

デフォルトのincludeディレクトリにインクルードファイルが格納されていなかったので、コンパイルエラーが発生しました。

記述方法その2 ダブルクォーテーション(”)で囲む

記述方法その2は、

ダブルクォーテーション(”)

で囲む方法です。

#include "test.mqh"

この記述をすることによって、コンパイル時、メタエディターは呼び出したメインプログラムが保存されているディレクトリを対象に指定されたファイル名を探します。

例えば、testProgram.mq4というファイルからtest.mqhというインクルードファイルinclude命令によって呼び出そうとしている場合、testProgram.mq4ファイルとtest.mqhファイルは同じディレクトリに格納されている必要があります。↓

ダブルクォーテーションで囲む方法でファイル名を指定したにも関わらず、メインプログラムが保存されているディレクトリにインクルードファイルが格納されていない場合、コンパイルエラーになります。↓

↑の動画では、途中でインクルードファイルのディレクトリを別に移動して再コンパイルしたものです。

呼び出したメインプログラムと異なるディレクトリにインクルードファイルが移動したことによって、コンパイルエラーが発生していますね。

インクルードファイルとライブラリーファイルの違い

インクルードファイルと似たような機能として、ライブラリーファイルというものがMQL5にはあります。

ライブラリーファイルもインクルードファイルと同じく、別ファイルで用意していた関数クラスを、メインプログラムで一から定義しなおすことなく利用することができる仕組みです。

インクルードファイルライブラリーファイルの違いは何かというと、まず単純にメインプログラムでの呼び出し方の記述が違うという事、

そしてもう1つの違いは、ライブラリーファイルは他のユーザーにソースコードを明示しない状態で、利用してもらうことが可能

というです。

ライブラリーファイルの呼び出し方・使い方等の詳細について↓の記事にて解説をしていますので、ご覧いただければと思います。

まとめ

今回は include命令 について解説しました。

今回の記事では以下のことを学びました

  • #include命令には、ファイル名を<>で囲む記述形式と、ダブルクォーテーション(“)で囲む記述形式の2パターンがある。

  • <>で囲む記述形式の場合、コンパイル時、メタエディターは呼び出したメインプログラムが保存されているディレクトリを対象に指定されたファイル名を探す仕組みになっている。

  • ダブルクォーテーション(“)で囲む記述形式の場合、コンパイル時、メタエディターは呼び出したメインプログラムが保存されているディレクトリを対象に指定されたファイル名を探す仕組みになっている。

※なお、インクルードファイルを実際に使った具体的なコード記述例については、この先以下の講座記事で確認する事ができますので、参考にしていただければと思います。

第71回「トレード用のオリジナルクラスを作る」

第82回「ポジション情報管理クラスを作る-その1」

第88回「待機注文情報取得用のクラスを追加する」

第96回「トレーリングストップクラスを作る1」

第102回「資金管理用のインクルードファイルを作る」

第109回「インジケータの値を簡単に取得できるクラスを作る」

今回は以上になります。

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

【超入門】MQL5 EA講座 第55回「MQL5プログラムの全体構造について」【EAの作り方】

      →【超入門】MQL5 EA講座 第57回「ネッティングとヘッジング」【EAの作り方】

—————————————————————

-<PR>-

※【おススメのMT5MQL5対応のFX業者】

MQL5を使って自作したEAをシステムトレードに利用するには、取引プラットフォームとしてMT5を提供しているFX会社に口座を開設しなくてはいけません。

当サイトでは以下のFX会社での口座開設・EA運用をおススメしています。

おススメする理由の詳細につきましては、各FX会社について解説する記事を書いておりますので、下記のリンク記事を参考にしていただければと思います。


外為ファイネスト

EAの利用制限なし。スキャルピングもOK

外為ファイネストに関する記事は↓をご覧ください。

アヴァトレードジャパン

自動売買界最狭スプレッド水準

アヴァトレードジャパンに関する記事は↓をご覧ください。

フィリップ証券

口座開設でMT5専用EAを無料プレゼント

フィリップ証券に関する記事は↓をご覧ください。

MQL5でEA作ろう講座
スポンサーリンク
シェアする
エムキューエルをフォローする
スポンサーリンク
【超入門】MQL5 でEAを作ろうブログ

コメント

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