MT4 EA ライブラリー化 に関する質問です。 最近自作でEAを作り始めたのですが…

MT4 EA ライブラリー化 に関する質問です。

最近自作でEAを作り始めたのですが、行数が多くなり自分でもわかりづらくなってきたので、

「ライブラリー化」をしようと考えました。

しかし途端につまづいたので、皆様の知恵をお借りしようと思います。

http://fxbot.net/2013/421

というサイトで「ヘッダーファイルに直接書き込んでしまう!」とありました。ライブラリーに関してはど素人なので、ど素人考えでは、

例えば
ヘッダーファイル(名前をPrint.mqhにしたとする)に「 Print("プリント"); 」と一行書き込んでコンパイルすれば、

EAの方で#include<Print.mqh>を呼び出せば使えるのかな、なんて勝手なイメージを持ち、上記をコンパイルしてみた 蕕燭辰唇豺圓隆蔽韻糞述なのにエラーになりました。

そもそも呼び出した後にEAのなかでどう記述すればそのプログラムが稼働するのかもわかっていません。

そんな私に「簡単な記述を例」にして教えていただけないでしょうか。

各サイトをいろいろ見て回ったのですが、肝心な説明以外にも例文や記述が多いので、どれがなんのことを指しているのかいまいちピンときません。

簡潔な「.mqhファイルの作成し方(記述の仕方)」「EAでの呼び出し方」「EAでの稼働のさせ方」説明を宜しくお願い致します。

回答1

>そもそも呼び出した後にEAのなかでどう記述すればそのプログラムが稼働するのかもわかっていません。

ライブラリはただの関数の寄せ集めに過ぎないので、それ用のインクルードファイルをインクルードして、利用したい関数を普通に呼び出すだけです。

「稼働」という言葉はしっくりこない気がします。

————————————————————
まず、MT4のライブラリとは「よく使う関数をMQL4\Libraries\の任意の名前の.mq4に記述し、コンパイルして.ex4に変換したもの」で、普通の関数を寄せ集めただけのものに過ぎません。

上記の.ex4の中に存在するコンパイルされた関数を利用する為には、利用する為のインクルードファイル.mqhが提供されますのでこれをインクルードする事で利用可能になります。(MQL4\Include\の下に置かれる)

この対ライブラリ用インクルードファイルには、ライブラリファイル(.ex4)を インポートする命令と、ライブラリファイルで利用できる関数のプロトタイプ宣言(戻り値 関数の名前(どんな引数があるか))が記述されています。

要するによく使う関数を別ファイルでコンパイルしてあるだけで、使い方は普通の関数と変わりありません。

注意が必要なのは、独自のライブラリファイルを利用しているEAはそのライブラリファイルも配布しないと動作しません。
(「利用したいライブラリファイルが無いよ」みたいなエラーになります)
————————————————————

メタエディタのナビゲータで、MQL4\Libraries\stdlib.mq4を開けばライブラリのソースファイルの例が見れます。stdlib.mq4はコンパイルするとstdlib.ex4に変換されます。

stdlib.ex4を利用するのに必要なインクルードファイルは、MQL4\Include\stdlib.mqhです。

中を覗いてどうなっているか確認して下さい。
————————————————————

Originally posted 2019-09-09 18:39:16.

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


Translate »