MQL4とMQL5とで記述の仕方を統一するための独自関数をまとめた「共通ライブラリ」
・互換性がないプログラムから同じプログラムで作成できることが可能になったということ
共通ライブラリを使ったサンプルEA
共通ライブラリを使うメリットをわかって頂くために、簡単なサンプルEAを使って、プログラムの違いを比べてみることにします。サンプルEAは、売買システムのサンプルとしてよく取り上げられる。短期移動平均線と長期移動平均線の交差を利用したシステムです。
このシステムを3種類のEAとして作成してみます。MQL4の標準ライブラリのみを使った場合、MQL5の標準ライブラリのみ使った場合、共通ライブラリを使った場合の3種類です。それぞれプログラムがどう書けるか比べてみます。
まず、MQL4の標準ライブラリのみを使って記述したプログラム例です。コンパイルしてできた実行ファイルは、MT4のみで動作します。
次に、MQL5の標準ライブラリのみを使って記述したプログラム例です。コンパイルしてできた実行ファイルはMT5のみで動作します。
この2つはプログラムは、どちらも基本的にはC言語の文法に基ずいた書き方になっています。しかし、あらかじめ組み込まれているテクニカル指標関数やトレード関数の使い方がかなり異なっています。
それぞれの違いについての説明は省略しますが、MQL4のプログラムをMQL5で作り直すのが、そう簡単ではないことは容易に想像できるかと思います。
一方、共通ライブラリを使ったプログラム例は以下のようになります。
このプログラムでは、共通ライブラリである「LibEA.mqh」というファイルを最初に読み込みます。
そのファイルで定義してある関数を使うと、このような形でEAプログラムが作成できるというわけです。
共通ライブラリの詳細は別途資料で述べますが、MQL4、MQL5で書き方が大幅に異なっていた売買注文関数やテクニカル指標関数を共通化したり、どのEAでも共通となるポジション管理の部分を関数のなかに組み込んだり、といった工夫をしています。
その結果、標準ライブラリのみを使ったプログラムよりもシンプルな記述のEAプログラムを、一つ作るだけで、MT4の実行プログラムと、MT5の実行プログラムの両方を生成できることとなりました。これが共通ライブラリを利用する最大のメリットです。