よく使う関数をライブラリー化

本記事で公開しているライブラリーは公開当時のままで、古くなっております。最新版のライブラリーはメルマガ登録いただくことでダウンロードできます。

ライブラリーでコードがスッキリ

※2016/8/6 kumaさんのご指摘でcalcTimeDifference()に不具合があることが判明。修正しました。

共通機能を色々と作成してきましたが、1つのMQL4ファイルに記述するには量が膨大になってきました。

1,000行を超えてくるとコードが読みにくくなりますし、どこに何が書いてあるか探すのに苦労します。結果、メンテナンス性が落ちてしまいます。

そこで、登場するのが関数のライブラリー化です。関数をmql4ファイルの外に追い出す(ヘッダーファイルであるmqhファイルを作成し、そこに移動する)ことで、EA本体をすっきりさせる効果があります。

また、関数をmqhファイルに追い出し、それを各EAで呼び出すことで、mqhファイルを1つ修正するだけで、呼び出し元の全てのEAに反映させることが可能になります。同じ修正をあっちのEAにもこっちのEAにも適用しなきゃ、という事態から解放されます。

ライブラリー化する方法は、豊嶋久道氏の「FXメタトレーダー実践プログラミング」に詳しく説明されています。

豊嶋氏の内容は正確ですので基本を押さえる点では重要ですが、紹介されている方法はやや面倒です。ライブラリー化によりファイルが3つに分割されてしまうのも頂けません。

じゃあ、どうするかと言いますと、吉田章太郎氏のMT4で開発を楽にする方法に書かれている方法を採用します。つまり、mqhファイルに直接関数を記述する方法です。何といってもこの方が管理が楽です。これに勝るものはありません。他の利点については吉田氏の記事をご覧ください。

では、サンプルEAのライブラリー化に挑戦してみます。

まず、「MQL4」-「include」配下に「Original」フォルダを作成します。この中に、空のmqhファイルを作成し、設置します。

mqhファイル設置場所

その後、EAの冒頭に以下を追加します。

//| ライブラリ
#include <stderror.mqh>
#include <stdlib.mqh>
#include <WinUser32.mqh>
#include <Original/Basic.mqh>
#include <Original/DateAndTime.mqh>
#include <Original/OrderHandle.mqh>
#include <Original/OrderReliable.mqh>

これにより、自作のライブラリーがEAにインクルード(読込み)されます。

mqhファイルは性質ごとに分けて、EAに直書きしていた各関数等を適切なmqhファイルに移動してください。ライブラリー化と言っても実はこれだけです。

サンプルEAと各mqhファイル

イメージが沸きづらいと思いますので、サンプルEAと各mqhファイルを載せておきます。Sample.mq4が非常にコンパクトになったのがよく分かると思います。

Sample.mq4

「よく使う関数をライブラリー化」のSample.mq4
サイズ: 3.0KB
バージョン: 1.0
公開:2019年10月16日

Basic.mqh

「よく使う関数をライブラリー化」のBasic.mqh
サイズ: 1.0KB
バージョン: 1.0
公開:2019年10月16日

DateAndTime.mqh

「よく使う関数をライブラリー化」のDateAndTime.mqh
サイズ: 4.0KB
バージョン: 1.0
公開:2019年10月16日

OrderHandle.mqh

「よく使う関数をライブラリー化」のOrderHandle.mqh
サイズ: 2.0KB
バージョン: 1.0
公開:2019年10月16日

OrderReliable.mqh

「よく使う関数をライブラリー化」のOrderReliable.mqh
サイズ: 4.0KB
バージョン: 1.0
公開:2019年10月16日

MT4の無料プログラミング講座

LINE公式アカウントを友だち追加して、MT4のプログラミング講座を無料で受けちゃおう!

超豪華プレゼントも盛りだくさん♪

MT4プログラミングを習得すると、オリジナルEA運用、作成代行、商品販売等、複数の収入源を手に入れられるよ。副業に最適だね!

↓↓↓ 詳細はこちら ↓↓↓

アイキャッチ

>

エターナル・パートナーPRO ~MT4裁量トレード支援ツール~ 「MT4は裁量トレーダーに優しくない」そう思ったことありませんか?もっと快適にトレードするための強力な売買ツールが必要だと考え、開発したのが「エターナル・パートナーPRO」です。元々は自分自身のために開発したツールですので、手抜き無しのガチものです。既に200名近い方に手に取っていただき、喜びの声が続々と届いております。ぜひご覧ください!

CTR IMG