EAのソースを整理する方法

EA
スポンサーリンク

MT4のEAで、ある程度処理を作りこんでいくとEAのソースコードが長くなって読みづらくなります。

そこで、共通で使うような関数はインクルードファイルにソースコードを移動してしまい、別ファイル(mqh)ファイルとして管理することで、EA側のソースコードを整理するという方法について記載します。

mqhファイルを作成する

まずは、EAと別管理とするためのmqhファイルを作成します。

メタエディタのファイル→「新規作成」をクリックします。

次に、インクルードを選択し、「次へ」ボタンをクリックします。

ファイル名等を決めて、「完了」ボタンをクリックします。

ソースファイルが開かれるので、ここに関数を移動していきます。

以上でインクルード(mqh)ファイルの作成は完了です。

ファイルの作成先

ファイルは、こんな感じで「MQL4\Include」フォルダに作成されます。

関数を移動する

次に、先ほど作成した「common.mqh」ファイルに関数を移動していく作業を行います。移動の仕方は簡単で、そのまま関数を移動するだけです。

以下赤枠のようにメインのEA側の関数を切り取ります。(EA側からは削除します)

「common.mqh」ファイルにそのまま貼り付けます。

他にも、移動する関数があれば同じ要領で移動してください。

ソースコードの追加とコンパイル

次に、メインのEA側の上部に以下のソースコードを追加します。
※common.mqhファイルを参照しますよという事を宣言します

#include <common.mqh>

mqhファイルをフォルダ管理する場合・・・カレントがIncludeフォルダ直下なので、<フォルダ名称\common.mqh>みたいな感じで宣言も可能です


ソースコードを追加した後、コンパイルします。(メインのEA側でコンパイル)

※こんな感じに、common.mqhが表示されればちゃんと参照できている証拠です

以上でソースコードの追加とコンパイルは完了です。

ソースコード移動前と移動後の整合性については、ソースコード移動前と移動後で同期間でバックテストを行い同じ数値が出ればOKという形でチェックできますね。

最後に

以上で、関数をインクルードファイルに移動してソースを整理する説明を終わります。

mqhファイルに関数単位でまとめてしまえば、別のEAを作った際も、common.mqhを参照する1文さえ書いてしまえば前のEAで使っていた自作関数を使いたい放題なのでとても便利です。

あと、補足情報ですがEAを実際に動作させる場合common.mqhファイルは不要です。コンパイル時にメインのEAのソースとcommon.mqhを合体させて「.ex4ファイル」化しているんですね。EAを動かすのに必要なファイルが複数ファイルにならないので、実環境への展開漏れとかも考慮せず、今まで通りで問題無いです。



※ オススメ記事(EAが使える国内FX業者の一覧)

EAEA(ノウハウ)
スポンサーリンク
ぷろぐらむFX

コメント

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